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~(「ではありません」)演算子を使用できる機能が必要です。

もちろん、最後の行のパターンを挿入したくないすべての単語やパターンを除外するパターンに置き換えることもできます。

関連情報