高性能なテキスト整形ツールAlignの使い方 #2 組み込みマッピングでテーブル構造を整形する
この記事では、整形ツールAlignに組み込みまれているマッピングを使用して、 CSV、TSVやHTML構造などの整形処理を行う方法を説明します。 (Windows, Mac)
概要
Align : Provides commands and maps to help produce aligned text, eqns, declarations, etc
http://www.vim.org/scripts/script.php?script_id=294
この記事では、整形ツールAlignに組み込みまれているマッピングを使用して、 CSV、TSVやHTML構造などの整形処理を行う方法を説明します。
「 高性能なテキスト整形ツールAlignの使い方 #1 インストールから設定まで 」の続きとなる記事です。
テーブル構造の整形機能の使い方
Align にはテーブル構造の整形用に、いくつかのキーマッピングがあらかじめ用意されています。
この Align に用意されたキーマッピングを使用するには、次のような手順を踏みます。
- まず整形処理の対象となる範囲を指定する。
- 実行する種類のキーマッピングを入力する。
この時、処理の範囲の指定方法には、ビジュアルモードで範囲を指定する方法と、
「a」のマークを使用する方法で、2種類の方法が用意されています。
Note
キーマッピングで整形処理を呼び出す方法以外に、
GUIのメニューで整形処理を呼び出す方法も用意されています。
このメニューはAlignをインストールすると追加されます。
ビジュアルモードで範囲指定して整形処理を行う
整形処理の処理対象範囲をビジュアルモードする場合は、 まず、整形処理の対象としたい範囲をビジュアルモードで選択します。
ビジュアルモードで整形処理の範囲を選択する。 one two three four five six seven eight nine ten eleven twelve thirteen fourteen fifteen
次に実行する整形処理のキーマッピングを入力します。
例えば、空白文字で区切られた各フィールドの位置を整形する場合は次のように入力します。
(どのキーを押すと、どの整形処理が実行されるかは後述。)
\tsp
整形処理実行のキーを入力すると、このように整形処理が実行されます。
整形処理後 one two three four five six seven eight nine ten eleven twelve thirteen fourteen fifteen
「a」のマークで範囲指定して整形処理を行う
マークを利用して、 Align の機能を呼び出す場合は次のようにします。
まず、整形処理を実行する範囲の先頭位置にカーソルを移動します。
整形範囲の先頭行の位置にカーソルを移動します。
one two three four five
six seven eight nine ten
eleven twelve thirteen fourteen fifteen
ノーマルモードで「ma」と入力し、カーソル位置に「a」のマークを設定します。
ma
次に、今度は整形処理の対象としたい範囲の最後の行にカーソルを移動します。
整形範囲の最後の行の位置にカーソルを移動します。
one two three four five
six seven eight nine ten
eleven twelve thirteen fourteen fifteen
最後に実行する整形処理のキーマップを入力します。
今回の例の場合も、先ほどの例と同じく、空白文字で区切られた各フィールドの位置を調節したいので、
次のように入力することになります。
\tsp
整形処理実行のキーを入力すると、整形処理が実行されます。
整形処理後 one two three four five six seven eight nine ten eleven twelve thirteen fourteen fifteen
用意されている整形機能のマッピングの一覧
Align に用意されている、キーの入力による、テーブル関連構造の整形機能はこれだけあります。
上でも説明していますが、整形処理の範囲を指定して、
下の表のキーを入力すると、選択した整形処理が実行されます。
<Leader>tsp | 空白文字で分割して整形。各フィールドは左揃え。 |
<Leader>Tsp | 空白文字で分割して整形。各フィールドは右揃え。 |
<Leader>tsq | 空白文字で分割して整形。ダブルクォートで囲まれたフィールドをサポート。各フィールドは左揃え。 |
<Leader>tab | TSVの整形。タブ文字で分割して整形。タブ文字は半角スペースに変換される。 |
<Leader>t{セパレータ} | 指定したセパレータで分割して整形。各フィールドは左揃え。 |
<Leader>T{セパレータ} | 指定したセパレータで分割して整形。各フィールドは右揃え。 |
<Leader>tml | 行末のバックスラッシュの位置の整形。シェルスクリプト用。 |
<Leader>Htd | HTMLのテーブルの整形。 |
<Leader>tt | LaTexのテーブルの整形。 |
Note
「<Leader>」は、特に特別な設定を行っていなければ、
「\(バックスラッシュ、もしくは円マーク)」になります。
例えば、「<Leader>tsp」となっている時は、
「\tsp」と実行すれば、「<Leader>tsp」の整形処理を実行できます。
<Leader>tsp、<Leader>Tsp
「<Leader>tsp」、または「<Leader>Tsp」と実行すると、
文章を空白文字で区切って、複数のフィールドに分割し、
それぞれのフィールドの位置揃えを行います。
「<Leader>tsp」「<Leader>Tsp」には、各フィールドを左寄せにするか、右寄せにするか、
という違いがあります。
次の文章に対して、
one two three four five six seven eight nine ten eleven twelve thirteen fourteen fifteen
「<Leader>tsp」と実行すると、
<Leader>tsp
one two three four five six seven eight nine ten eleven twelve thirteen fourteen fifteen
「<Leader>Tsp」と実行すると、
<Leader>Tsp
one two three four five six seven eight nine ten eleven twelve thirteen fourteen fifteen
と整形します。
<Leader>tsq
「<Leader>tsq」は、整形範囲の文章を空白文字で区切って各フィールドに分割し、
それぞれのフィールドの位置を整えます。
「<Leader>tsp」「<Leader>Tsp」と似た整形処理ですが、
ダブルクォートに囲まれた空白文字入りのテキストを、
1つのフィールドとして扱える、という特徴があります。
次の文章に対して、
"one two" three four "five six"
「<Leader>tsq」と実行すると、
<Leader>tsq
"one two" three four "five six"
と整形する。
<Leader>tab
「<Leader>tab」を実行すると、タブ文字で文章をフィールドに分割し、各フィールドの位置を揃えます。 TSVフォーマットのファイルを見やすく整形する機能です。 各フィールド間のタブ文字は、半角スペースに置換されます。
もとのテキスト
aa>-bbb>cccc>---ddddd>--ee 1111>---22>-33>-4444>---5
「<Leader>tab」と実行すると、
<Leader>tab
aa bbb cccc ddddd ee 1111 22 33 4444 5
と整形されます。 タブ文字はスペースで置き換えられます。
<Leader>t{セパレータ}、<Leader>T{セパレータ}
一部の記号だけですが、各フィールドを区切るセパレータを自分で指定することもできます。
指定できるのは、「,」「:」「<」「=」「@」「|」の6種類です。
<Leader>t{セパレータ}と指定した場合は各フィールド左寄せで、
<Leader>T{セパレータ}と指定した場合は各フィールドを右寄せで整形します。
<Leader>t=、<Leader>T=
もとの文章
aa=bb=cc=1; a=b=c=1; aaa=bbb=ccc=1;
「<Leader>t=」と実行
<Leader>t=
aa = bb = cc = 1; a = b = c = 1; aaa = bbb = ccc = 1;
「<Leader>T=」と実行
<Leader>T=
aa = bb = cc = 1; a = b = c = 1; aaa = bbb = ccc = 1;
<Leader>t|、<Leader>T|
もとの文章
one|two|three four|five|six seven|eight|nine
「<Leader>t|」と実行
<Leader>t|
one |two |three four |five |six seven|eight|nine
「<Leader>T|」と実行
<Leader>T|
one| two|three four| five| six seven|eight| nine
<Leader>t:、<Leader>T:
もとの文章
one:two:three four:five:six seven:eight:nine
「<Leader>t:」と実行
<Leader>t:
one : two : three four : five : six seven : eight : nine
「<Leader>T:」と実行
<Leader>T:
one : two : three four : five : six seven : eight : nine
と、それぞれ、指定したセパレータで区切って、整形します。
<Leader>tml
「<Leader>tml」は行末のバックスラッシュの位置を揃えます。
この機能は、シェルスクリプトの次の行に続くことを意味するバックスラッシュ位置の
整形などで利用できます。
もとの文章
one \ two three \ four five six \ seven \\ \ eight \nine \ ten \
「<Leader>tml」と実行
<Leader>tml
one \ two three \ four five six \ seven \\ \ eight \nine \ ten \
と整形される。
<Leader>Htd
「<Leader>Htd」はHTMLテーブルのソース上のカラム位置を揃えます。
もとの文章
<TR><TD>...field one...</TD><TD>...field two...</TD></TR> <TR><TD>...field three...</TD><TD>...field four...</TD></TR>
「<Leader>Htd」と実行
<Leader>Htd
<TR><TD> ...field one... </TD><TD> ...field two... </TD></TR> <TR><TD> ...field three... </TD><TD> ...field four... </TD></TR>
と整形。
<Leader>tt
「<Leader>tt」はLatexのテーブルのカラムのソース上での位置を揃えます。
次のような文章がある場合に
\begin{tabular}{||c|l|r||} \hline\hline one&two&three\\ \hline four&five&six\\ seven&eight&nine\\ \hline\hline \end{tabular}
テーブルのカラムの行を選択して、
\begin{tabular}{||c|l|r||} \hline\hline one & two & three \\ \hline four & five & six \\ seven & eight & nine \\ \hline\hline \end{tabular}
「<Leader>tt」と実行すると、
<Leader>tt
\begin{tabular}{||c|l|r||} \hline\hline one & two & three \\ \hline four & five & six \\ seven & eight & nine \\ \hline\hline \end{tabular}
というように整形されます。
Recent Comments
ありがとうございます!
http://nanasi.jp/articles/howto/editing/visualcursor-endtoend.html · 7 years ago
知りませんでした。有難うございました。
http://nanasi.jp/articles/howto/file/open-with-format.html · 9 years ago
<c-f>1ページ分、下にスクロールする<c-b>1ページ分、上にスクロールする
どっちも逆です。
http://nanasi.jp/articles/howto/user-manual/user-manual-motion.html · 10 years ago
set 使用時に : で閉じるのを忘れて右往左往してました。
http://nanasi.jp/articles/howto/file/modeline.html · 10 years ago
やっぱり日本語の方が早いっす。
http://nanasi.jp/articles/howto/help/help_ja.html · 11 years ago