これが私の.vimrcです:
inoremap <esc> <nop>
を使用してvimを起動するvim +startinsert
と、次の奇妙な文字が自動的に挿入されたバッファが表示されます(そして、「c」の後にカーソルがある挿入モードになっています):
[?1;2c
なぜこれが起こっているのかについてのアイデアはありますか?
これが私の.vimrcです:
inoremap <esc> <nop>
を使用してvimを起動するvim +startinsert
と、次の奇妙な文字が自動的に挿入されたバッファが表示されます(そして、「c」の後にカーソルがある挿入モードになっています):
[?1;2c
なぜこれが起こっているのかについてのアイデアはありますか?
t_RV
オプションが設定されている場合、Vimはそれを使用して端末にそれ自体について尋ねます。端末は通常、Escで始まるシーケンスで応答し、挿入マッピングはこの応答シーケンスに干渉します。最初のEscは「食べられ」、残りはVimによる通常のユーザー入力と見なされます。
ターミナルエミュレータにrxvtを使用していますか?出力は、 Rxvtがxterm-defaultクエリ(Vimが使用する場合でも)に応答して送信することをVimソースコードが示すシーケンスと一致します。t_RV
TERM=rxvt
この特定の問題を回避するためt_RV
に(たとえば、で)クリアすることができます。~/.vimrc
set t_RV=
ただし、Escの(非)マッピングにより、非ASCIIキーの使用が特に困難になる場合があります。他のほとんどすべてのキー(矢印、Home、End、Page Up / Down、F1〜F12など)は、Escで始まるシーケンスを送信します。 。あなたのマッピングはおそらくVimがこれらのキーが送信するシーケンスを認識できるようにするのを妨げるでしょう。
Vimの「イージーモード」(vim -y
)に興味があるかもしれません。自動的に挿入モードで起動し、「クリックアンドタイプ」エディターのようにVimモードを作成するマッピングやその他の設定を追加します。:help -y
およびを参照してください:help evim-keys
(挿入モードでスタックしている場合は、最初にCoと入力する必要があります)。Vimのモードを避けようとしている場合は、単に別のスタイルのエディターを調べたいと思うかもしれません。
これらの文字が挿入される理由を正確に言うことはできませんが、ユーザー入力以外のデータを端末 [エミュレーター] から vim に転送するために使用されるすべて<Esc>
またはほとんどすべてのシーケンスの最初の文字です。エスケープは、マウス クリック、 …<code>F12 キーの押下、場合によっては (端末によって大きく異なります。通常、端末はこれに対して別の何かを出力します)、矢印キー、/ 、サイズ変更に関する情報などを伝えるために使用されるシーケンスを開始します。一部のデータは通常のユーザー入力として処理されます (注:いずれの場合でも、端末は入力を渡すために使用する同じストリームを使用します。この入力が処理される C コードのレイヤーに違いがあるだけです)。それがあり、エスケープを再マップすると、そのような奇妙な文字が表示されます。F1
<Del>
<BS>
<PageUp>
<PageDown>
常に挿入モードの vim 構成をセットアップしようとしている場合は&insertmode
、 ではなく、設定が必要であることに注意してください:startinsert
。しかし、vim のことを忘れた方がずっといいでしょう。通常モードをデフォルトのモードにしたくないのであれば、vim は必要ありません。