例えば、Vim で箇条書きでメモをしていて、一部だけを逆順にしたいときってありますよね?ありますよね?
こんな風にメモを取っていたときに
欲しい機能
- カメラ機能が欲しい
- 写真をアップロードしたい
- 写真にコメントをつけたい
予算xx万
こんな風に変更したいとかいうときですね。
欲しい機能
- 写真をアップロードしたい
- 写真にコメントをつけたい
- カメラ機能が欲しい
予算xx万
辞書順にソートしたいときは、ビジュアルモードで選択したあと次のコマンドでソートできます。
:'<,'>sort # ソート(a->z)
:'<,'>sort! # 逆ソート(z->a)
けれど、今回やりたいのは単純に元の順番の逆にしてほしいです。
そんなときは、同じくソートしたい領域をビジュアルモードで選択したあとにtail
/tac
コマンドを呼び出して逆順に並び変えることができました。
MacOSX/*BSD
:'<,'>!tail -r
GNU/Linux
:'<,'>!tac # tac: reverse cat
OSのコマンドを利用しない方法としては次がありました。
:g/^/m0 # 0 は、ビジュアルモードで選択し始めた行-1 の数値
後者のほうがスマートなのかもしれませんが、ちょっと覚えにくいのとビジュアルモードで選択し始めた行を確認しないといけないので、たぶん tail
/tac
版を利用すると思います。
ほかにいい方法があればぜひ教えてください。
参考