Edited at

dockerでevernoteをvimから触る(evervim)環境の構築

More than 3 years have passed since last update.


概要

evervimっていうvimでevernoteを使うプラグインがあり便利で愛用しています。

しかし、python込みでvimがコンパイルされている必要があり、

どこかに環境を構築しようとするとちょっと環境が汚してしまう時がある。

なので、dockerで環境を作ってみました。


dockerfileでコンテナ作成

まずはこれでevernoteとの認証前までのセットアップ用のファイル。

FROM centos:6

RUN yum install -y vim git python-setuptools
RUN easy_install markdown importlib
RUN curl https://raw.githubusercontent.com/Shougo/neobundle.vim/master/bin/install.sh | sh

これを好きなディレクトリにDockerfileとして保存。

最後のコマンドは、Neobundleをインストールしています。

% docker build -t 好きなイメージの名前 ./

で実行。イメージファイルが作成される。


evervimインストールのために.vimrcを設定する

終わったら、.vimrcをマウントしてdocker runする

サンプルの.vimrcは以下の通り

"" for neobundle

if has('vim_starting')
if &compatible
set nocompatible " Be iMproved
endif

" Required:
set runtimepath+=/root/.vim/bundle/neobundle.vim/
endif

" Required:
call neobundle#begin(expand('/root/.vim/bundle'))

" Let NeoBundle manage NeoBundle
" Required:
NeoBundleFetch 'Shougo/neobundle.vim'

" Add or remove your Bundles here:
NeoBundle 'Shougo/neosnippet.vim'
NeoBundle 'Shougo/neosnippet-snippets'
NeoBundle 'tpope/vim-fugitive'
NeoBundle 'ctrlpvim/ctrlp.vim'
NeoBundle 'flazz/vim-colorschemes'

" You can specify revision/branch/tag.
NeoBundle 'Shougo/vimshell', { 'rev' : '3787e5' }

NeoBundle 'kakkyz81/evervim'
"" kokomade


コンテナ作成、neo bundle install

こんなして走らす

% docker run -h evervim --name evervim -v /etc/localtime:/etc/localtime:ro -t -i 作ったイメージ名 /bin/bash

(localtimeファイルを同期しているのは、時間合わせのため)

コンテナに入ったら、vimを開いて、bundle installする

vimコマンドをうったら、勝手にbundle installしていい?って聞かれるので、そのままyを入力すると始まる

コンテナが消えるのが不安だったら、-v ~/path/to/.vimrc:/root/.vimrc オプションを渡しても良いかもしれない。


evernoteとの認証処理

evernoteでのログイン用のトークンが必要なので取得します。

ここ

にブラウザとかからアクセスしてAPI tokenを取得します。

取得したら、.vimrcに let g:evervim_devtoken='' の中に入力します。

そしてvim内にて、

:EvernoteSetup

でsuccessfulとか出たら認証OKです。

あとは使いたいときに

% docker start evervim

% docker attach evervim

とかでコンテナに入ってevernoteにアクセスする

vim中に、:EvervimNotebookListでノートの一覧を見たり、

:EvernoteCreateNoteでノートを作成したりできる。

保存時にサーバに保存しに行ってるっぽい。


ヘルプを見る(option)

:help evervim

でヘルプが見れるようになる。

:helptags ~/.vim/bundle/evervim/doc/

を実行する。


ショートカット(option)

.vimrcに、以下を追記しておくと便利

" evervim shortcut

" \lでノートブックのリストを開く
nnoremap <Leader>l :EvervimNotebookList<CR>
nnoremap <Leader>s :EvervimSearchByQuery<Space>
nnoremap <Leader>c :EvervimCreateNote<CR>
nnoremap <Leader>t :EvervimListTags<CR>

\lでノートブックのリスト取得、\sで検索、\cで新しいノートブック作成、\tでタグ一覧表示する。


markdownのためのcolor schema(option)

color schemeの変更とsyntaxを指定します。

" color

set background=dark
colorscheme hybrid

NeoBundle 'plasticboy/vim-markdown'

" 勝手にfiletypeがmarkdownにならないようにする(evervim)
autocmd BufNewFile,BufRead __EVERVIM_NOTE__ set filetype=mkd

これだけではできませんでした。evervimの中で、filetypeを強制的にmarkdownに変えているようです。

かなり強引ですが、

~/.vim/bundle/evervim/autoload/evervim.vimの256行目にある

set filetype=markdown

をコメントアウトしました。

一応動作しましたが力技すぎてどうにかしたい。


dockerの恩恵(option)

evervimは、~/.evervim内に

EVERVIM_NOTE

っていうファイルを作って、そこで読みだしたファイルをおいておいたりします。

そのため、複数ノートを開くことが出来ませんが、dockerを使えば簡単にできるようになります。

どうしても複数ノート開きたいときには便利かも…?