tcsh의 명령줄에서 한 단어씩 이동하는 방법은 무엇입니까?

tcsh의 명령줄에서 한 단어씩 이동하는 방법은 무엇입니까?

명령이 "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일반적인 모션 명령을 사용합니다 .vibwe

답변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

관련 정보