zsh 키 바인딩: 마지막 단어에 삽입된 주어진 명령을 무시합니다.

zsh 키 바인딩: 마지막 단어에 삽입된 주어진 명령을 무시합니다.

에서는 + 에 바인딩 zsh되어 있습니다 .alt.insert-last-word

alt+를 누르면 .이전 명령의 마지막 단어를 나열할 수 있습니다.

특정 단어를 반복할 때 표시되지 않게 하려면 어떻게 해야 합니까?

즉, 이것이 내 기록인 경우:

echo
foo
ls

foo무시 하고 싶으면 alt+를 .건너뛰어야 합니다 foo.

답변1

나는 이것을 테스트했고 작동합니다 :

setopt EXTENDED_GLOB
bindkey '^[.' insert-last-word
autoload smart-insert-last-word
zle -N insert-last-word smart-insert-last-word
zstyle :insert-last-word match '*~(*last*|match)'

이것이 하는 일:

  1. insert-last-word구현을 함수로 대체smart-insert-last-word, Zsh와 함께 배포되지만 기본적으로 로드되지 않습니다.
  2. 새 위젯이 어떤 단어( ) insert-last-word와도 일치하길 원 하지만,*아니요해당 단어 last또는 문자 그대로의 단어를 포함하는 모든 단어입니다 match.
  3. EXTENDED_GLOB~("그러나 아님") 연산자를 사용할 수 있는 기능이 필요합니다 .

물론, 마지막 줄의 패턴을 삽입하고 싶지 않은 모든 단어나 패턴을 제외하는 패턴으로 바꿀 수 있습니다.

관련 정보