VimでSimplenoteを編集する
はじめに
ちょっとしたメモを取るときにどんなツールを使っていますか?
僕は今まで、特に何も考えずにEvernoteを使っていました。
しかし、最近はEvernoteに不満を感じてました。
- editorが微妙, vimのキーバインドが使えない
- editorが微妙, Markdownが使えない
- editorが微妙, vimのキーバインド
- editorが微妙、Markdownが使えない
- editorが微妙, vimのキーバインド
- editorが微妙、Markdownが使えない
ということで、Evernoteと同じような感じで、Vimのキーバインド使いたい、Markdown使いたいと思っていろいろやってみました。
経緯
最初はAtomをmarkdownエディタとして使ってローカルにファイル保存しとけばいいか、という感じで落ち着きかけました。
PCで書いたメモをスマホと連携させようとしたときに、Dropboxに.mdファイルを置いて、スマホ用のMarkdownのviewerを設定して、、、とか考えだすと面倒くさくなってきたので、おとなしくクラウドサービスを使うことにしました。
Markdownエディタで有名なのは、kobitoとか有名で使い勝ってがよさそうなものもあったのですが、単なるメモとして使いたいだけなので、なるべくQiitaみたいなサービスを使う前提じゃなくて、本当に薄いツールを探しました。
結局「Evernote substitute」とかでググってみると、見つけました。
その名もsimplenote
サービスは非常にシンプル。
うん、素晴らしい。
あとは、Vimと連携できれば最強なのですが、もちろんありました。
ということで、simplenote.vimを使うためにやった設定を書いていきます。
やったこと
1. Simplenoteにアカウントを作成
まずは、simplenoteでアカウントを作成しましょう。
2. simplenote.vimのインストール
Vimのプラグインをインストールしましょう。
Neobundle.vimを使うと簡単にインストールすることができます。
#.vimrc NeoBundle 'mrtazz/simplenote.vim'
ホームディレクトリ直下の.vimrcを編集し、:NeoBundleInstallコマンドを実行します。
:h Simplenote と入力して、Simplenoteコマンドのヘルプが表示されるようになっていればインストールできています。
3.simpletenote.vimでアカウントの設定
.vimrcにsimplenoteのアカウント情報を記します。
#.vimrc NeoBundle 'mrtazz/simplenote.vim' let g:SimplenoteUsername = "XXX" let g:SimplenotePassword = "XXX"
最近では、Unix系の設定ファイル(.~rcファイル)をGithub等にあげておくのが流行ってます。1 アカウント情報を載せた.vimrcをGithubにあげてしまうとセキュリティ的にだいぶまずいので、アカウント設定は.simplenotercファイルに書いて、.vimrcから.simplenotercを呼び出すようにしました2。
#.simplenoterc let g:SimplenoteUsername = "XXX" let g:SimplenotePassword = "XXX"
#.vimrc NeoBundle 'mrtazz/simplenote.vim' source .simplenoterc
4. simplenote.vimの設定
個人的に.vimrcがごちゃごちゃになるのがあまり好きではないので、simplenote.vimの設定は.simplenotercに記述することにしました3。
詳しくはドキュメントに載ってますがとりあえずの設定として以下の二つの設定をしました。 1.:Simplenoteコマンドで編集するときのバッファのファイルタイプをマークダウンに設定する。 2.:Simplenoteコマンドでvimのウィンドウを分割するときに左右に分割するように設定する。
#.simplenoterc let g:SimplenoteUsername = "XXX" let g:SimplenotePassword = "XXX" let g:SimplenoteFiletype = "markdown" let g:SimplenoteVertical = 1
:Simplenote -nで新しいメモを作成したり、:Simplenote -lでメモの一覧を見てメモを選んで編集、などの基本的な操作が行えるようになります。
もちろんMarkdown対応です。
最後に、おそらくmemoとtodoという名前のメモをたくさん使うことになるので、vimのカスタムコマンドの設定をしました。
さらに、shellからそのままmemoやtodoを呼び出せるようにaliasの設定を行いました。
ついでに、メモの一覧をnote、新しいメモをnewを実行すると呼び出せるように設定しました。
#.simplenoterc let g:SimplenoteUsername = "XXX" let g:SimplenotePassword = "XXX" let g:SimplenoteFiletype = "markdown" let g:SimplenoteVertical = 1 command Todo Simplenote -o XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX command Memo Simplenote -o XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXの部分には、メモのkeyを記述します。
メモのキーは、:Simplenote -Vで確認できます。
#.bashrc of .zshrc alias note='vim -c "Simplenote -l"' alias todo='vim -c Todo -c on' alias memo='vim -c Memo -c on' alias new='vim -c "Simplenote -n"'
TodoコマンドやMemoコマンドで開くと、ウィンドウが二つ開いてしまうので、onコマンドでウィンドウを一つになるように設定しています。
最後に
リアルタイムプレビューはどうあがいてもできなかったので、妥協してます。
previmやquickrun.vimとか、試してみたのですが、simplenote.vimでREST API経由で取ってきて、vimのバッファに吐かれてるだけなので、リアルタイムで変更を検知するとかはできないみたいでした。
例えば、:PrevimOpenを何度もやればプレビュー自体は開くのですが、何度もブラウザのタブが開いてしまい気持ちが悪いのでやめました。
ていうか、リアルタイムプレビューしたいなら、専用のmarkdownエディタ、もしくはsimplenoteのWebアプリ使ったほうがよさそうでした。(vimのキーバインドはないけど。)