Bash
如何將熱鍵添加到 zsh 或 bash 的 readline 中,該熱鍵填充要複製的第二個參數但使用 .bak?
我想為這個有時需要執行的任務製作一個熱鍵:
%> cp file.txt.1 file.txt.1.bak
我在哪裡重複了文件名,但最後有一個 .bak 。我只想輸入:
%> cp file.txt.1
點擊快捷鍵並讓它添加帶有 .bak 副檔名的文件名。這會將第二個程式碼片段變成第一個。
這可能嗎?如果是這樣,我怎樣才能讓 readline 添加第二個參數?(我認為這是我必須在這裡程式的readline)。
對於這種情況,在 bash 或 zsh 中,您可以將命令輸入為
cp file.txt.1{,.bak}
這是大括號展開。
對於大括號擴展不方便的情況,因為您想對第二個參數進行更多編輯,在 zsh 中,有一個開箱即用
copy-prev-word
綁定到Ctrl
++的命令。*它在游標之前插入單詞的副本。確保在+ +*之前鍵入一個空格Alt
Ctrl``Alt``. You may prefer to bind [
copy-prev-shell-word](http://zsh.sourceforge.net/Doc/Release/Zsh-Line-Editor.html#index-copy_002dprev_002dshell_002dword) which is generally more useful.
*``` bindkey ‘^[^_’ copy-prev-shell-word
在 bash 或 zsh 中,要複製命令行上的最後一個單詞,從行尾開始,確保該行以空格結尾,然後按`Alt`+ `B` `Ctrl`+ `K` `Ctrl`+ `Y` `Ctrl`+ `Y`。這會剪切並粘貼最後一個單詞加上尾隨空格兩次。或者,如果該行不以空格結尾,請按`Alt`+ `B` `Left` `Ctrl`+ `K` `Ctrl`+ `Y` `Ctrl`+ `Y`。這僅在最後一個參數不包含空格時才有效;如果確實如此,您需要再往前走一點。如果這適用於您的設置,您可以將`Alt`+替換`B`為`Ctrl`+ 。`Left`*