zshでVimバインディングで `Alt + .`を使用する方法

zshでVimバインディングで `Alt + .`を使用する方法

私はzshとbindkeys -v

Alt + .期待どおりに動作しません。現在、標準入力に入力されているが入力されていない内容が次の行に繰り返されるようです。

この投稿bashのように動作することを示唆しているようです。つまり、入力された最後のコマンドの最後の引数を取得します。

これが期待どおりに行われるには何が必要ですか?

ベストアンサー1

端末ではAlt、+はchar通常と同じですEsc char。 (一部の端末は異なるように設定できます。)

vi 挿入モードからEscコマンドモードに切り替えます。 vi コマンドモードではEsc何もしません。 vi コマンドモードで.前のコマンドを繰り返します。

小さな部品insert-last-wordデフォルトのバインディングはemacsモードではAlt+.Alt+_ですが、viモードにはデフォルトのバインディングはありません。 viモードで使用するには、バインディングを指定する必要があります。

bindkey -M vicmd _ insert-last-word

これは入れるコマンド:カーソルの前にテキストを挿入します。行末では実行できません。これは、行末でよく使用されるコマンドでは非常に不便です。あなたは正義を好むかもしれませんappend-last-word

function append-last-word { ((++CURSOR)); zle insert-last-word; }
zle -N append-last-word
bindkey -M vicmd _ append-last-word                        

おすすめ記事