zsh kill Ctrl + Backspace、Ctrl + Delete


11

Ctrl+ Backspaceがポイントの前に単語を殺すようにzshを構成する方法は?それを達成する方法Ctrl+ Deleteポイントの後の単語を殺す?

端末エミュレータとしてurxvtを使用しています。


まず、「単語」を定義する必要があります。アルファベットだけですか?スペース以外のすべての文字?
ミケル

emacsの用語で使用されているような単語
学生

以下の解決策のいずれも機能しない場合は、stackoverflow.com / questions / 21252419 / …を参照してください。
AP。

回答:


11

最初にCtrl+に焦点を当てますDelete

forwardという単語全体を削除するzshコマンドが呼び出されkill-wordます。デフォルトではAlt+にバインドされていDます。

Ctrl+ 作成方法Deleteも、使用しているターミナルエミュレータによって異なります。

私のシステムでは、これはxtermとGnomeターミナルで動作します。

bindkey -M emacs '^[[3;5~' kill-word

urxvtの場合は、次のようにする必要があります。

bindkey -M emacs '^[[3^' kill-word

それでもうまくいかない場合は、「Ctrl+ V Ctrl+ 」と入力Deleteして、システムの値を確認してください。

これらの両方を一緒にに追加したり.zshrctput kDC5シーケンスをハードコーディングする代わりにの出力を使用したりすることもできます。

Ctrl+ Backspace難しいようです。

私のシステムでは、それを押すことは単にを押すことと同じBackspaceです。

同じ場合は、代わりにAlt+ BackspaceまたはCtrl+ を使用することをお勧めしますW


私はurxvtをターミナルエミュレータとして使用しています
学生、

Ctrl + Backspace動作しません
学生、

^[[3^urxvt が必要です。 Ctrl+V Ctrl+Deleteこれを表示します。
ミケル

1
おかげで、私はバインドキーを追加している'^[[3^' kill-word bindkey'^H' backward-kill-word私の.zshrcに。今ではうまくいきます!
学生、

@ user5289:ああ、すみません、私たちはお互いを誤解しました。とは思わないか^H^?働くつもりですCtrl+Backspace。実際、そのような拘束力はあり得ないようです。 Alt+BackspaceまたはCtrl+W適切な代替品である可能性があります。
ミケル

3

urxvtでは、逆方向の部分を削除するために、私は単に.zshrc次のものを持っています:

bindkey '^H' backward-kill-word

Ctrl +バックスペースで前の単語を削除できます


2

私はこれを持ってい.Xresourcesます:

URxvt.keysym.C-BackSpace:       \033[33~

そして私の中で.zshrc

bindkey -M main -M viins -M vicmd   '^[[33~'    backward-kill-word

これにより、空白で区切られた各単語が削除されます。'^ ['はエスケープ文字であることに注意してください。あなたはする必要がありxrdb -load .Xresources、ターミナルを開き、ヒット^Vが続きます^BackSpace


1

以下をあなたに追加してください ~/.zshrc

bindkey '^H' backward-kill-word
bindkey '5~' kill-word
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.