仕事(趣味)をする
↓
めんどくさいなぁ・・・vim でできないかなぁ
↓
vimscript を書き始める
↓
なんとなくできた〜 ヽ(・∀・)ノ
↓
unite.vim のプラグインにできないかなぁ
↓
プラグインを書き始める
というのが最近の流れ。これはやらなきゃって仕事(趣味)から外れていつの間にか vimsript を書き始めてしまう。手探り状態なので時間もかかってしまうし寄り道ばっかり。
今回は wiki もどき。
neocomplcache の補完を有効にしてると vimwiki が妙に重いので QFixHowm に乗り換えた。でも、ファイル名から何が書いてあるか分からないとか一覧を見たいだけなのに時間がかかったりするとかでちょっと困ってた。
じゃあ、少ない機能で軽いヤツを自作してみるかなと思い立つ。
neocomplcache が重かったのはネットワークドライブ上のファイルを編集してるのがいけないようで、ローカルなら問題ないことが後で分かったのだけどそのまま突っ走る(QFixHowm は遅くなかった)。
で、つくってみた。
wiki っぽい何か a unite.vim plugin for uiki
https://github.com/basyura/unite-uiki
起動してみる
unite.vim のインタフェースをそのまま使用しているので作るのは楽。
is_volatile(入力ごとに補完候補を再計算)しつつ globpath でディレクトリからファイル名を拾っているのだけど、1000個置いてもレスポンスは特に問題なかった。ディレクトリ分割しなくても大丈夫だと思う。
ページを作る
入力したページが選択候補にない場合は、入力内容をページ名として新しく作ることができる。とはいっても edit で開いてるだけだけど。
拡張子が「.uiki」のファイルを作る。w でそのままファイルとして保存。
必要なもの
unite.vim
https://github.com/Shougo/unite.vim
open-browser.vim
https://github.com/tyru/open-browser.vim
変数
保存先のディレクトリを指定する
let g:unite_uiki_path = '~/uiki'
起動
:Unite uiki
ショートカット起動
ページ指定で開く map を定義する
nnoremap <silent><Leader><Leader>w :execute ':edit! ' . \ g:unite_uiki_path . '/FrontPage.uiki'<CR>
記法
page link : Enter で指定のページ(wik_page)を開く
[[wiki_page]]
url link : Enter で指定のリンクを開く
http://wwww.google.com
syntax
* title1
行頭が * 始まり
* title2
行頭以外で * 始まり
|strong|
||で囲むと強調表示 (※) 各自が好きなように定義
ページ作成
:Unite uiki で存在しないページ名を指定すると "[new page] ページ名" と出るので、それを選択。
ページの削除
手動で(そのうち delete アクションで)
検索
:Unite uiki でページ名検索可能
ページ内検索は各自 grep を使用する(そのうち grep アクションで)
制限事項
空白を含むページを作れない
とまぁ、自分が必要な機能をその都度付け加えていく感じで育てたいと思う。