Home > Vim Hacks > Hack #76: Insert mode中で単語単位/行単位の削除を行なう

Hack #76: Insert mode中で単語単位/行単位の削除を行なう

問題

テキスト入力中に誤入力をしてしまうことはしばしばあります。 例えば

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

Comments:0

Comment Form
Remember personal info

Trackbacks:0

Trackback URL for this entry
http://vim-users.jp/2009/09/hack76/trackback/
Listed below are links to weblogs that reference
Hack #76: Insert mode中で単語単位/行単位の削除を行なう from Vim-users.jp

Home > Vim Hacks > Hack #76: Insert mode中で単語単位/行単位の削除を行なう

Search
Feeds
Links
  • 公式
  • 勉強会
  • 情報
  • コミュニティ
  • プラグイン
  • vimrc
  • Meta
    Etc
    Creative Commons License
    This blog is licensed under a Creative Commons License.

    Return to page top