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에는 "Option Act as [ ] Normal [ ] Meta [ ] +Esc" 설정이 있습니다. +Esc를 원합니다.

iTerm2 옵션 키 설정 스크린샷.

답변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 세계에서 제어 문자를 나타내는 데 사용됩니다. 여기서 ^aCtrl-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 조합에서는 숨겨져 있을 수 있습니다. 예를 들어 ^^텔넷 세션에서 명령 모드로 탈출하기 위해 여전히 사용되므로 찾을 수 있으면 유용합니다.

관련 정보