読者です 読者をやめる 読者になる 読者になる

オレオレテキストドキュメント用プラグイン vim-tmngつくった

vim

f:id:maxmellon:20151216004107p:plain

github.com

SLP内のvimmerは,Star or Contribute してほしいな(チラチラ.star1つですごくモチベーションにつながる

vim-tmngとは

SLPや研究室の議事録でよく使われるドキュメントフォーマットである”TmngDocument(たまねぎドキュメント)” を Syntaxハイライトするvimプラグインです. TmngDocumentの特徴としては,■, ●,◎,○などのマーカーを多用します.

SLPとは、香川大学工学部のプログラミングサークルである

対象ユーザー

  • 主に僕
  • SLP内のひよっこvimmerからベテランvimmerまで.
  • TmngDocument形式で大量のドキュメントを書く必要のあるゼミ生

背景

ほんとは,markdownとかそういうかんじのナウでヤングなフォーマットのドキュメントが書きたかった. でも,我らボスの意向や,過去のドキュメントの関係からフォーマットを変更することはムズいとのことだ. なら,そのフォーマットに合わせて便利ツールつくればいいじゃん! エンジニアのひよっこなんだから,見のまわりを便利にするツールくらい自作したい!

最低限の機能要求

  • とりあいず色
  • テンプレートの生成
  • ,.の置換
  • 80文字以内での折り返し

現状,この要求は満たしている

demo

f:id:maxmellon:20151216005050p:plain

こんな感じで色つきます,スペースが全角だったり,入ってなかったりしていると色がきえるので,TmngDocument形式を覚えていないSLP1年生にも優しいです!

こだわりポイント

docment

僕はすごく英語が苦手だ.なので英語はできるだけ書きたくないし自信もない. だけど,vimのためなら英語でドキュメントが書けた.これはすごいことだ.vimはプログラミングの勉強にもなるし,開発も円滑にするし,英語の勉強にもなる.しかも,就活で話すネタにもなる.vimって最高だよね.

test,lint

微量ながら単体テストのコードを書いている.テスティングフレームワークには,vimspecを利用している. vimspecを採用した理由は,非常にシンプルで提供しているものが非常に少なくミニマルなものだからだ.機能をたくさん提供するプラグインではないので,これで十分だった. 一応,TravisCI上でもテストしている.

いまは,関数のテストしかできていない.syntaxハイライトが付いているかどうかをテストする方法や,テスティングフレームワークがあれば,教えてほしい. 将来的には,vim-vspec などに乗り換えたい

testだけではなく,vint というlintツールを使ってお行儀のよいプラグイン作りを目指している. ツールがたくさんあってすごくべんり.

今後の課題

  • TmngDocument→課題ページ

僕がほしい.(課題ページとは,研究室内で数年後の後輩のためや,データを蓄積を目的としたHTML静的ページの集合)

  • vim内からのPOST

ドキュメントを管理するAPIサーバーを用意してvim-tmngから叩いてPOSTできるようにとうにとかしてみたい.

  • tmng-lint

このプラグインとは直接は関係がない.けどほしいもの.

TmngDocumentは,先輩の添削が推奨されている.しかしセンパイもいつも暇なわけではない. lintがあれば,後輩たちはある程度最低限フォーマットを整えた状態にすることができる. そうすれば,後輩もdocumentを書きやすくなるし,先輩も添削する時間が少なくてすむ.

つくってよかったこと

vimプラグインがどうやって作られているか深く理解することができた. 自分の成長とともにvimも成長していくのがすごく嬉しい. 苦手な正規表現や英語にも,vimを通せばガンガン勉強できる.さいこうだ

初めて作ったプラグインとしては,個人的には非常に満足できるものとなった. 引き続き拡張を続けていきたい.

あと個人的に良かった(すごくすごく)ことは,大学に入ってプログラミングを知った学部1年生が,Contributeしてくれたことです.

僕が学部1年のときは,gitやgithubどころかプログラミング言語を授業でしか書いたことがなかった.しかもC言語だけ.

そう考えるとほんと感動的

Let's VIM Life !!!!