
コマンドが「ls word1 word2 word3」だとします
カーソルを行末から「word2」に移動したいのですが、その過程で「word3」をクリアしたくありません。2単語分戻って「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
そして/ (またはESC/ )です。これらは、通常、 + / (大文字の場合は+ + / )を押すと端末から送信されるシーケンスです。bfBFAltbfAltShiftbf
それはエディターで行うのと同じですemacs
。
vi
モード ( の後)では、 vi コマンド モードの通常の移動コマンド ( ack、ord、nd、および WORD 移動 (空白で区切られた単語) の場合はそれらの大文字の同等物)bindkey -v
を使用します。vi
b
w
e
答え2
「Alt+b」で後方に、「Alt+f」で前方に移動します。また、「Alt+backspace」で後方の単語を削除します。
答え3
Windows ユーザーが期待するショートカットを追加します (これらを に配置する~/.cshrc
か、シェルに貼り付けるだけです)。
# 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