
假設指令是“ls word1 word2 word3”
我想將遊標從行尾移動到“word2”,但不想在進程中清除“word3”。只需向後跳兩個單字並到達“word2”的開頭
是否有任何鍵盤快捷鍵可以前後跳轉單字而不刪除命令列上的單字?
答案1
當 tcsh 的行編輯器配置為emacs
模式時(這是預設設置,bindkey -e
如果您之前啟用了模式,請使用 返回該模式vi
):
% bindkey | grep word | egrep 'for|back'
"^[^H" -> backward-delete-word
"^[B" -> backward-word
"^[F" -> forward-word
"^[b" -> backward-word
"^[f" -> forward-word
"^[^?" -> backward-delete-word
SoESC和b/ f(或B/ ),這是終端通常在按+ / (+ + /表示大寫字母)F時發送的序列。AltbfAltShiftbf
這與您在emacs
編輯器中執行的操作相同。
在vi
模式下(在 之後bindkey -v
),您可以vi
在 vi 指令模式下使用常用的運動指令(b
ack、w
ord、e
nd 以及它們用於 WORD 運動(空格分隔的單字)的大寫等效項)。
答案2
「Alt+b」用於向後,「Alt+f」用於向前。另外,「Alt+退格鍵」應該要向後刪除一個單字。
答案3
按照 Windows 用戶的預期添加快捷方式(只需將它們放入~/.cshrc
或貼上到 shell 中):
# Use CTRL + left/right to move a word at a time:
bindkey '^[[1;5D' backward-word
bindkey '^[[1;5C' forward-word
也可以選擇使用其他鍵盤快速鍵,例如:
# Use ALT + left/right to move a word at a time:
bindkey '^[[1;3D' backward-word
bindkey '^[[1;3C' forward-word