FC2ブログ

uuu

http://blog.uu59.org/ もあります
-- --, --

スポンサーサイト

Posted in スポンサー広告
上記の広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書く事で広告が消せます。
02 09, 2011

gundo.vimが超便利なのとvimのアンドゥツリーについて

0 CommentsPosted in 未分類

gundo



https://github.com/sjl/gundo.vim



screencast



我が家の設定



nmap U :<C-u>GundoToggle<CR>



vimのアンドゥツリーについて



詳しくは:h undo-treeを見てもらうとしてここでは概要だけ。



windowsのメモ帳を除く一般的なエディタは複数のアンドゥ/リドゥ履歴を持っています。A→B→C→Dと編集して今Dの状態だとすると、ここからCtrl+Z(vimだとu)でCへ、もう一度Ctrl+ZでBへ、さらにAへと履歴をさかのぼれます。またAに戻ったあとCtrl+Y(vimだと<C-r>)を入力するとBへ、続いてCへ、Dへと遷移できます。ここでDからCにアンドゥで戻って全然関係ない入力をするとEができ、A→B→C→Eという履歴になります。こうなるとDへは移動できなくなります。





vimはこの一般的な編集履歴に加えて時間軸での履歴を持っています。A→B→C...ではなく最初→2秒後→5秒後→32秒後→...というように、変更があった時刻ごと覚えている感じです。わかりにくくいえばgit logとgit reflogの違いです。





上図でいま6に居るとすると、uの代わりにg-を入力すると5に、もう一度g-で4(つまりD)に切り替えられます。<C-r>の代わりにg+すると5,6にそれぞれ遷移します。A→B→C→Eではなく1→2→3→4→5→6という軸を移動することになります。(他にも:later 4などのコマンドもありますが詳しくはhelpを読んでください)



gundo.vimのおしごと



上記を踏まえるとgundo.vimのやってることは明白です。1→2→3→...の時間軸をビジュアライズしてくれています。





71まで編集したあと65まで戻り、66,67と編集しましたがやっぱりやめて、また65まで戻って68まで編集したけど、やっぱり全部やめて64より前(上の画像だと見切れてる……)まで戻って72として再スタートを切ったところです。その間の操作は全部vimが覚えていて、gundo.vimはそれをわかりやすく表示してくれています。



カーソルのあるところ(68)と前回(65)の差分が左下のバッファに表示されていて、そのままEnterを押下すると68の時点まで一気に移動できます。68に移動したあと編集を再開すると、68のツリーが伸びていく感じになります。



要するに、わかりにくくいえばgit reflog --graphみたいな架空のコマンドだということです。終わり。


Next: phantomjs+jQueryを使ってDPZからべつやくれい先生のページだけスクレイピングする

Previous: Evernote XSS事件のエクスプロイトとその対策過程と顛末
Home
-0 Comments

Leave a comment

管理者にだけ表示を許可する
-0 Trackbacks

この記事にトラックバックする(FC2ブログユーザー)

検索フォーム


プロフィール

https://twitter.com/uu59
https://github.com/uu59
http://blog.uu59.org/

月別アーカイブ
  • 2011/10 (1)
  • 2011/07 (1)
  • 2011/06 (1)
  • 2011/05 (2)
  • 2011/04 (2)
  • 2011/02 (2)
  • 2011/01 (1)
最新記事
  • 移転してました→http://blog.uu59.org/ (10/21)
  • ActiveRecordなどで任意のSymbolを生成しまくってDoSされる危険があるので気をつけよう (07/25)
  • シドニーに移住して1ヶ月弱が経ちました (06/26)
  • xargsもすごいのでもう死ぬしかない (05/18)
  • dotcloudのpostgres(たぶんmysqlも)はデフォルトで全接続を許可するので気をつけよう (05/09)
カテゴリ
未分類 (10)
最新コメント
  • uu59:xargsもすごいのでもう死ぬしかない (05/18)
  • uu59:Evernote XSS事件のエクスプロイトとその対策過程と顛末 (04/20)
  • ななし:Evernote XSS事件のエクスプロイトとその対策過程と顛末 (04/20)
© uuu All rights reserved. Designed by FasionHasion
FC2ブログ