原起
EverNote 的強大已經無需多說。他自己有很好的客戶端,不過那個只是對Windows和OS X。在linux下面就蝦米菜了。就是Windows和OS X下面的客戶端也存在一個致命的弱點:不支持 MarkDown 。
不過有好人做了一個工具 Geeknote 讓我們可以在任何裝有python的機器上使用Evernote。 更強大的是他可以使用任何編輯器編輯筆記,支持 MarkDown 。 有如此好處還等什么啊趕緊用起來。
個人在使用的時候發現原版有點點不舒服的地方,做了點點小改動放在了 GitHub。 具體是什么改動,先買個關子。
安裝
直接從源碼安裝
- 使用 git clone git@github.com:jetgeng/geeknote.git 命令下載源碼
- 進入 geeknote 目錄。
- 運行 python geeknote.py login 登錄evernote
- 通過 python geeknote.py create , python geeknote.py edit , python geeknote.py find 命令來創建,編輯和查詢你的ervernote 中的筆記。
- 通過 python geeknote.py settings --editor vim 命令把編輯Evernote的編輯器設定成我最喜歡的vim。 當然你可以設定成你喜歡的。
- 這個時候你已經用上了GeekNote。 但是還會有點不爽。最起碼我這個時候不爽。
不爽的地方
- 當我用python geeknote.py edit 命令使用vim打開我要編輯的筆記時,筆記居然沒有把 MarkDown 語法給我高亮出來! 不爽?。?br />
- 輸入命令一定要帶一個什么python 之類的太繁,而且我tab的時候也沒有給我把命令補全!在命令行中沒有自動補全,太不爽了!!
改之
讓vim正確設定filetype
在
vim中一般是根據文件的后綴名來識別該文件是什么類型。然后為他加載相應的語法高亮,代碼補全什么的。在沒有改動前geeknote是為筆記創建的臨時
文件時沒有后綴的。只是隨機的創建一個形如 tmpsNbc8k這樣的文件。所以Vim無法識別他是何種文件,就無法為他加載對于的語法高亮之類的。
既然找到原因了就先看一下geeknote是否有什么地方可以設定,讓他產生的臨時文件有后綴。最后在editor.py文件中發現了這么一行代碼: (tmpFileHandler, tmpFileName) = tempfile.mkstemp() 。 直接沒有給任何后綴的想法。
那就加上吧。
我所做的動作就是這個,給他加上了一個文件后綴的設定。
通過python geeknote settings --suffix suffix 這樣的命令來設定零時文件的后綴。這樣語法高亮,代碼補全就回來了。小爽一下!
命令行自動補全
這個其實geeknote已經想到了,而且已經做了。代碼倉庫中的那個 bash_completion/geeknote 文件就是干這個活的。 所以我只要把這個文件copy到 /etc/bash_completion.d/ 下就可以了。
但是copy進去后沒有達到我想要的效果。沒有自動補全。最后發現是geeknote配置的補全命令和我們執行的時候不一致。
下面要做的就是把它們搞一致了。
我的操作步驟如下:
1. chmod +x geeknote.py 給geeknote.py加上可執行權限。
2. 將geeknote.py所在路徑加入到PATH中去。
3. 修改 /etc/bash_completion.d/geeknote 文件中的 geeknote 為geeknote.py 這個在我上面提到的github中可以找到。
這個時候在新開一個控制臺,輸入 geeknote.py tab 可以自動補全了。小爽一下!