
저는 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를 원합니다.
답변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 세계에서 제어 문자로 사용됩니다. 여기서 ^a
Ctrl-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 조합에는 숨어 있을 수 있습니다. 예를 들어 ^^
명령 모드로 탈출하기 위해 텔넷 세션에서 여전히 사용되므로 이를 찾는 것이 유용합니다.