概要
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として保存。
% 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を使えば簡単にできるようになります。
どうしても複数ノート開きたいときには便利かも…?