
명령이 "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( + + /는 대문자를 나타냅니다).bfBFAltbfAltShiftbf
이는 emacs
편집기에서 수행하는 것과 동일한 작업입니다.
vi
모드( 이후 bindkey -v
) 에서는 vi 명령 모드에서 vi
일반적인 동작 명령( b
ack, w
ord, e
nd 및 WORD 동작에 해당하는 대문자(공백으로 구분된 단어))을 사용할 수 있습니다.
답변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