reStructuredText 用の簡単なスニペットをつくった

wiki や Redmine も markdown ではなくて reST だし、Sphinx つかうこともあるのでだいたい reST を使っている。プライベートや各種メモも Dropbox に todo.rst や anken.rst みたいな感じで管理してる。で、 riv.vim は高機能だけどちょっと面倒だし*1、なんかもっとてきとうに reST をかけないか。

探したけど

断片的になくはなかったが流用できるほどかというと微妙だった。Sublime Text 2 用にすこしあったけど、まあ今回は違うし。なくはなかったけど微妙だったのでてきとうにつくった。

前提

neocomplecache + neosnippet です

こんなの

たいした話ではない

snippet     quickstart
abbr        quickstart
prev_word   '^'
  ===========================
  ${1:content_name}
  ===========================

  .. content :: ${1:content_name}

  title1
  ====================================

  subtitle1
  -----------------------------------

  subtitle2
  -----------------------------------

  subtitle3
  -----------------------------------

  title2
  ====================================

  subtitle1
  -----------------------------------

  subtitle2
  -----------------------------------

  subtitle3
  -----------------------------------

  title3
  ====================================

  subtitle1
  -----------------------------------

  subtitle2
  -----------------------------------

  subtitle3
  -----------------------------------


snippet     contnents
abbr        contents
prev_word   '^'
  .. Contents :: ${1:contents_name}

snippet     title
abbr        title
prev_word   '^'
  ${1:title}
  ====================================

snippet     subtitle
abbr        subtitle
prev_word   '^'
  ${1:subtitle}
  -----------------------------------

snippet     code
abbr        code-block
prev_word   '^'
  .. code-block :: ${1:python}

    ${2:content}

snippet     link_raw
abbr        link_as_raw
prev_word   '^'
  \`${1:link}\`_

snippet     link
abbr        link_and_label
prev_word   '^'
  \`${1:title} <${2:link}>\`_

snippet     table_grid
abbr        grid_table
prev_word   '^'
  +------------------+------------+-----------------------+------------+
  |${1:cel}                  |            |                       |            |
  +==================+============+=======================+============+
  |                  |            |                       |            |
  +------------------+------------+-----------------------+------------+
  |                  |            |                       |            |
  +------------------+------------+-----------------------+------------+

snippet     field_list
abbr        field_list
prev_word   '^'
  :${1:text}  :  :  :
  :  :  :  :

snippet     list
abbr        list
prev_word   '^'
  -
  -
  -
  -

snippet     nested_list
abbr        nested_list
prev_word   '^'

  - ${1:text}
  -
  -
  -

snippet     caption
abbr        caption
prev_word   '^'
  [#]

snippet     image
abbr        image
prev_word   '^'
  .. image :: ${1:path}

snippet     strong
abbr        strong
prev_word   '^'
  **${1:text}**

コピペでもいいけど、だいたい議事録とかはじめにかくテンプレートってのが決まってれば全部スニペットにしてしまえばよい、という話。それっぽいものができるので、あとは議事録でもリストでも見出しでも書けばいい。

ついでに

Shougo/junkfile.vim · GitHub というのをいれた。コマンド一発で使い捨てで rst ファイルを呼び出して作ってしまえばいい。で、Vim で tmux で CUI 環境の Ubuntu Server でもとにかくコピペがしたい - 憧れ駆動開発 で書いたようにコピーしてしまえばいいし、Unite.vim はつかっているので履歴から呼び出せばよい。

ほんとうは

Firefox で(?:Vimperator|Pentactygl)外部エディタ呼び出ししてやるか、Chromeでも同じようなことができなくはないのでやるかするといい。とはいえ、宗教上の理由でOperaだし、Opera Extension は ChromeSafari と似ているとはいえまあ面倒なのでそこまではやっていない。赤福さんって人の wasavi っていうテキストエリアを vim 風に編集できる拡張もそれはそれでいいのだけど、やっぱり高機能な外部エディタを使いたい。

まあ

入力補完はテンプレートとかジェネレーターみたいな感じでどんどんやれるほうが好きだし、このスニペット自体の作成は20分くらいの作業でできることなのでよい。

*1:いちおうシンタックスに rest.vim はいれてはみている