Home > Vim Hacks > Hack #81: Insert mode中で単語単位/行単位の削除をアンドゥ可能にする

Hack #81: Insert mode中で単語単位/行単位の削除をアンドゥ可能にする

問題

Hack #76: Insert mode中で単語単位/行単位の削除を行なう ではInsert mode中でのちょっとした誤入力を簡単に訂正できる方法を紹介しました。

しかし調子に乗って<C-u><C-w>を連打していると不便なことがあります。 例えばInsert modeを開始してから以下のようなテキストを入力したとしましょう(「|」はカーソル位置です):

I am the Lord your God, who brought you out of Egypt,|

ここで<C-u>を押下すると以下の状態まで削除されます:

|

続いて以下のようなテキストを入力したとしましょう:

Eye for eye, tooth for tooth, hand for hand, foot for foot.|

ここで<C-u>での削除前のテキストに戻そうと思っても戻すことができません。 Insert mode中での変更はInsert modeから抜けるまでがアンドゥ可能な1単位として扱われるためです。 とはいえこのようなケースでもアンドゥしたいことはしばしばあります。 どうすればよいでしょうか。

解決方法

以下の内容をvimrcに追加します:

inoremap <C-u>  <C-g>u<C-u>
inoremap <C-w>  <C-g>u<C-w>

上記の設定は<C-u><C-w>での削除をアンドゥ可能にします。 右辺({rhs})に含まれる<C-g>uはInsert modeでの変更に区切りを付けるコマンドです。 これにより<C-g>u実行後の操作から<C-g>u実行前の状態にアンドゥできるようになります。

参考資料

kana

Comments:0

Comment Form
Remember personal info

Trackbacks:0

Trackback URL for this entry
http://vim-users.jp/2009/10/hack81/trackback/
Listed below are links to weblogs that reference
Hack #81: Insert mode中で単語単位/行単位の削除をアンドゥ可能にする from Vim-users.jp

Home > Vim Hacks > Hack #81: Insert mode中で単語単位/行単位の削除をアンドゥ可能にする

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

    Return to page top