Help us understand the problem. What is going on with this article?

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

More than 5 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を使えば簡単にできるようになります。

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

gk9187
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away