14
11

More than 5 years have passed since last update.

VimでcsvからMarkdownのテーブルを生成するプラグインを作った

Last updated at Posted at 2016-02-14

最近勉強会に行ったときのメモだったり仕事だったりでMarkdownを書く機会が多かったので作ってみた。

How To

  • ほぼgitのReadmeに書いた
  • 公式に則ったVimプラグインの形にしていないのは、単なる好み
    • あとまぁAPIも同梱だし
    • 導入が面倒なのは反省点

どんなときに使うか

新しくテーブルを組むとき

  • とりあえずエディタ上でcsv形式で書いて、ToMarkdownする
    • ShowMarkdownでプレビューを繰り返し、最後にToMarkdownする
    • いきなりmarkdownで書いて何かに投稿したら|の数がずれていて<table>にならない!とかを防げる
    • 縦揃えとか:--とかが不要だし、区切り文字も|よりは,の方が楽かも?
  • 予め何らかの表計算ソフトでcsvを作っておいてからAppendMarkdownFromFileで変換しつつ展開する
    • ある程度大きいテーブルの場合はこちらが便利
    • 当然Vimのファイルパスのタブ補完も出来る

既存のテーブルを編集するとき

  • 縦が揃っていないテーブルを整形する
    • ToCsvをしてToMarkdownをすると縦が揃う
  • WriteCsvToFilecsvファイルを生成し、表計算ソフトで編集したらAppendMarkdownFromFileを行う
    • エディタで編集するのが辛い場合向け
    • こちらも当然ディレクトリのタブ補完が出来る

コマンドラインツール

  • 自分の使っているエディタやツールから呼びたいとき
  • Vimは使わないけど、ってとき
    • csvmarkdownにして、ファイルにリダイレクト書き込みをしたり

未対応事項(対応予定なし)

  • 選択範囲に`を含む場合に変換エラーが起きる
  • 選択範囲に"を含む場合に変換エラーが起きる
  • 選択範囲に,を含む場合にToMarkdownを実行するとcsvのカラムが増える

おまけ

vimで横線を引く

rは一文字だけ置き換えるコマンドだが、範囲選択をしていると全てに適用される

  1. 一番長い行を線を引きたい行に複製する
  2. 行選択<Shift-v>をしてr-
  3. あとは:|にしたい所にカーソルをあわせてr:

vimで縦線を引く

矩形選択からの挿入で縦に文字を書くことが出来る

  1. 矩形選択<Ctrl-v>をしてIで挿入モードにする
  2. 入力したら<ESC>
  3. 複数行に反映される

vimで縦に消す

矩形選択から削除も出来る

  1. 矩形選択<Ctrl-v>をする
  2. xdで削除する

ちなみにx等で削除せずc等で挿入モードに入れば全行まとめて編集できる

おわりに

実はおまけの方を知っていれば割とVimだけでもイケる、矩形選択を使いこなすと本当に便利。
あと.gif作って載せるのすごい楽しいw

ぜひ使ってみてください!!!

14
11
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
14
11