Zsh
在自定義小元件中粘貼文本僅適用於最後一個單詞,可以修復嗎?
我正在使用這個問題的答案,以便在分別按
Ctrl
+W
或Alt
+時剪切更長/更短的文本部分Backspace
。具體來說,我有這個.zshrc
添加Alt
+Backspace
行為(Ctrl
+W
是內置的)backward-kill-dir () { local WORDCHARS='' zle backward-kill-word } zle -N backward-kill-dir bindkey '^[^?' backward-kill-dir
這可以很好地殺死文本,但是粘貼它不能按預期工作。假設我有這段文字:
A quick brown fox
如果我按
Ctrl
+W
四次然後按Ctrl
+Y
,整個文本將被剪切然後粘貼回來。但如果我有這段文字:a-quick-brown-fox
我按
Alt
+Backspace
四次,然後按Ctrl
+Y
,它將按預期剪切文本,但僅粘貼a-
我怎樣才能讓後者也粘貼整個文本?
內置的 kill 小元件會替換內部剪貼板的先前內容,除非先前的命令也是 kill 動作。
zle
您需要通過呼叫內置設置kill
標誌來表明您的自定義小元件是一個終止操作。backward-kill-dir () { local WORDCHARS='' zle backward-kill-word zle -f kill } zle -N backward-kill-dir bindkey '^[^?' backward-kill-dir