basyura's blog

あしたになったらほんきだす。

unite-uiki - wiki っぽいなにか


仕事(趣味)をする

めんどくさいなぁ・・・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個置いてもレスポンスは特に問題なかった。ディレクトリ分割しなくても大丈夫だと思う。

ページを選ぶ

絞り込みもカーソル移動による選択も可能

ページを開く

それっぽく syntax 。
wiki と同じでページリンクや url を Enter で開くをことができる。

ページを作る

入力したページが選択候補にない場合は、入力内容をページ名として新しく作ることができる。とはいっても edit で開いてるだけだけど。
拡張子が「.uiki」のファイルを作る。w でそのままファイルとして保存。

変数

保存先のディレクトリを指定する

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 アクションで)

制限事項

空白を含むページを作れない



とまぁ、自分が必要な機能をその都度付け加えていく感じで育てたいと思う。