2012年1月19日木曜日

Vim の undo 履歴をクリアしたい [vim]

めっちゃ久しぶりに Vim の話でも.
といっても小ネタですが.

Vim を使っていると,どこかのタイミングで undo 履歴をクリアしたい時があります.具体的には「ここまではオッケー」という時に undo 履歴をクリアし,その後思うままに編集して,なにかあったら「オッケー」のところまで u 押しっぱなしで戻るとか.

そんな時,今までは :e してたんですが,いつの頃からか (7.3ぐらい?) それでも undo できるようになっている.

で,ちょっと調べてみたらヘルプに載ってました.
http://vimdoc.sourceforge.net/htmldoc/undo.html#clear-undo

というわけで

command -nargs=0 ClearUndo call <sid>ClearUndo()
function! s:ClearUndo()
  let old_undolevels = &undolevels
  set undolevels=-1
  exe "normal a \<BS>\<Esc>"
  let &undolevels = old_undolevels
  unlet old_undolevels
endfunction


みたいな.


0 コメント: