저는 MAC을 사용하고 있으며 Iterm2에서 실행되는 ZSH에 대한 바로가기를 찾으려고 노력하고 있습니다.
셸에 바인딩 키를 입력하면 (다른 매핑 중에서) 다음이 표시됩니다.
"^[b" backward-word
"^[f" forward-word
^가 Ctrl 키인 것으로 알고 있습니다. 하지만 Ctrl+[+f를 누르면 한 단어 앞으로 이동하지 않습니다.
내가 무엇을 놓치고 있나요?
답변1
^
일반적으로 제어하지만 ^[
실제로는 Escape 또는 Alt(또는 emacs를 좋아하는 경우 메타)를 의미합니다.
따라서 Escb또는 키를 눌러 Escf이러한 키 조합을 얻을 수 있습니다.
Alt는 기본적으로 Mac 터미널에서 작동하지 않지만 iTerm2에는 "Option Act as [ ] Normal [ ] Meta [ ] +Esc" 설정이 있습니다. +Esc를 원합니다.
답변2
실제로는 ^[
Alt 키입니다. 따라서 귀하의 경우 터미널(Iterm2)은 Alt + b 및 Alt + f를 사용하여 단어를 앞뒤로 이동합니다. 이는 터미널에 의해 제어되며 zsh와는 아무 관련이 없습니다.
답변3
연장하다신사답변:
실제로 는 + 또는 ( + ) ^[b
입니다 . + 를 사용하여 계속해서 문자를 표시 할 수 있습니다 . 이 경우 다음을 찾을 수 있습니다.ESCbMeta/AltbCtrlv
Ctrl+ v Ctrl+b
^B
Ctrl+ v Meta+b
^[b
Ctrl+v ESC b
^[b
또한 zsh 매뉴얼에서 다음을 찾을 수 있습니다.
backward-word (ESC-B ESC-b) (unbound) (unbound)
Move to the beginning of the previous word.
마찬가지로 forward-word
:
forward-word (ESC-F ESC-f) (unbound) (unbound)
Move to the beginning of the next word.
답변4
이 ^
표기법은 일반적으로 GNU 세계에서 제어 문자를 나타내는 데 사용됩니다. 여기서 ^a
Ctrl-A(ASCII 1, A는 ASCII 65)입니다. 즉, "64슬롯 이전의 문자를 사용한다"는 약칭입니다.
키 ESC
는 ASCII 27, 64 steps before [
이므로 ^[
ESC의 약어입니다.
GNU Emacs 편집기에서는 CTRL, META 등 여러 수정자 키가 사용됩니다. 예를 들어, CTRL-f는 커서를 한 문자 앞으로 이동하고 META-f는 커서를 한 단어 앞으로 이동합니다.
META 키가 없는 많은 키보드를 수용하기 위해 "ESC는 다음 문자가 META 키로 눌러지는 것으로 간주된다는 의미입니다." 따라서 GNU Emacs에서는 ESC-f를 누르면 커서가 한 단어 앞으로 이동합니다.
요즘에는 ESC 문자가 제공되는 경우 가 Ctrl-[
매우 드물지만 다른 Ctrl 조합에서는 숨겨져 있을 수 있습니다. 예를 들어 ^^
텔넷 세션에서 명령 모드로 탈출하기 위해 여전히 사용되므로 찾을 수 있으면 유용합니다.