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

## 概要
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でのログイン用のトークンが必要なので取得します。

[ここ](https://www.evernote.com/api/DeveloperToken.action)
にブラウザとかからアクセスして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を使えば簡単にできるようになります。

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