bashで、どのようにコントロール-Deleteを殺す単語を意味するには?
質問
bashはreadlineのを使用し、readlineのは「殺す単語を」と、カーソルの右にある単語を削除することができます。
問題は、コントロール・削除のキー入力を認識することです。私はbashでそれらを押すと、「5〜」画面に出力されます。私はをはこのためだけに結合できたが、それは1日、私は「5〜」を入力する必要があり、それが代わりに右に単語を削除することを意味します!だから私はむしろ正しい制御シーケンスを発見するでしょう。
私はGoogleで検索していると、かなりの数のリソースは、キーが、私は、「コントロール・削除」キーを議論見つけたなしの「削除」について話し合います。私は多くのバリエーションを試しましたが、何も動作ます。
最悪はそれが本当に非問題であるべきとき、私はこの退屈な、愚かなグラインドに費やしてきた時間です。
編集:それはX経由なので多分XEVとxmodmapを持つソリューションがあります。
解決
私のマシンでは、押しCtrlキーを押しながらVは、出力これをCtrlキーを押しながら削除します:
^[[3;5~
あなたが(例えば、あなたの^[
に)bashのために、このようなバインドを使用できるように ~/.bashrc
のエスケープ文字は、\ eで置き換えることができます:
bind '"\e[3;5~":kill-word'
または、Ctrlキーを押しながら削除を殺すワードがないように、readlineのを使用するすべてのプログラムの中で、あなたの~/.inputrc
に以下を追加することができます:
"\e[3;5~": kill-word
こののみCtrlキーを押しながらDeleteキーをバインドします、あなたは〜5を入力する必要がある場合はどうなるかを心配する必要はありません。
他のヒント
あなたは何を参照してください真実ではありません。これはおそらく<ESC>5~
またはそのような何かです。 Ctrl + VキーCtrlキーを押しながら削除してみてください。 Ctrlキーを押しながらV「は次のことを解釈しません」を意味します。
かなり安全でなければなりませんので、結合<ESC>5~
ます。
Alt + Dは、カーソルの右側に一つの単語を削除します Ctrlキー+ Wカーソルの左側の1つの単語を削除します (両方がEmacsのに基づいており、私は信じている)
、あなたが言及した出力を得るのですか?私はそれを試みたが、パテを使用して、少なくとも私は、すべての応答を得ることはありません。おそらく、behviorはいえ、実際のLinuxコンソール上で異なっている。
他のキーについては、readlineがしばしば誤って入力しにくい特殊な「コマンドシーケンスの導入」の文字を含むより長い配列を、印刷します。それを試してみてください、あなたは(、ところで、引用挿入と呼ばれている)^ Q ^ Vコマンドを使用して、より長い配列を取得するかどうかを確認します。
例えば、私は^ Q ^ Vを押してから(ダウン保持制御なし)を削除した場合に、readlineの印刷の^[[3~
。これは私が\e[[3~
を言ってDeleteキーにコンテンツをバインドすることができます私に語りました。 CSIの文字があなたのために存在していることhighely思わ、しかし、あなたが適切に入力を引用するのreadlineを求めていないので、あなたはそれを見ていない。
はCtrl-Wは、単語を削除します。
はCtrl-uが行を削除します。
これらはEmacsの(M-WとM-U)をもとにしています。