backspace オプション(Vim の場合)
Vim エディタでは、インサートモード中に Backspace キーを押すと、入力した文字が削除されますが、デフォルトではインサートモードに入ったカーソル位置より前の文字を削除することはできません。 代表的な削除系のキー入力は、下記のような振る舞いをします。
- Backspace: カーソル位置の直前の 1 文字を削除する。ただし、インサートモードに入ったときのカーソル位置までしか削除できない。
- CTRL-W: カーソル位置の直前の 1 単語を削除する。ただし、インサートモードに入ったときのカーソル位置までしか削除できない。
- CTRL-U: カーソル位置からインサートモードに入ったときのカーソル位置までを削除する。
backspace
オプションを設定すると、上記のようなキー入力によって削除可能な文字の範囲を広げることができます。
backspace
オプションには次のような値をカンマ区切りで設定します。
indent
: オートインデント機能で挿入されたスペースを削除できるeol
: 改行を削除できる(前の行に遡って削除していける)start
: インサートモードに入ったときのカーソル位置よりも前の文字を削除できる(ただし、CTRL-W や CTRL-U による削除は、インサートモードに入ったカーソル位置までで削除範囲が一度止まる)
" インサートモード中の BS、CTRL-W、CTRL-U による文字削除を柔軟にする
set backspace=indent,eol,start
上記のように設定しておくと、それぞれの削除系のキー入力の振る舞いは下記のように変化します。
- Backsapce: カーソル位置の直前の 1 文字を削除する。インサートモードに入った時のカーソル位置よりも前の文字を削除できる。
- CTRL-W: カーソル位置の直前の 1 単語を削除する。インサートモードに入った時のカーソル位置よりも前の単語を削除できる。ただし、インサートモードに入った時のカーソル位置も単語の境界とみなす。
- CTRL-U: カーソル位置から行頭までを削除する。ただし、インサートモードに入ったときのカーソル位置も行頭とみなす。
backspace オプション (NeoVim の場合)
NeoVim の場合は、backspace
オプションの設定値が デフォルトで indent,eol,start
となっているため、何も設定しなくても Backspace キーが直感的に振る舞います(編集開始位置よりも前の文字を削除できます)。