Bash可以是set to operate in vim mode 。但是,我的.vimrc
已不再使用。具体来说,我将 j j 映射到 Esc 不再有效。我必须按 Esc 退出到插入模式。如何告诉bash使用我的.vimrc
文件?
答案 0 :(得分:9)
你正在寻找bash-vi模式(就是这样:bash的vi输入模式,与vi或vim没有任何关系)。
与readline / 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)
:
set -o vi
bash的vim模式