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

taketoncheir.log

Like the Decatoncheir by Poseidon Industrial, This blog is Yet Another Storage for My Long Term Memories.

私のVim-Plugin開発環境(仮)

事の発端

Evernoteのエディタがいけてません。
私はツリー形式でメモをとるので、Indent up/downがスムーズにできてほしい。
あと、メモを取った内容をブログ等に貼り付けたい。
これらが満たされないので、Evernoteに見切りをつけました。

で、XML等に変換されずそのままテキストを保存してくれるSimplenoteに移ったのですが、こちらもエディタがイケてない。

  • ブラウザ版は自動インデントがないからだめ。
  • OSX/Ubuntuで動いて欲しいのでOSXネイティブはダメ
  • NotationalVelosityはNvPyと互換性あるかと思って使ってみたけど、tagがupdateされない
  • NvPyはエディタがイケてなさすぎる
  • 本当はMobileからも編集したいけど、ひとまず諦めた

OS非依存で普通のエディタ、となると普段使っているVimでプラグインないかな、となったわけです。

VimにおけるSimplenoteプラグインの現状

Big Sky :: VimからSimpleNoteを使う方法は何個かありますよという宣伝。

これによると、いくつかあるのだけど。
どれもちょっとずつ古かったりでちゃんと動かない。
活発に開発されているのはmrtazz/simplenote.vimだけだったりする。

mrtazz/simplenote.vimpythonに依存しているみたいだし、どうせならmetarw + uniteでPluginを書いてみようかと。

Vim-Plugin開発環境

参考になったのはこちら
Vimプラグインが出来るまで - ぼっち勉強会

以下、備忘録的に自分の環境を書いておく。

  • ~/.vim/plugin以下に開発中のコードを配置
  • 以下の文言を各スクリプトに追加、ロードさせた(sn.vimスクリプトをロードさせる場合)。
if exists("g:loaded_sn")
  finish
endif
let g:loaded_sn = 1
  • プラグイン化する段階でコードをコピペ

なんとかVCSで管理できないものだろうか。
こちらのエントリーではできているようなのだが、一度試してできなかったので挫けた。
Vim プラグインの開発スタイルのお話 - 永遠に未完成

その他、備忘録

  • metarwは今回の場合ネットワーク経由でリソースを管理するので、遅い。キャッシュ等の仕組みが必要。
  • デバッグは基本的にlet g:hogeを埋め込んで:echo g:hogeってやってた
  • エラーメッセージの確認は:messagesで

結局、mrtazz/simplenote.vimが一番よさそうだ。
これをuniteに対応させるのがいいのかもしれないです。

あ、今回の記事は完全に備忘録ですので、もっと良い開発環境構築法がありましたら是非教えて頂ければ。よろしくお願いします。

ソースコード

metarw + uniteで書いてみたコードは以下。
mattnさんのコードをforkさせてもらいました。
takei-shg/vim-metarw-simplenote
takei-shg/unite-source-simplenote

実践Vim 思考のスピードで編集しよう!

実践Vim 思考のスピードで編集しよう!

Vimテクニックバイブル ?作業効率をカイゼンする150の技

Vimテクニックバイブル ?作業効率をカイゼンする150の技