zshで現在のキリングをクリアできますか?

zshで現在のキリングをクリアできますか?

ヤンクはキリングをクリーンアップしなかったので、しばらくして混乱しました。クリアできますか?

私はオマイZshを使用しています。

答え1

キリングのサイズは、キリングの長さによって決まります。killring大量に。デフォルトは8です。

この変数はzleウィジェットでのみ使用できるため、コマンドラインから操作することはできず、ウィジェットを定義、キーバインド、または渡す必要がありますM-x。以下は、キリングをクリアするウィジェットの例です。

set_killring_size () {
  local empty=
  if ((!$+NUMERIC)); then
    # Wipe killring and re-create it to its current size
    NUMERIC=$#killring
    killring=()
  fi
  if ((NUMERIC <= $#killring)); then
    # Truncate killring to the specified size
    killring=("${(@)killring[1,$NUMERIC]}")
  else
    # Grow killring to the specified size
    killring=("${(@)killring}" "${(@s:_:)${(l:$((NUMERIC-$#killring-1))::_:)empty}}")
  fi
}
zle -N set_killring_size set-killring-size

killringを削除するには、パラメータなしでこのウィジェットを呼び出しますM-x set-killring-size RET。キリングサイズを設定するには、数値プレフィックスを使用して呼び出しますESC 4 2 M-x set-killring-size RET

関連情報