■■■■■■□■■■■■■□■■■■■■□□□□□■■□■■■■■■
■■□□■■□■■□□■■□■■□□□□□■■■■■■□■■□□□□
■■□□■■□■■□□■■□■■□□□□□■■□□■■□■■■■■■
■■□□■■□■■□□■■□■■□□□□□■■□□■■□□□□□■■
■■□□■■□■■■■■■□■■■■■■□■■■■■■□■■■■■■

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
  1. --/--/--(--) --:--:--|
  2. スポンサー広告

vim用Rubyスクリプト

しょうもないスクリプトなんだけど
仕事でコーディングする際に以外と重宝してるので載せてみます。

vimへのコマンド登録はスクリプト中のコメント参考
foo = 0
foobar = 1
a = 2
の3行を選択して:'<,'>AlignEqual%<CR>すると
foo    = 0
foobar = 1
a      = 2
と"="の位置をそろえます。

どの文字で揃えるかオプションで与えられて、3段階だけどこんなことも
switch (foobar){
    case 0: a = 0; b = 0; break;
    case 2: a = 10; b = 20; break;
    case 3: a = 100; b = 200; break;
    default : a = 0; b = 0; break;
}
:'<,'>AlignEqual :
switch (foobar){
    case 0  : a = 0; b = 0; break;
    case 2  : a = 10; b = 20; break;
    case 3  : a = 100; b = 200; break;
    default : a = 0; b = 0; break;
}
:'<,'>AlignEqual \bb\b
switch (foobar){
    case 0  : a = 0;   b = 0; break;
    case 2  : a = 10;  b = 20; break;
    case 3  : a = 100; b = 200; break;
    default : a = 0;   b = 0; break;
}
:'<,'>AlignEqual break
switch (foobar){
    case 0  : a = 0;   b = 0;   break;
    case 2  : a = 10;  b = 20;  break;
    case 3  : a = 100; b = 200; break;
    default : a = 0;   b = 0;   break;
}
あとここまでする人はいないだろうけど。
int a;
char b;
unsigned int c;
:'<,'>AlignEqual \s\w+\b;$
int          a;
char         b;
unsigned int c;


オプションはそのままrubyスクリプトに渡すので
vimなのにrubyの正規表現構文で渡さなきゃならない
違和感は仕様ですw

#!/usr/bin/env ruby
# command! -nargs=* -range AlignEqual ,!ruby C:\Tools\bin\runtime\AlignEqual.rb
Pattern = "(.*?)(#{ARGV.size.zero? ? "=" : ARGV[0]})(.*\n)"
@Lines = STDIN.read
# get max length
$MaxLen = 0
@Lines.each_line{ |line|
    $MaxLen = [$1.length, $MaxLen].max if (line =~ /#{Pattern}/)
}
# put lines
@Lines.each_line{ |line|
  if (line =~ /#{Pattern}/)
    puts $1 + " "*($MaxLen - $1.length) + $2 + $3
  else
    puts line
  end
}

# vim: et ts=2 sw=2

スポンサーサイト

テーマ:役立つツール - ジャンル:コンピュータ

  1. 2010/04/18(日) 15:27:55|
  2. フリーソフト
  3. | トラックバック:0
  4. | コメント:0
home

プロフィール

Author:nocd5
30歳(男)
会社員

Last.fm



最近の記事

--年--月--日 (--)
スポンサーサイト
2010年04月18日 (日)
vim用Rubyスクリプト

カテゴリー

カレンダー

03 | 2010/04 | 05
Sun Mon Tue Wed Thu Fri Sat
- - - - 1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 -

最近のコメント

最近のトラックバック

ブロとも申請フォーム

この人とブロともになる

ブログ内検索

Amazonアソシエイト

RSSフィード

リンク

このブログをリンクに追加する

FC2ブログランキング

FC2Blog Ranking

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。