Bashのviモードで最後のコマンドの最後の引数を復元する

Bashのviモードで最後のコマンドの最後の引数を復元する

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これで+を使用して最後のパラメータを取得できます.

関連情報