LoginSignup
21
24

More than 5 years have passed since last update.

vim メモ環境つくろうとした

Last updated at Posted at 2015-01-27

はよ

  • あんまり保存とかも意識しないでメモとりたい
  • 整理せず雑に書きたいので検索強いほうがいい
  • なるべく vim (or emacs) でやりたい
  • markdown で書きたい
    • この条件追加すると howm, org-mode とかはいったんおいとくことになる
  • Dropbox なり Evernote なり Simplenote なりで勝手に同期してほしい

⇒ いまのところ Vim でいいかんじの環境つくれなかったので、SublimeText の sublime-evernote を使ってみてる

探す

Evervim というのあるぽい

Geeknote というのあるぽい

なにがちがう

前者の evervim はエディタ(Vim)に Evernote にポストする機能を付加するもので、+python で vim をコンパイルする必要がある。自分が Emacs を使っているならばこのようなアプローチでもかまわないと思う可能性があるが、自分としては、エディタにはテキスト編集以外の機能を盛り込みたくないので今回はパスした。タイトルとかタグとか全部含めてエディタの中で書けるのは良いなと思った。

後者の geeknote は、python で書かれた Evernote クライアントで、テキスト編集部分を任意のエディタで編集することができる。いままではこれを使っていたが、新規ノートを作るときにエディタが使えず微妙に不便だった。ドキュメントをちゃんと読んでいなくて見つけられなかったのかもしれない。ぱっとみの印象では、インタラクティブにコマンドを実行するというより、バッチスタイルで使うのに便利なインタフェースに見えた。

Geeknote 試す

Installation neilagabriel/vim-geeknote
If you have not done so already, install Geeknote and login to make sure it is functional. You must login before attempting to use the plugin.

とのことなので、 まずは geeknote の CLI ツールを入れとく必要ある。

homebrew 探したけどなかった

brew とかで楽にはいらないかなと思って search してみたけど、なかった。

$ brew search geeknote
No formula found for "geeknote".
Searching pull requests...
Closed pull requests:
Geeknote: Evernote Command Line Client (https://github.com/Homebrew/homebrew/pull/14202)

homebrew への PR はあったようだけど、弾かれている。

ふつうにインストールする

これ参考にしてインストールする。

Geeknote - how to install

$ cd ~/
$ git clone git://github.com/VitaliyRodnenko/geeknote.git
$ python setup.py install // pyenv 使ってるので sudo なし
$ geeknote
Version: 0.1
Geeknote - a command line client for Evernote.
Use geeknote --help to read documentation.
And visit www.geeknote.me to check for updates.
$ geeknote login
Login: ******
Password:
Two-Factor Authentication Code: ******

$ geeknote login したら、二要素認証のコードを求められた。

Evernote で二要素認証設定してたっけなと思ったらしてなかったので、これを機に設定しといた。
Google Authenticator が使える。

vim-geeknote 入れる

.vimrc にこれ追記。

+ NeoBundle 'neilagabriel/vim-geeknote' " Evernote
+ " vim-geeknote {{{
+ " quick toggle
+ noremap <F8> :Geeknote<cr>
+ let g:GeeknoteFormat = "plain"
+ let g:GeeknoteScratchDirectory = $HOME . '/tmp'
+ autocmd FileType geeknote setlocal nonumber
+ " }}}

let g:GeeknoteFormat = "plain" の設定でかつ日本語を本文に含めるとエラーでる。

let g:GeeknoteFormat = "markdown" にするとでない。

"~/tmp/__Geeknote__L_KIDN" 5L, 43C written
'ascii' codec can't encode characters in position 130-132: ordinal not in range(128)
Error detected while processing function Vim_GeeknoteSaveNote:
line    5:
Traceback (most recent call last):
  File "<string>", line 3, in <module>
  File "/Users/qurage/dotfiles/vim/bundle/vim-geeknote/plugin/vim_geeknote.py", line 156, in GeeknoteSaveNote
    GeeknoteHandleNoteSaveFailure(note, e)
  File "/Users/qurage/dotfiles/vim/bundle/vim-geeknote/plugin/vim_geeknote.py", line 92, in GeeknoteHandleNoteSaveFailure
    vim.command('echoerr "%s"' % msg)
vim.error: Vim(echoerr):+------------------- WARNING -------------------+
|                                               |
| Failed to save note (see error above)         |
|                                               |
| Save buffer to a file to avoid losing content |
|                                               |
+------------------- WARNING -------------------+

python のエンコード確認して utf8 にしてみる

$ python -c 'import sys; print sys.getdefaultencoding()'
$ vim ~/.pyenv/versions/2.7.9/lib/python2.7/site-packages/sitecustomize.py
+ import sys
+ sys.setdefaultencoding("utf-8")
$ python -c 'import sys; print sys.getdefaultencoding()'
utf-8

やったけど vim でノートに日本語を書くとやっぱエラーでる。

"~/tmp/__Geeknote__9vkiV5" 8L, 46C written
EDAM processing error: Invalid Thrift type code: 45
Error detected while processing function Vim_GeeknoteSaveNote:
line    5:
Traceback (most recent call last):
  File "<string>", line 3, in <module>
  File "/Users/qurage/dotfiles/vim/bundle/vim-geeknote/plugin/vim_geeknote.py", line 156, in GeeknoteSaveNote
    GeeknoteHandleNoteSaveFailure(note, e)
  File "/Users/qurage/dotfiles/vim/bundle/vim-geeknote/plugin/vim_geeknote.py", line 92, in GeeknoteHandleNoteSaveFailure
    vim.command('echoerr "%s"' % msg)
vim.error: Vim(echoerr):+------------------- WARNING -------------------+
|                                               |
| Failed to save note (see error above)         |
|                                               |
| Save buffer to a file to avoid losing content |
|                                               |
+------------------- WARNING -------------------+

結局メモ用には Sublime Text を試すことにした

vim-geeknote のほうは日本語環境で一部エラーが出るので、 sublime text のプラグイン試した。

こっちのほうがリストの取得とかは(体感では)速い。

Evernote に パース前の md をプレインテキストで保存したかったんだけど、それはできなさそう。

ひとまずこっち使ってみるけどあんまりエディタあれこれ移動するのもなーというかんじがある。

他にもいくらでも方法ある

:JunkFile コマンドを作って利用するという手もある

テンポラリなファイルつくってぼこぼこ Dropbox とかに保存するならこういうのもべんりそう。

grep 以上の検索機能求めなければこれで良さそう。

markdown の preview に previm を使う手もある

プレビューには marked2 使ってるけど、これなくても vim だとやっぱなんでもある。

21
24
3

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
21
24