Saturday, November 26, 2011

VIM中每行一相反順序排列

在VIM看log檔時,有時會希望從最舊的開始看,有時則想從最新的;或是,不知什麼鬼狀況看到的文字檔每行就是剛好是我想看順序的相反。通常都是後者的強況比較多,鬼狀況。

當然VIM最喜歡的就是鬼狀況。以下的指令可以直接將每行順序反轉。
:g/^/m0

以上是正規表示式(Regular expression)。
  • 開頭的g代表要對每個有比對的行執行動作。
  • ^代表要比對到的內容是每一行的開頭,因為每一行一定有開頭所以都會比對到。
  • m是移動。0則代表移到第0行,即檔案的最開始。

所以指令執行的時候會是
  1. 選第一行,將第一行移到檔案最頂端。
  2. 選第二行,將第二行移到檔案最頂端。
  3. 選第三行,將第三行移到檔案最頂端。
  4. ...
依此類推。