LoginSignup
25
26

More than 5 years have passed since last update.

Vim で 選択した領域を逆順にする方法

Last updated at Posted at 2014-05-25

例えば、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 版を利用すると思います。

ほかにいい方法があればぜひ教えてください。

参考

25
26
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
25
26