6

MinGW 4.6.2のVimの動作がおかしいです。たとえば、挿入モードでBackspaceキーを押すと文字が削除されますが、削除された文字が消える前に矢印キーでカーソルを移動する必要があり、挿入モードも終了します。

別の例として、Delを押して文字を削除すると、小文字を大文字に変更するなどの奇妙な文字が生成されたり、キー入力した次の文字が破損したりすることがあります。たとえば、「S」を押すと最初に「$」が表示されます。

私はVimを間違って使用していますか?私はVimにあまり詳しくないので、これがデフォルトの動作であるかどうかはわかりませんが、私が理解している典型的なVimの動作は、BackspaceとDelがNotePadの場合と同じように機能するGitBashのVimのようなものです。

4

4 に答える 4

13

MinGWでvimを使用することにも問題があります。特に、マウスホイールのスクロールに関係しています。しかし、あなたが説明する問題は、viの互換性のように聞こえます。

vimrcで次の設定を試しましたか?

set nocompatible
set backspace=2
于 2014-06-05T04:12:21.340 に答える
4

重要なのは、バックスペースが頻繁^Hにあり、削除が頻繁にあるということです^?-そして、いくつかのばか端末は、2つを交換するか、両方が同じ文字を提供します。一部の端末が実際に間違っている場合、キーを押すとが生成さESC~<something>ESCvimコマンドモードになり、次に~文字の大文字と小文字が入れ替わります。

対処する端末機能のデータベースもありterminfoます。環境変数が実行中の端末と正確に一致しない場合、間違った機能が選択され、アプリケーションは端末を適切に制御するために間違ったエスケープシーケンスを生成します。termcapTERM

もちろん、Windowsで実行すると、端末はプラットフォームにあまりネイティブではないため、すべてがさらに複雑になりますCMD.EXE。独自の処理を実行し、MSYS別の処理を実行します。これは、非常に一般的であるという理由だけで、vimおそらく標準的なものと見なされます。CMD.EXE

これらはすべて、私が使用をお勧めする理由gvimです。テキストモードとほぼ同じように動作するGUIウィンドウを開始しますが、動作vimははるかに予測可能であり、完全に構成できます。動作を修正gvimするvimと、実際には構成が変更され、他のMSYSプログラムが破損する可能性があります。すでに使用している環境で編集するだけでなく、「新しいコンテキスト」を開始する方法は嫌いですが、Windowsではそれほど厄介ではありません。gvimgvim

于 2012-06-06T22:59:49.960 に答える
2

あなたのvimは正しく動作しています-ちょうどそれが低機能の端末を検出し、画面にあまり触れたくないモードです(S問題-$削除される領域の終わりを示しますが、それはあなたまで待ちます'挿入が完了したので、残りの行を1回だけ再描画する必要があります)。悪い端末エミュレーションは、特定のキーを押したときにゴミを送ることもあります。

@sarnoldが提案したgvimは、ウィンドウで動作するvimのビルドであり、別のエディターではありません。それはまだ完全なvimであり、まだ課題があります。Windowsボックスで立ち往生している場合、これはターミナルvimよりもはるかに良い選択です。私が作業するのが好きな単一のターミナルを認識していないからです(そして私はCygwinを含めています)。

于 2012-06-06T19:13:16.410 に答える
0

Vimに送信された文字は次の方法で確認できます。

  1. を押してコマンドモードを開始します:
  2. プッシュCtrl+v
  3. 目的のキーを押します(BackspaceまたはDelあなたの場合)。

そのため、ターミナルからvimに送信される魔法のキャラクターシーケンスが表示されます。

たとえば、私の場合<C-Del>、を押したときに見たBackspaceので、.vimrcに次のコードを挿入することでバックスペースキーを修復できました。

"例:xtermターミナルの
場合&term =" xterm ""バックスペースを修復する:inoremap nnoremap fi

于 2016-04-16T18:04:11.227 に答える