Zsh如何在帶有 Vim 綁定的 zsh 中使用
如何在帶有 Vim 綁定的 zsh 中使用 Alt + .
我正在使用 zsh 和
bindkeys -v
.
Alt + .
沒有按預期工作。它似乎在下一行重複目前在標準輸入中鍵入但未輸入的內容。這篇文章似乎暗示它確實像在 bash 中一樣工作,即獲取最後輸入的命令的最後一個參數。
需要什麼才能使這項工作按預期進行?
在終端上,
Alt
+*char*
通常與 相同Esc
*char*
。(可以對某些終端進行不同的配置。)在 vi 插入模式下,
Esc
切換到命令模式。在 vi 命令模式下,Esc
什麼都不做。在 vi 命令模式下,.
重複上一個命令。小元件在 emacs 模式下預設
insert-last-word
綁定到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