ZSH를 구성하려고 할 때 '"^[b"backward-word''는 무엇입니까?

ZSH를 구성하려고 할 때 '"^[b"backward-word''는 무엇입니까?

저는 MAC을 사용하고 있으며 Iterm2에서 실행되는 ZSH에 대한 바로가기를 찾으려고 노력하고 있습니다.

셸에 바인딩 키를 입력하면 다음과 같은 매핑이 표시됩니다.

"^[b" backward-word
"^[f" forward-word

^가 Ctrl 키인 것으로 알고 있습니다. 하지만 Ctrl + [ + f를 누르면 한 단어 앞으로 이동하지 않습니다.

내가 무엇을 놓치고 있나요?

답변1

^일반적으로 제어이지만 ^[실제로는 Escape 또는 Alt(또는 emacs를 좋아하는 경우 메타)를 의미합니다.

따라서 해당 키 조합을 위해 Escb또는 키를 누를 수 있습니다 .Escf

기본적으로 Alt는 Mac 터미널에서 작동하지 않지만 iTerm2에는 "옵션이 [ ] Normal [ ] Meta [ ] +Esc로 작동합니다"라는 설정이 있습니다. +Esc를 원합니다.

iTerm2 옵션 키 설정 스크린샷.

답변2

실제로 ^[는 Alt 키입니다. 따라서 귀하의 경우 터미널(Iterm2)은 Alt + b 및 Alt + f를 사용하여 단어를 앞뒤로 이동합니다. 이는 터미널에 의해 제어되며 zsh와는 아무 관련이 없습니다.

답변3

연장하려면MRB답변:

실제로 는 + 또는 ( + ) ^[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 세계에서 제어 문자로 사용됩니다. 여기서 ^aCtrl-A(ASCII 1, 여기서 A는 ASCII 65)입니다. 즉, "이 기능 이전에 캐릭터 64 슬롯을 사용하십시오"를 줄여서 표현한 것입니다.

ESC는 ASCII 27로 64단계 이전 [이므로 ^[ESC의 약어입니다.

GNU Emacs 편집기에서는 CTRL, META 등 여러 수정자 키가 사용되었습니다. 예를 들어 CTRL-f는 커서를 한 문자 앞으로 이동하고 META-f는 커서를 한 단어 앞으로 이동합니다.

META 키가 없는 많은 키보드를 수용하기 위해 "ESC" 규칙은 다음 문자가 META 키로 눌러진 것으로 간주된다는 것을 의미합니다. 따라서 GNU Emacs에서는 ESC-f를 누르면 커서가 한 단어 앞으로 이동합니다.

요즘에는 Ctrl-[ESC 문자를 제공하는 경우가 매우 드물지만 다른 Ctrl 조합에는 숨어 있을 수 있습니다. 예를 들어 ^^명령 모드로 탈출하기 위해 텔넷 세션에서 여전히 사용되므로 이를 찾는 것이 유용합니다.

관련 정보