zsh의 Alt+x 정보 및 Alt+x를 다른 콘텐츠에 바인딩하는 방법

zsh의 Alt+x 정보 및 Alt+x를 다른 콘텐츠에 바인딩하는 방법

을 입력하면 Alt-x다음 과 같은 execute:팝업이 나타납니다.

~ % 
execute: _

계속해서 입력할 수 있습니다(공백은 사용할 수 없음).

~ %        
execute: what'sthis

Q1. 이번 프로모션의 목적은 무엇인가요?

Q2: 이 단축키를 다른 키 바인딩으로 수정하는 방법은 무엇입니까? M-x이것은 emacs에서 매우 유용하고 나는 종종 emacs에서 쉘을 사용하기 때문에 두 가지가 충돌합니다.

몇 시간 동안 검색했지만 여전히 답변이 없습니다. (내 키워드가 잘못된 것일 수도 있습니다.구글: "zsh" + "실행:","google:zsh 키바인딩바인드키"

답변1

이렇게 하면:

bindkey | grep -F '^[x'

또는 간단하게:

bindkey '^[x'

또는 Alt+x를 표현하는 방법에 대해 질문이 있는 경우:

bindkey | grep -w x

당신이 볼 수 있는 것:

"^[x" execute-named-cmd

이는 ESC x에 바인딩된 위젯의 이름으로, 대부분의 터미널이 눌렸을 때 전송하는 일련의 ESC x 문자입니다.Alt+x

info zsh execute-named-cmd

위젯이 무엇을 하는지 알려줄 것입니다( zsh-doc일부 시스템에서는 패키지를 설치해야 할 수도 있습니다).

이름에서 알 수 있듯이 명령 실행을 묻는 메시지가 표시됩니다. 여기의 명령은 zsh 위젯, 편집기 명령입니다. 이는 command( 에서 호출됨) 대신 zsh 편집기 명령이라는 점을 제외하면 emacs' 와 동일합니다 .Meta-xemacsexecute-extended-commandemacs

예를 들어 해당 프롬프트에서 입력하고 누르면 backward-delete-char기본적 Return으로 바인딩된 위젯이 호출됩니다 Backspace. 에서도 똑같은 일을 할 수 있습니다 emacs.

대신에 입력하고 descTab( Tab채우기 describe-key-briefly, 위젯은 기본적으로 어떤 키에도 바인딩되지 않으며 에서도 찾을 수 있음 emacs) 키를 누르면 Return다른 프롬프트가 표시됩니다.

$
Describe key briefly: _

예를 들어, 클릭하면 Alt+x무엇을 하는지 볼 수 있습니다. 그러면 다음을 얻게 됩니다:

"^[x" is execute-named-cmd

에서 동일한 작업을 수행하면 emacs다음이 표시됩니다.

M-x runs the command execute-extended-command

내장되지 않은 위젯의 경우 위젯 목록을 보려면 키 바인딩 목록 zle -al을 실행하세요 .zle -lbindkey

Alt+x다른 것에 바인딩할 수 있습니다 .

bindkey "^[x" some-widget

관련 정보