回答:
デフォルトはありません。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の詳細については、httpbind -p
://linux.about.com/library/cmd/blcmdl3_readline.htmをご覧ください。
.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-dotだけでなく、Ctrl-A、Ctrl-E、Ctrl-W、Ctrl-Lのデフォルトの動作を復元します。したがって、通常のbash viモードを楽しむことができ、今でも知っている、大好きなショートカットを使用できます。さらにアクションが必要な場合は、「man bash」をチェックして、必要なreadlineアクションの名前(「clear-screen」、「end-of-line」など)を見つけてください。
$_
前のコマンドの最後の引数を参照するために使用できます。
欠点は次のとおりです。
Enterキーを押す前に、挿入されたものが挿入しようとしたものであることを確認できません。
PROMPT_COMMANDまたはDEBUGトラップ(どちらが正確に問題を引き起こすのかわかりません$_
。どちらも.bashrcにあります)を使用して、実行中のコマンドをxtermタイトルに入れるなどの凝った作業を行うと、それはclobberになります。
bindkey "\e." insert-last-word