Bashのviモード(set -o vi)を使用すると、最後に実行したコマンドの最後のパラメータを復元できますか?これはemacsモードで+を使用してESC行われ、.viモードでも実行したいと思います。
私はbashが!$
andを提供していることを知っていますが、$_
拡張されておらず、自分で使うのは非常に危険だと思います。
編集と追加に関して、Stack Overflowで見つけたいくつかの解決策を.inputrc
試しましたが、成功しませんでした。
set editing-mode vi
set keymap vi-insert
"\e.": yank-last-arg
"\e_": yank-last-arg
Bashからviモードに切り替えていますが、ESC+がかなりおなじみのために使用.したり、素早く簡単な選択肢を探したりしてみてください。
編集:この質問は、Alt + Sを使用して最後のパラメータを復元する方法を尋ねる同様の質問と重複してマークされています。特にESC +について尋ねています。 (これは私が慣れていて他の答えでは扱わない近道です。)
編集:@chaosのソリューションを補完するために、次のバインディングを使用するとESC +を使用できます。 (まあ、「。」です。)最後の引数を貼り付けると、Viの点(。)機能が失われます。
bind -m vi-command ".":insert-last-argument
答え1
私は_
これを行うために(通常モードで)使用しています。ここに文書化されていることを発見しました。http://www.catonmat.net/download/bash-vi-editing-mode-cheat-sheet.txt。
また覚えやすいです:
$_
最後のパラメータに拡張<Esc> + _
入力してください
答え2
私には、以下を追加したとき.inputrc
:
$if mode=vi
"\e.":yank-last-arg
$endif
.inputrc
その後、bashで動的に変更したときにもう一度読む必要があります。
set -o vi
bind -f .inputrc
altこれで+を使用して最後のパラメータを取得できます.。