私はの答えを使用していますこの問題これにより、それぞれCtrl+Wまたは+を押したAltときにテキストのより長いまたは短い部分を切り取ることができますBackspace。具体的には+アクションを.zshrc
追加するには、次のものが必要です。 (+は内蔵されています。)AltBackspaceCtrlW
backward-kill-dir () {
local WORDCHARS=''
zle backward-kill-word
}
zle -N backward-kill-dir
bindkey '^[^?' backward-kill-dir
これはテキストの削除には効果的ですが、貼り付けた後は期待どおりに機能しません。次のようなテキストがあるとしましょう。
A quick brown fox
Ctrl+を4回押してWからCtrl+を押すと、Yテキスト全体が切り捨てられ、再び貼り付けられます。しかし、次のようなテキストがある場合:
a-quick-brown-fox
Alt+を4回押してBackspaceからCtrl+を押すと、期待Yどおりにテキストが切り捨てられますが、貼り付けるだけです。
a-
後者に全文を貼り付けるにはどうすればよいですか?
答え1
組み込みの終了ウィジェットは、前のコマンドが終了動作ではない限り、内部クリップボードの以前の内容を置き換えます。以下を呼び出して、カスタムウィジェットが終了操作であることを示す必要があります。zle
組み込みフラグを設定しますkill
。
backward-kill-dir () {
local WORDCHARS=''
zle backward-kill-word
zle -f kill
}
zle -N backward-kill-dir
bindkey '^[^?' backward-kill-dir