에서는 + 에 바인딩 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)'
이것이 하는 일:
insert-last-word
구현을 함수로 대체smart-insert-last-word
, Zsh와 함께 배포되지만 기본적으로 로드되지 않습니다.- 새 위젯이 어떤 단어( )
insert-last-word
와도 일치하길 원 하지만,*
아니요해당 단어last
또는 문자 그대로의 단어를 포함하는 모든 단어입니다match
. EXTENDED_GLOB
~
("그러나 아님") 연산자를 사용할 수 있는 기능이 필요합니다 .
물론, 마지막 줄의 패턴을 삽입하고 싶지 않은 모든 단어나 패턴을 제외하는 패턴으로 바꿀 수 있습니다.