强制bash在vi模式下使用.vimrc

时间:2012-01-17 05:32:50

标签: bash vim

Bash可以是set to operate in vim mode 。但是,我的.vimrc已不再使用。具体来说,我将 j j 映射到 Esc 不再有效。我必须按 Esc 退出到插入模式。如何告诉bash使用我的.vimrc文件?

4 个答案:

答案 0 :(得分:9)

你正在寻找bash-vi模式(就是这样:bash的vi输入模式,与vi或vim没有任何关系)。

与readline / inputrc有关,据我所知,你可以看看是否可以

  • 绑定键bash方式
  • 来自〜/ .inputrc

链接:

最后一个链接包含一个更高级的.inputrc示例,用于bash:

# Edit options before rerunning previous command, eg: ls a b c -> ls -al a b c
"\e-": "\C-p\C-a\M-f "

# Cycle thru completions.
"\e/": menu-complete

# glob patterns without executing, eg: 'rm *x'
"\ee": glob-expand-word

# Vim style history search
"\e[A": history-search-backward
"\e[B": history-search-forward

"\e[C": forward-char
"\e[D": backward-char

# Two escapes clear command line.
"\e\e": "\C-a\C-k"

答案 1 :(得分:2)

@sehe肯定有最直接的答案。但如果你不想弄乱.inputrc,那就有at least two other options

  • v,它将您目前所写的任何命令,或根本没有任何命令,放入.bash_profile中定义的编辑器中(使用此行:EDITOR=/usr/bin/vim)。 save并退出执行命令。编辑:这是从正常模式执行,所以你仍然需要按ESC才能到达那里:(

  • fc,这是方便的'fix command' command。更多关于man bash中的那个。编辑:您在插入模式下键入的那个。

答案 2 :(得分:1)

虽然接受的答案有指针,但是追逐的答案如下:

在.inputrc文件中,输入

设置keymap vi-insert

" jj":" \ e"

您需要强制重新读取.inputrc文件。这可以通过关闭终端并重新打开它来完成。对于使用.inputrc文件进行长时间的实验,所以你不必注销然后重新登录,也可以将其放入:

" \ C-x \ C-r":re-read-init-file

然后你可以使用Control-x,control-r重新读取init文件,而不必注销并重新登录。

答案 3 :(得分:-2)

你的.bashrc中的

set -o vi

bash的vim模式