readline(3)
で、Control-BackspaceをControl-W(unix-kill-rubout)と同じ関数にマップできるはずです。私が何を入れたかに関係なく~/.inputrc
これを認識させることができません。
\C-\b: unix-kill-rubout
...たとえば、機能しません。 Control-Backspaceをreadlineのunix-kill-ruboutにマップできますか?
追加する
"\C-_": unix-Word-rubout
to .inputrc
私にとってはうまくいくようです。
C-_
はコントロールアンダースコアを表します。これは私の端末が押すと送信するものです Ctrl+Backspace。
押す Ctrl+V 次に、キーの組み合わせがそのコードをコンソールにエコーします。私にとっては、 Ctrl+V その後 Ctrl+Backspace エコー^_
と^
はCtrlを意味します。 .inputrc
\C-
はCtrl修飾子なので、\C-_
ここで必要なものです。この手法を使用して、使用する可能性のある他のキーの組み合わせを決定できます。
Graywhが指摘しているように、バックスペースはしばしば^?
で表されます。にバインドするために ctrl+bksp.inputrc
ファイルで、readlineライブラリを変更する必要がある場合があります。この buntuチュートリアル には、デフォルトの出力を上書きできる新しい.keytab
ファイルが含まれています。
私のシステムでは、これにより"\e[9;3~": backward-kill-Word
を.inputrc
に追加できます。
readlineの動作は異なるようです システムによって多少異なるため、KubuntuでKonsoleを使用していることに注意してください。
これは私にとってはうまくいきます(urxvt、bashで):
"\b":backward-kill-Word
あなたの端末がctrl-backspace用の特別なコードを送信するのではないかと思います。バックスペースは通常ctrl-?であり、ctrl文字に別のctrl修飾子を追加することはできません。
1つの代替方法は、ターミナルにCtrl-Backspaceの特別なエスケープシーケンスを送信させ、それをreadline構成にマップすることです。
Linuxターミナルの場合は、起動時にロードするキーマップを変更することで実行できます。私のデフォルトのubuntuでは/etc/console-setup/cached.kmap.gz
をロードします。 Ctrl-Backspaceに対応するエントリが見つかった場合(おそらくControl-DeleteはすでにBackspaceとしてリストされています)、それをControl_w
に変更できます。ターミナルエミュレーターについてはよくわかりませんが、konsole(デフォルトのKDEターミナルエミュレーター)には、キーバインド用の非常に優れた設定があります。お役に立てば幸いです:)
クリス
複数のLinuxシステムにログインするMacユーザーの場合:
アクセスしているシステム上の.inputrcまたはその他の構成ファイルにアクセスできず、ログインしているシステムに関係なく、すべてを普遍的に機能させたい場合は、Iterm2を使用したGUIソリューションを次に示します。
Brew( https://brew.sh )を使用して、MacのコマンドラインからMacにIterm2をインストールしました。
brew cask install iterm2
Iterm2でキーシーケンスをコントロールキーにバインドする方法
アプリストアから無料のアプリケーション「キーコード」をダウンロードし、下のリンクからインストールして開きます。
ヒット Ctrl+some key この場合、私は使用します Ctrl+w。
赤い四角の16進コードは、端末に送信するコードです。
次に、Iterm2のキーシーケンスを[アプリケーション]フォルダ-> [設定]-> [キー]-> +から開いてマップします。