作为技术人员,对于知识的管理、沉淀尤其的重要。我说过我们生活在知识爆炸的年代,浮躁的我们往往迷失在浩如烟海的知识中。 Yibie Blog 上的文章《我什么使用 OneNote》很有共鸣,在这里分享下我的经验和看法。
需求
知识管理的一条途径就是做笔记。笔记类的软件有很多,这些工具在深度使用以后粘性很大,以后想再转其他同类型的工具,往往成本很大。细想之下,我是个挑剔的人,所以我对此类软件有下面的要求:
- 快速记录,软件本身要小巧启动快速。当灵感来的时候,空着双手等着软件启动完毕,这很尴尬。
- 方便记录,关注内容。我是个懒人,我希望关注于内容本身而非排版。
- 转换、导出方便。我总想自己控制得多些,因此我想以后可以利用本人的技术二次处理这些数据。
- 快速分享,知识可能不仅仅是你个人的,有时候你总希望分享给其他人。
- 满足习惯,这是很主观的事情,根据自己的习惯总不想在新东西方面花上更多的心思。
Why VimWiki

其实对于使用 Vim 的朋友来说,用 Vim 写 Wiki 并不是件新鲜的事情。如标题所说,VimWiki 可能本身并不是非常的强大,但配合各种工具后,你甚至完全可以考虑扩展它的功能。
对比上面的需求,之所以选择 VimWiki 是因为
- 谁都知道 Vim 启动快,而 VimWiki 只是 Vim 的脚本而已
- VimWiki 说白了是“个人 Wiki”,因此内容的组织方式完全由你自己而定
- VimWiki 产出的是文本文件,因此你可以使用任何你熟悉的技术转换成任何格式的输出
- 再没有比 HTML 文档更能方便分享的了,VimWiki 的输出就是 HTML 文件,你甚至可以利用它创建 Blog
- 对于我而言,每天使用 Vim,因此 VimWiki 完全满足我的习惯
“在云端”
有关 VimWiki 的安装和配置,善用佳软已经有很详实的文档,这里就不再复述了。这里我说说配合 Dropbox 、rsync 等同步软件打造“云间”的个人记录工具。

一图胜千言,上面的简图主要说明了我如何同步 VimWiki 。篇幅的关系,有关此技巧的更多信息,参见这里。
@TODO
处于 VimWiki 的高可定制性,个人对于二次开发 VimWiki 有很浓厚的兴趣。我想近期能够为它做的事情
最后,其实说到底像 VimWiki 这类的知识管理工具,还是要自己深度去利用。为了避免陷入软件的争论战,先写到这里。
-- EOF --
再趁手的 Vim 插件都想力求达到自己的要求,有些插件要满意终究还得自己“二次开发”下,这两个插件希望能对您有所帮助:
MRU
MRU(Most Recently Used)插件简单的说, 就是给 Vim 增加“最近打开的文件”功能。脚本本身已经很满足我的需求,但对放到了 File 菜单的二级子菜单中,让我觉得非常的不方便。看着脚本最后更新是 2008 年, 于是自己动手做了以下的小改进:
- 将菜单提到根菜单上,在编辑中按 Alt+R 即可弹出 MRU 菜单
- 改进菜单显示样式,使其看起来更整齐,并添加文件选择快捷键(按 1-9)
- 增加 MRU_Filter_Not_Exists 选项,用于过滤已经不存在的文件
那么如何调用 MRU 呢?当然你可以从命令行调用
:MRU

现在也可以使用 Alt+R 弹出菜单以后,直接按 1-9 选择最近打开的文件,如上图。
脚本下载
fontsize.vim
和现在主流的浏览器一样, fontsize.vim 的功能就是通过快捷键放大和缩小字体。 这款脚本唯一的不足就是无法支持中文(也就是没有考虑 &guifontwide 的情况),所以改 进了下。
调用此脚本的方式,下面的代码已经足可以说明
if ! hasmapto("<Plug>FontsizeInc", "n")
nmap <silent> <Leader>++ <Plug>FontsizeInc
nmap <silent> <Leader>== <Plug>FontsizeInc
endif
if ! hasmapto("<Plug>FontsizeDec", "n")
nmap <silent> <Leader>-- <Plug>FontsizeDec
endif
if ! hasmapto("<Plug>FontsizeDefault", "n")
nmap <silent> <Leader>00 <Plug>FontsizeDefault
endif对于 <Leader> 这个按键,在 Windows 下通常是“\”,用你的右手小指就可以找到 :^D
顺便说句,很多兄弟对 Windows 设置中文字体感到迷惑。特别是如果配置文件(_vimrc) 是 utf-8 编码的话,中文字体始终设置不上。这是因为 Windows 的内码还是使用 gbk 编 码(Windows XP 下),因此要靠 iconv 帮忙。
例如我的 _vimrc 中字体相关配置如下(类似的问题也可以举一反三) :
if has("gui_win32")
exec 'set guifont='.iconv('Courier_New', &enc, 'gbk').':h11:cANSI'
exec 'set guifontwide='.iconv('微软雅黑', &enc, 'gbk').':h11'
endif脚本下载
后记:Vim 插件 FontSize 的作者采纳了我的意见,更新了脚本支持中文等多语言字符。同时从他脚本中看出他考虑得比我多得多,再次向他学习 http://www.vim.org/scripts/script.php?script_id=2809
--EOF--
由于工作缘故,现在几乎只能在 Windows 下使用 gVim 编代码。很多时候我们都希望编辑器打开就能够最大化,使得代码能够显示尽可能得多。
这里有个 Vim 的扩展(不是插件),首先下载这个压缩包,然后将这个 dll 文件扔到 gvim.exe 所在的目录(也就是安装目录)。
然后通过 gVim 内置的命令调用这个 dll 中的接口,就可以达到窗口最大化了(其实 AutoIt 或者其他类似的工具也可以完成,不过个人更喜欢这种方式)。
map <F11> <Esc>:call libcallnr("gvimfullscreen.dll", "ToggleFullScreen", 0)<CR> 似乎谁都喜欢将这个功能绑定到 F11 这个键 :-0 今天是愚人节,顺便炫耀下我的 gVim 全屏以后的样子。

顺便提供个在 Windows 下启动 gVim 即可最大化的代码
if has('gui_running') && has("win32")
au GUIEnter * simalt ~x
endifautocmd 这个命令真的非常好用,建议了解以后经常使用它。还有 simalt 提供了控制 Alt-{key} 的可能,从而可以通过它来管理 Vim 窗口(最大化、最小化、打开文件菜单等)。
-- EOF --
- 1
- 2
- 3
- 4
- ...
- 6
- »