Hack #76: Insert mode中で単語単位/行単位の削除を行なう
Posted at 2009/09/22ツイート
問題
テキスト入力中に誤入力をしてしまうことはしばしばあります。 例えば
if (foo == bar|
とまで入力したところでbarはloungeの間違いだったことに気付いたとしましょう (「|」はカーソル位置です)。 これには
<Esc> b ciw lounge
のようにカーソル位置を調整して該当単語を修正することができます (読み易さのためにスペースを入れていますが実際にスペースは入力しません)。
しかしこの手順は面倒です。Insert mode中のまま簡単に削除を行なうことは できないでしょうか。
解決方法
これにはInsert mode中で<C-w>
を入力します。
例えば最初に例示した状態で
if (foo == bar|
<C-w>
を入力すると以下の状態になります。
if (foo == |
Insert mode中での<C-w>
は
カーソル位置より前にある単語を削除することができます。
関連項目
<C-u>
というコマンドもあります。
これはカーソル行で入力された文字を全て削除します。
例えば以下のようにテキスト入力を行なったとしましょう
(「^」はInsert modeの開始位置です)。
if (foo == lounge) retrun a|
^
ここで<C-u>
を入力すると以下の状態になります。
if (foo == lounge) |
^
また、<C-w>
や<C-u>
を使う場合は
‘backspace’の値を以下のように調整しておくと
より便利に使うことができるでしょう。
set backspace=indent,eol,start
参考資料
kanaもどる
blog comments powered by Disqus