行の塊をソートする。manga-osort プラグイン。
この記事は Vim Advent Calendar 2012 の 296 (にくろう)日目の記事です。
zsh や vim の設定を書く時、単に設定を羅列するだけでは、後でなにを書いたのわからなくなる!
ということで、コメント付きで書くことも多いと思います。
で、コメントを書くのはいいけど、設定が多くなってくると、何がどこに書いてあるかわかりづらい!
そこで、御ソートしたいと考えるのですが、コメントがあるとめんどい!死ぬ! manga-osort !!
というわけです。
実例
.zshrc の setopt のあたりを、オプション名でソートする。
これ(特に意味のない順番で書かれてますね)を、
# 色を使う(エスケープシーケンスを通す) setopt prompt_subst # auto_list の補完候補一覧で、ls -F のようにファイルの種別をマーク表示 setopt list_types # 複数の zsh を同時に使う時など history ファイルに上書きせず追加する setopt append_history
選択して…、ほいさ!
:'<,'>OSort key=1 ^#
できた!
# 複数の zsh を同時に使う時など history ファイルに上書きせず追加する setopt append_history # auto_list の補完候補一覧で、ls -F のようにファイルの種別をマーク表示 setopt list_types # 色を使う(エスケープシーケンスを通す) setopt prompt_subst
入手先
https://github.com/anekos/manga-osort
NeoBundle つかってれば、
NeoBundle 'anekos/manga-osort'
だけ!便利!
使い方
コマンドは今のところ一つだけです。
:[range]OSort [key={key}] [ignorecase={ignorecase}] {pattern}
patten は正規表現で、これにマッチする行を基準に行の塊を決めます。
(pattern の行から、次の pattern の行までを一つの塊になります)
key を指定すると、pattern の基準行から key 番目の行をキーとしてソートします。
ignorecase は 1 を指定すると、キーのソート時に、大文字小文字を無視します。
range は、指定しなければバッファ全体が対象になります。
v キーで Visual モードに入って選択し、:OSort .. を打つのが良いと思います。
設定
pattern やオプションのデフォルト値を設定できます。
コマンドのオプションと同じキーで辞書作ればいいです。
let g:manga_osort_default_options = { \ 'key': '1', \ 'pattern': '^"' \ }
ふぉそく
デフォルト以外でよく使うパターンは、altercmd などを使うといいです。
コマンドラインで長いコマンドを打ち込む - Humanity