私はしばしば次のような状況に直面しています。
title : Jekyll Bootstrap
tagline: Site Tagline
author :
name : Name Lastname
email : [email protected]
github : username
twitter : username
feedburner : feedname
引数が正しくソートされていない場合、vim
それぞれの引数が最も近いインデントと整列するようにフォーマットする標準的な方法はありますか?ここで、インデントは、次のように1行ずつ移動する必要なく、2つのスペースとして定義されます。 :
title : Jekyll Bootstrap
tagline : Site Tagline
author :
name : Name Lastname
email : [email protected]
github : username
twitter : username
feedburner: feedname
修正する:
私は信じるテーブル.vim私が探しているプラグインですが、何かがブロックの一部でなければならないと判断したときに、行の先頭のスペースの数を考慮する正規表現を設定するのに問題がありますTabularize/:
。結果は次のとおりです。
title : Jekyll Bootstrap
tagline : Site Tagline
author :
name : Name Lastname
email : [email protected]
github : username
twitter : username
feedburner: feedname
これは例です文書以下は正規表現で実装されています。
abc,def,ghi
a,b
a,b,c
:表/^[^,]*\zs,/r0c0l0
abc,def,ghi
a,b
a,b,c
しかし、同じブロックの前のすべての行が同じ数のスペースを持ち、サブブロックを評価することを考えると、それを定式化する方法がわかりません。これは元の例よりも複雑です。
comments :
provider : disqus
disqus :
short_name : jekyllbootstrap
livefyre :
site_id : 123
intensedebate :
account : 123abc
facebook :
appid : 123
num_posts : 5
width : 580
colorscheme : light
次のように変換されますtabularize\some_regular_expression_I_cant_figure_out
。
comments :
provider : disqus
disqus :
short_name : jekyllbootstrap
livefyre :
site_id : 123
intensedebate :
account : 123abc
facebook :
appid : 123
num_posts : 5
width : 580
colorscheme : light
ベストアンサー1
これ表のvimプラグインはあなたが必要とすることを正確にすることができます。タイピングに入りますTabularize /:
ただし、これを行うと左インデントが維持されない可能性があります。
更新された質問を編集:Tabularを使用してこれを直接実行することはできませんが、範囲内で検索して置き換える2番目のコマンドを使用して実行できます。
:%s/\([ ]*\)[[:alpha:][:punct:]]*[ ]*/\0\1/
前のスペースを一定量検索して:
セミコロンの前に貼り付けます。