では+にバインドされ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
~
(「ではありません」)演算子を使用できる機能が必要です。
もちろん、最後の行のパターンを挿入したくないすべての単語やパターンを除外するパターンに置き換えることもできます。