vimで文字が削除出来ないと思ったらバックスペースが効かなくなった

  • 96
    いいね
  • 0
    コメント
この記事は最終更新日から1年以上が経過しています。

はじめに

vimを最新版にしようといろいろいじってたらおかしくなりました。
vimでインサートモード中はバックスペースが効くのですが、文字入力後に一度ノーマルモードに戻って、もう一度インサートモードになって先ほどの文字を消そうをすると消 え な い 。

対策

以下のコードを.vimrcに記述して解決しました。

.vimrc
set backspace=indent,eol,start

コントロールコード

ちなみに、vimでコマンドラインモードになってバックスペースを入力すると^Hと入力されてしまいました。
この^Hというのは コントロールコード と呼ばれるものです。 制御コード とも呼ばれますね。同じ意味です。

キーバインドを変更する時などにコントロールコードを入力しなければならない場合があります。
表示上では^Hとなっていますが、この文字通りに入力してもコントロールコードとしての意味を持ちません。
vimで入力する場合は、Ctrl + vを押してバックスペースやCtrl + hを押すと対応するコントロールコードが入力出来ます。
vimで色つけておけば、キーボードから直接入力した場合とCtrl + vと対応するキーを入力した場合では色が変わるのでわかりやすいと思います。

おわりに

こういう現象が起こった方は参考にしてみてください。
コントロールコードの入力方法は勉強になりました。
今回は以下の記事を参考にさせて頂きました。ありがとうございます。

cygwin vimで<BS>,<DEL>が効かないとき
http://blogs.yahoo.co.jp/momongamemonga/39861534.html