
명령이 "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
그런 ESC다음 + / ( 대문자의 경우 + + / ) 를 누를 때 터미널이 일반적으로 전송하는 시퀀스인 b/ f(또는 B/ )입니다.FAltbfAltShiftbf
이는 편집기에서 수행하는 것과 동일합니다 emacs
.
vi
모드(이후 ) 에서는 vi 명령 모드( ack, ord, nd 및 WORD 모션에 해당하는 대문자(공백으로 구분된 단어)) 의 bindkey -v
일반적인 모션 명령을 사용합니다 .vi
b
w
e
답변2
뒤로는 "Alt+b", 앞으로는 "Alt+f"입니다. 또한 "Alt+백스페이스"를 누르면 단어를 뒤로 삭제해야 합니다.
답변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