스페이스바를 눌렀을 때 zsh의 기록이 확장되는 것을 방지하는 방법은 무엇입니까?

스페이스바를 눌렀을 때 zsh의 기록이 확장되는 것을 방지하는 방법은 무엇입니까?

mv 'foo bar' !#:1:s^\ ^-^확장을 사용하여 명령을 생성하고 싶습니다 mv 'foo bar' 'foo-bar'. 그러나 스페이스바를 누르면 zsh는 확장 입력 mv 'foo bar' !#:1:s^\을 마쳤다고 가정하고 mv 'foo bar' 'foobar'.

mv 'foo bar' !#:1:s^\^-^를 입력한 다음 화살표 키를 사용하여 역추적하여 이 동작을 피할 수 있지만 mv 'foo bar' !#:1:s^\ ^-^이는 목적을 상실합니다.

스페이스바에서 확장 동작을 어떻게 끌 수 있나요? 내가 원하는 동작은 Enter를 누를 때까지 명령을 확장하지 않은 상태로 두는 것이라고 가정합니다. 에 대한 맨페이지에서 이에 대한 내용을 찾지 못했습니다 zshexpn.

편집: 을 입력할 수 있다는 것을 발견했습니다. mv 'foo bar' !{#:1:s^\ ^-^}이는 가 입력될 때까지 확장을 보류합니다 }. 그러나 스페이스바에서 확장 동작을 방지하는 방법에 대한 질문이 있습니다.

답변1

스페이스 키를 에 바인딩한 것 같습니다 magic-space.소개zsh설명합니다:

space를 Magic-space에 바인딩하면 스페이스바를 누를 때마다 해당 줄에서 csh 스타일 히스토리 확장이 수행됩니다.

따라서 줄을 제거하거나

bindkey " " magic-space

귀하의 구성에서. 또는 (다음과 같이 사전 정의된 구성 파일을 사용하는 경우)d'oh-my-zsh) 다른 모든 키 바인딩 후에 다음 명령이 실행되는지 확인하십시오.

bindkey " " self-insert

관련 정보