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( + + /는 대문자를 나타냅니다).bfBFAltbfAltShiftbf

이는 emacs편집기에서 수행하는 것과 동일한 작업입니다.

vi모드( 이후 bindkey -v) 에서는 vi 명령 모드에서 vi일반적인 동작 명령( back, word, end 및 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

관련 정보