Answers:
没有默认值。切换到vi模式时,“ yank-last-arg”的绑定(如“ bind -p”列出的绑定)会消失。
bind '"\e."':yank-last-arg
会给你同样的约束力(或选择其他东西)
history-search-backwards
对于认真的命令行用户来说,这是非常宝贵的。
在〜/ .inputrc文件文件可以配置键映射(可以手动生成它,如果它无法找到)。将以下命令添加到〜/ .inputrc中:
"\e.": yank-last-arg
"\e_": yank-last-arg
我的〜/ .inputrc是:
set completion-ignore-case on
set show-all-if-ambiguous on
set show-all-if-unmodified on
set editing-mode vi
set keymap vi-insert
"\C-p": previous-history
"\C-n": next-history
"\C-a.":beginning-of-line
"\C-e.":end-of-line
"\e.": yank-last-arg
"\e_": yank-last-arg
您可以找到有关细节的readline和bind -p
这里:http://linux.about.com/library/cmd/blcmdl3_readline.htm
以及有关bash和Readline VI编辑模式备忘单中的Vi键盲的一些信息
在您的.bashrc内,添加以下内容:
set -o vi
bind -m vi-command ".":insert-last-argument
bind -m vi-insert "\C-l.":clear-screen
bind -m vi-insert "\C-a.":beginning-of-line
bind -m vi-insert "\C-e.":end-of-line
bind -m vi-insert "\C-w.":backward-kill-word
这些不仅可以恢复ESC点的默认行为,还可以恢复Ctrl-A,Ctrl-E,Ctrl-W和Ctrl-L的默认行为。因此,您可以享受普通的bash vi模式,并且仍然使用您知道和喜爱的快捷方式。如果需要更多操作,只需选中“ man bash”以查找所需的读取行操作的名称(例如“ clear-screen”,“ line-of-line”等)。
您可以$_
用来引用上一个命令的最后一个参数。
缺点是:
在按Enter键之前,您无法验证插入的东西是您要插入的东西。
如果您使用PROMPT_COMMAND或DEBUG陷阱(我不确定是哪一个导致了问题;我的.bashrc中都包含了这些错误)会做一些花哨的事情,例如将运行中的命令放到xterm标题中,这会导致问题$_
。
bindkey "\e." insert-last-word