最近在bash中切换到vi-mode,我想念的一件事是esc .获取最后一个命令的最后一个参数.
我知道ctrl _,但我总是最终打击ctrl -.
还有另一个vi模式等效吗?
我相信最符合您需求的解决方案是:
在你的.bashrc中,在"set -o vi"之后......
set -o vi
bind -m vi-command ".":insert-last-argument
Run Code Online (Sandbox Code Playgroud)
这告诉你的bash在'.'时调用"insert-last-argument"动作.用于vi命令模式.这当然意味着你失去了正常的"." VI的功能; 但如果你像我一样,你会更喜欢这个.
附录:您可能还希望Ctrl-A,Ctrl-E,Ctrl-W和Ctrl-L工作(这些是那些我失踪最):
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
Run Code Online (Sandbox Code Playgroud)
小智 6
您还可以使用以下命令在 vi 模式下恢复 emacs 的“escape-dot inserts last argument”行为:
bindkey -v '\e.' insert-last-word
Run Code Online (Sandbox Code Playgroud)