vimでファイル全体をソートする方法
提供: neovim/vim入門
スポンサーリンク
vimなら編集中のファイル内(バッファ全体)を簡単にソートできます。
読み方
- sort
- そーと
目次
概要
ファイルの編集中に以下の悩みを持つことはありませんか?
- ファイルの行をソートしたい
- 編集中のファイルの重複を省きたい
vim を終了し、sort コマンドを利用して、ソートしてから、もう一度 vim でファイルを開く、といった面倒な方法もありますが、もっとスマートな方法があります。
外部コマンドを利用したソート
ファイル内をソートする方法
現在のファイル(バッファ)全体に対して、sort コマンドを実行する方法は以下の通りです。
:%!sort
- % (パーセント) は、現在のバッファを意味します。
- ! (エクスクラネーションマーク)は、システムのコマンドを実行することを意味します。
さらに、ユニーク処理したいのであれば、 -u オプションを利用します。
:%!sort -u
内部コマンドを利用したソート
ファイル内をソートする
バッファ全体を昇順でソートする場合は、以下の通りです。
:sort
バッファ全体を降順でソートする場合は、以下の通りです。
:sort
大文字小文字の区別なしでソートする
a A b B
を :sort でソートすると
A B a b
になります。
大文字小文字を区別なしにソートするには
:sort i
を利用します。結果は、以下の通りになります。
A a B b
8進数、10進数、16進数のソート
それぞれ、以下のオプションを利用してソートできます。
:sort o :sort n :sort x
カンマで区切られた第2フィールドでソートする例
以下のデータがあったとき、セパレータを , (カンマ) とします。
foo,10,aaa bar,8,aaa hoge,20,aaa
ここでは整数の第2フィールドを10進数として、ソートしたい場合は、
:sort /[^,]*,/n
となります。 結果は以下の通りです。
bar,8,aaa foo,10,aaa hoge,20,aaa
n オプションをつけないと、10,20,8 という順番で並ぶことになります。
まとめ
- :%!sort や :sort で開いているファイル全体を簡単にソートできる
- :%!sort -u で開いているファイル全体をユニークにソートできる
関連項目
ツイート
スポンサーリンク