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