5

複雑な正規表現が含まれていない限り、Tabularプラグインをインストールしました。これは非常にうまく機能します…</ p>

しかし、私はこのリストを持っています:

one @abc @rstuvw &foo  
three @defg &bar 
four @mn @opq &kludge &hack  
twelve @hijkl &baz &quux

私はそれをそのように調整したいと思います(@…最初に、次に&…):

one    @abc @rstuvw &foo  
three  @defg        &bar 
four   @mn @opq     &kludge &hack  
twelve @hijkl       &baz &quux

つまり、同時に3つの問題が発生します。

  • 最初の出現に合わせます
  • 2つの異なる区切り文字(@および&)
  • これは実際には区切り文字ではなく、単語の先頭にある「特殊文字」です。

これは、正規表現とTabular.vimの両方についての私の理解をはるかに超えています

どうすればいいですか?

4

1 に答える 1

9

最初の出現に揃える

ヘルプファイルでこの問題が説明されています。次のコマンドを使用できます。

:Tabularize /^[^@]*\zs@/l1l0

少し説明:

  • ^行の始まりを意味します
  • [^@]*ではないものすべてに一致します@。可能な限り0回以上*を意味します
  • \zsここに正規表現の開始を入力します(この時点からすべてが一致します)
  • @前の文の「この点」は@記号を意味します
  • /l1l0つまり、1番目のブロックを左に揃えて1スペース(l1)を追加し、2番目のブロックを左に揃えて0スペース(l0)を追加します。

2つの異なる区切り文字を揃える

これは2つのコマンドで行う必要があります。あなたの生活を楽にするために、あなたはパターンに名前を付け、その名前を使うことができます:

:AddTabularPattern f_at /^[^@]*\zs@/l1l0
:AddTabularPattern f_and /^[^&]*\zs&/l1l0

今、あなたは走ることができます

:Tabularize f_at
:Tabularize f_and

コマンドをマップします

これらのメソッドをマップして、簡単なショートカットを生成することもできます。これについて詳しくはこちらをご覧ください

于 2012-11-11T14:38:09.737 に答える