12

Vim 挿入モードで Ctrl-Backspace を使用して現在の単語を削除したいと思います。xterm内から、これを次の方法で実行できます

:inoremap <C-H> <C-W>

しかし、gnome-terminal では、それを実現する方法がわかりません。

vim 挿入モードで、control-v と入力してからバックスペースを押すと、xterm で ^H が表示され、^? gnome ターミナルで。不運にも、

:inoremap <C-?> <C-W>

gnome-terminal ではうまくいきません。control-backspace は、何があっても 1 文字を消去するだけです。

ASCIIコードについて:

Gnome-terminal では、[編集] -> [プロファイル設定] -> [互換性] でバックスペース文字を変更できます。残念ながら、私が知る限り、機能するオプションはありません。設定を介してバックスペースに適用する文字が何であれ、文字自体を次のようにマッピングしようとすると、

:inoremap <C-H> <C-W>

次に、通常のバックスペースとコントロールバックスペースの両方が単語全体を消去します。そして、コントロールとその文字をマッピングしようとすると、

:inoremap <C-^H> <C-W>

通常のバックスペースとコントロールバックスペースは、1文字を消去するだけです。

4

1 に答える 1

12

gnome-terminalのlibvteにパッチを適用する必要があります。

libvteには、バックスペースをマップするためのいくつかのオプションがすでにありますが、いずれもCtrl-バックスペースを区別しません。Linuxコンソールの動作に従うオプションが必要です(バックスペースの場合は^?、Ctrl-バックスペースの場合は^ H)。このgnomeバグを参照してください。


2015年の更新:これは23c7cd0f99d504cbab06d4c27254d4f3e2807ba8で修正されました。

libvte 0.41.90、0.40.3以降に修正があります。

于 2010-06-26T18:34:41.940 に答える