vital.vimにText.Tableモジュールが追加されました

  • 1
    Like
  • 0
    Comment
More than 1 year has passed since last update.

Pull Requestが本家 vital.vim にマージされたので、紹介します。

これは何か

vim scriptから文字テーブルを作成することが簡単にできます。
perlのText::UnicodeTable::Simpleと似た感じです。

使い方

簡単な使い方を以下に載せます。
なお、ここでは題材に私の使用しているプラグインからいくつか抜粋して記載していますが、適当に抽出しただけで特に他意はありません。

これだけ複雑な表が簡単に作れてしまう!

実装している機能は、

  1. ヘッダの設定
  2. フッタの設定
  3. 列単位での水平/垂直方向の文字揃え
  4. 列単位での幅指定
  5. ボーダ有無の設定
  6. 列幅指定時、セル内での文字列自動折り返し

となかなか高機能です。
セルの結合に関しては、要望があればそのうち実装するかもしれません。
バグ報告、要望については、vital.vimのissuesにお願いします。
もちろん私に連絡頂いても構いません。

let s:V= vital#of('vital')
let s:T= s:V.import('Text.Table')
unlet s:V

" オブジェクトの作成
let s:table= s:T.new()

" カラムの設定
" 水平方向に右揃えの列を追加
call s:table.add_column({'halign': 'right'})
" デフォルト設定で列を追加
call s:table.add_column({})
" 垂直方向に中央揃えの列を追加
call s:table.add_column({'valign': 'center'})
" 幅20桁の列を追加
call s:table.add_column({'width': 20})

" ヘッダの設定
call s:table.header(['No.', 'プラグイン名', '作者', '説明'])
" フッタにはヘッダと同じものを表示
call s:table.footer(s:table.header())

" 行を追加していく
call s:table.add_row([1, 'gist-vim',     'mattn',      'vimからgistの投稿、閲覧、更新ができる。'])
call s:table.add_row([2, 'qiita-vim',    'mattn',      'vimからqiitaの投稿、閲覧、更新ができる。'])
call s:table.add_row([3, 'vim-ref',      'thinca',     'vimから各種ドキュメントを閲覧できる。'])
call s:table.add_row([4, 'vim-quickrun', 'thinca',     'これがないと仕事にならない。'])
call s:table.add_row([5, 'calendar.vim', 'itchyny',    'vimからgoogleカレンダーを閲覧、編集ができる。使い勝手と見た目がとても良い。'])
call s:table.add_row([6, 'w3m.vim',      'yuratomo',   'vim上でw3mを使ったブラウジングができる。'])
call s:table.add_row([7, 'j6uil.vim',    'basyura',    'vimからチャットサービスのlingrに接続できる。'])
call s:table.add_row([8, 'previm',       'kannokanno', 'vimからmarkdownのプレビューができる。'])

" 文字列化
" ※等幅フォントで閲覧ください。qiitaだと斜体になるので、あまり綺麗に見えないかも。
" +-----+--------------+------------+----------------------+
" | No. | プラグイン名 | 作者       | 説明                 |
" +-----+--------------+------------+----------------------+
" |   1 | gist-vim     | mattn      | vimからgistの投稿、  |
" |     |              |            | 閲覧、更新ができる。 |
" |   2 | qiita-vim    | mattn      | vimからqiitaの投稿、 |
" |     |              |            | 閲覧、更新ができる。 |
" |   3 | vim-ref      | thinca     | vimから各種ドキュメ  |
" |     |              |            | ントを閲覧できる。   |
" |   4 | vim-quickrun | thinca     | これがないと仕事にな |
" |     |              |            | らない。             |
" |   5 | calendar.vim |            | vimからgoogleカレン  |
" |     |              | itchyny    | ダーを閲覧、編集がで |
" |     |              |            | きる。使い勝手と見た |
" |     |              |            | 目がとても良い。     |
" |   6 | w3m.vim      | yuratomo   | vim上でw3mを使ったブ |
" |     |              |            | ラウジングができる。 |
" |   7 | j6uil.vim    |            | vimからチャットサー  |
" |     |              | basyura    | ビスのlingrに接続で  |
" |     |              |            | きる。               |
" |   8 | previm       | kannokanno | vimからmarkdownのプ  |
" |     |              |            | レビューができる。   |
" +-----+--------------+------------+----------------------+
" | No. | プラグイン名 | 作者       | 説明                 |
" +-----+--------------+------------+----------------------+
for row in s:table.stringify()
    echo row
endfor