Vimスクリプト(その128)(uniq sort)

:vimgrep 続きです。


検索結果に対して、タブが多すぎですので、重複しているタブを削除するため、一旦、現在のタブを全て削除。

:tabnew
:tabonly

検索結果を今一度確認。

:echo a

別の空リストを用意します。

:let b=[]

ファイル名のみをbリストに登録。

:for bname in a
:  call add(b,bufname(bname.bufnr))
:  endfor
:echo b

次に、重複しているファイルを削除するため、sortしてuniqします。

:let c=uniq(sort(b))
:echo c

ファイル名一覧ができたので、各ファイルにタブを割り当ててみます。

:for bname in c
:  execute "tabnew" bname
:  endfor


だいぶスッキリしました。

Leave a Reply

Your email address will not be published. Required fields are marked *

CAPTCHA