'셀프 삽입'이란 무엇입니까?

'셀프 삽입'이란 무엇입니까?

self-insertzsh의 용도는 무엇입니까 ? 나는 prezto 구성의 모든 곳에서 그것을 볼 수 있지만 그것이 무엇을 해야 하는지 이해할 수 없습니다. ZLE 문서도 그것이 무엇인지 지정하지 않지만 일부 다른 맥락에서 언급합니다.

답변1

키에 바인딩되면 이 함수는 키 자체를 입력 문자로 삽입합니다. 예를 들어 키가 a에 바인딩되어 있으므로 self-insert키를 누르면 "a"가 입력됩니다.

로부터zshzle(1)매뉴얼 페이지(zsh 버전 5.5.1):

  self-insert (printable characters) (unbound) (printable characters and some con‐
  trol characters)
         Insert a character into the buffer at the cursor position.

비교를 위해,읽어보기(3)매뉴얼 페이지(bash 버전 4.4.023):

  self-insert (a, b, A, 1, !, ...)
         Insert the character typed.

답변2

문서에서,

self-insert 또는 self-insert-unmeta에 바인딩되지 않은 다른 문자는 경고음을 울리고 무시됩니다.

나는 내 껍질을 엉망으로 만들고 '.'을 묶었습니다. 함수에 연결한 다음 바인딩을 해제합니다. 갑자기 어디서든 점을 입력할 수 없게 되었습니다. 로 bindkeys표시되었지만 "/"-"~" self-insert또 다른 깨끗한 쉘에서는 이었습니다 "/"-"-" self-insert. 잘라서 붙여넣는 경우에도 문자가 완전히 무시되었습니다.

점을 다시 가져오려면 점을 자체 삽입에 바인딩해야 했습니다.

bindkey '.' self-insert

관련 정보