★ 个人知识管理:Vimwiki工具

本文版权归属「Geek4us

阅读本文之前,首先你要确保,你会用Vim,懂得配置Vim的配置文件。如果不懂,请上网自行搜索Vim入门教程,已经有很多中文资源,我就不再解释了。

Vimwiki的安装

从以下链接中下载Vimwiki插件:

http://www.vim.org/scripts/script.php?script_id=2226

将下载到的vimwiki.vba文件放到vim的安装目录”~Vimvim72plugin”或”~Vimvimfilesplugin”下

用Vim打开vimwiki.vba,然后在”Normal模式”下,输入命令’:so %’,等一会儿,安装将自动完成.

在Vim的配置文件中添加以下命令:

" vimwiki
let g:vimwiki_use_mouse = 1
let g:vimwiki_list = [{'path': '~/vimwiki/',
 'path_html': '~/vimwiki/html/',
 'html_header': '~/vimwiki/template/header.tpl',}]

这个命令的目的是,修改你存放Vimwiki文件的地方,否则会默认安装存放在系统盘用户文件夹下(如果是在XP下,应该是在「我的文档」下面;如果是Windows7,则在「用户」这个文件夹下)。

例如:

” vimwiki

let g:vimwiki_use_mouse = 1

let g:vimwiki_list = [{‘path’: ‘E:/vimwiki/’, (这个是修改存放Vimwiki文件的地方,Vimwiki的文件后缀为.wiki)

‘path_html’: ‘E:/vimwiki/html/’, (这个是修改存放Vimwiki下把wiki文件转换为Html网页的地方)

‘html_header’: ‘E:/vimwiki/template/header.tpl’,}] (这个是修改存放Vimwiki转换网页时用的网页模板的地方)

Vimwiki的语法

Vimwiki的下载主页上面给出一个快速学习Vimwiki语法的知识卡片(pdf格式,可通过一些软件转换为图片),从上面便可知道所有的Vimwiki中使用的语法,十分简单,方便使用.

PDF地址:http://habamax.ru/myvim/data/vimwikiqrc.pdf

普通语法:

bold — bold

italic — italic

WikiWord — link to WikiWord (这是驼峰词的用法)

complex wiki link — link to complex wiki link

Indent lists with at least 1 space:

* bullet item

# numbered list item

= Header1 =

== Header2 ==

=== Header3 ===

Vimwiki键盘指令

首先,要明白,在Vim里面,输入指令是指在”Normal”状态下,敲击键盘上的按键,就是输入指令

如果有什么不懂,可输入在”Normal”下输入”:h vimwiki-mappings”查询

normal mode:

<Leader>ww — 打开默认的wiki主页

<Leader>wt — 在新的标签页中打开默认的wiki主页

<Leader>ws — Select and open wiki index file.(未知)

<Leader>wd — 删除你所在的wikiword的页面

<Leader>wr — 重命名你所在的wikiword页面

Enter — 在当前页面中新建新的wikiword页面

Shift-Enter — 新建一个wikipage,并在新的分割窗口中显示出来

Ctrl-Enter — 新建一个wikipage,并在新的分割窗口中显示出来(Vertical split and folow/create WikiPage)

Backspace — 返回上一页

Tab — 寻找下一个wikiword

Shift Tab — 寻找上一个wikiword

Vimwiki输入指令

输入’:Vimwiki2HTML — 将当前wiki页转换成Html格式’

输入’:VimwikiAll2HLML — 将所有的wiki页转换成HTML格式’

Vimwiki的特性

  • 与Vim紧密结合,可使用Vim的内建的正则表达式规则,高效处理文本
  • 与Vim紧密结合,可利用Vim内建的多种命令,以及可显示多个分页的特性,同时展示多种窗口,快速查看多份资料.
  • 由于Vim是文本处理工具,所以任何笔记,只要存为文本数据,便可以用Vim来组织和整理
  • 内置了特别的语法高亮模式,在观感上与普通见到的wiki没有多大的分别.
  • 可利用’:VimwikiAll2Html’这个命令快速将文本转化为网页.
  • 在Vim中自动识别网络链接格式,点击便可打开网页.
  • 在Vim的”Normal模式”下,在某行字句上面敲击”=”可自动为该字句添加标题语法
  • 自动添加wikiwork,当英文单词里面有连续两个英文字母为写’WikiWord’,Vimwiki会自动识别并将其标记为wikiword.该特性仅针对英文.

Vimwiki的一些缺点

  • 没有下划线的wiki语法

——————————————————————————

回顾与总结

缘起Vim

在08年的时候,我就听过这“神的编辑器”的大名了。当时,也曾下载过一次,但是尝试的结果很不如意,打开了之后竟然无法输入中文!心里面想“见鬼 了!这是什么玩意儿!”。但是,因为内心中希望有朝一日能够用上这个东西装逼,我还是没有把它从硬盘里面删去。之后过了很久,我都没有用过Vim,我用了 其它的软件来作为我日常编辑的工具。后来能够用上Vim,还是拜托自已那不折腾会死星人的臭脾气。

在09年的开始,我开始对如何用电脑来记笔记感兴趣。在看过大量文章之余,也尝试了大量的工具。从小巧的Treepad、CintaNote、 PinPKM到以同步而著名的Evernote,这些尝试都无疾而终,不是它们不好而是我想要的方式并不是这样。于是,开始把目光投向了Wiki这个形 式。

同样是尝试了很多Wiki工具,比如xbeta介绍过的WikidPad、ZIM、单机版的MoinMoin、DokuWiki等等,还是觉得太麻烦了。为什么要有该死的后台?为什么不能直接编辑呢?

怀着这样的想法,我的目光又一次投向了Vim,这次我从滇狐1那里知道了Vim上一个叫Viki的插件,可以当把Vim变成Wiki。我很兴奋,但是尝试了之后不得不放弃了Viki,因为把它装上了之后总是出现莫明其妙的错误,这些错误在Windows的环境下又无法解决。

难道Vim上就只有Viki这个插件才能让Vim成为Wiki吗?我又开始了新一轮的找寻。很幸运,我找到了Vimwiki。在艰难地啃了它的英文 说明书 之后。很容易就装上了。而有鉴于当时Vimwiki中文的资料的匮乏,我就写了一篇Vimwiki的中文文档,投稿给善用佳软。之后,我就很欣喜的看到在 善用佳软那强大的影响力之下,越来越多人2喜欢上Vimwiki,有的人还把Vimiwiki的帮助文档整个翻译成中文即3

而我在用Vimiwiki的时候,基本只用Vimwiki,偶尔会用到Calendar来记日记,Wiki的词条写了50个左右,最大的Wiki文档大概有30KB这样。但是并没有很好的坚持下去。于是,Vim用得越来越少了。

转到Emacs

在听说Vim的同时,我也听说过Emacs,但是Emacs在国内不如Vim流行,中文资料比Vim少,所以我一开始的选择是用Vim。但是在一次浏览网页的时候,看到了Emacs下Org-mode的演示视频4,非常的震憾,我没有想到文本编辑器还可以如此华丽!究竟有多华丽,大家看演示视频就知道。视

于是我在今年的6月份开始折腾Emacs。不过最初的目的是用Org-mode来管理自已的日程。折腾着折腾着,发现Org-mode的标记语言,可以很方便的组织文章的结构,于是开始用Emacs来记笔记5,写文章。

后来,我意外地发现原来Org-mode本身就具有Wiki功能,于是开始尝试用Emacs来构建我自已的Wiki。在这个过程中,我又受到 Zoom.Quite的启发,Wiki应该是每日记,在上面积累自已的想法和疑问,并一一解答,自然而然个人Wiki就可以坚持下来了。

如图所示:

http://farm5.static.flickr.com/4076/4865667606_db89b7a4a4.jpg

下面是我的一思考的总结:

  • 我为何对Vim、Emacs这类程序员用的工具感兴趣?
    • 程序员的工作其实就是编辑文本
    • 电脑已经成为编辑文本最主要的工具
    • 选择高效的文本工具,自然要考虑程序员用的工具
    • 最重要的是我本来就对Vim感兴趣
    • 专注于内容建设要比排版重要,而Word显然做不到
  • 为何用Vim、Emacs来塔建个人的Wiki?
    • 这是最经济、最绿色的选择。因为它们是免费的,同时安装的时候不需要依赖其他的东西,不会给系统增加进程
    • 不需要考虑版面的问题,可以专心于内容的编写
    • 直接编写内容,不用进入什么后台之类的,很方便
    • 输入即输出,所想即所得,这是最高境界
  • 个人的Wiki该如何编写?
    • 每天都记录,一直坚持
    • 在Wiki上记录自己想解决的问题,在解决问题时用Wiki记录过程
    • 不必预先分类,当你解决不同领域的问题时再分类

注:

1 滇狐的主页:http://edyfox.codecarver.org/html/index.html

2 来自Gracecode的推荐:http://www.gracecode.com/archives/3022/ 闲耘用Vimwiki塔建的Wiki:http://hotoo.github.com/vimwiki/index.html

3 闲耘翻译的Vimwiki文档:http://code.google.com/p/vim-script-cn/source/browse/trunk/doc/vimwiki.cnx

4 Org-mode演示视频:http://jaderholm.com/screencasts/org-mode/

5 这里有我用Org-mode做的笔记(不完全是):http://www.gtdstudy.com/?cat=297

2009-12:初稿,介绍VimWiki;
2010-08:增加回顾与总结部分。

《★ 个人知识管理:Vimwiki工具》有32个想法

  1. 自动建立wikiword不应该是“两个英文字母”而应该是两个英文单词,也就是连着的两个大小写字母。
    另外,我没搞懂怎么建立中文的wikiword?求解。谢谢。

      1. 给你留言了以后跑去翻看了viki的基本语法,才发现用[ ]的方法。都怪我英文学的不精,翻看vimwikiqrc的时候 看到link时,没在脑海里反映出来wikiword在某种意义上就是带comment的link。
        虽然,是自己搞明白的,还是谢谢你的解答。

  2. 关于UTF-8编码的问题,可能是你使用vim编辑后保存用的不是UTF-8的编码,你可以打开wiki文件后使用
    :set fileencoding
    查看它的编码。如果不是UTF-8的话使用:
    :set fileencoding=utf-8
    修改,再保存就可以了

  3. 请问vimwiki中如何手动换行呢?
    我写了好多段落(中文的),可是转成html的时候变成一行了?
    是因为我没有使用header.tpl的原因吗?
    博主能否贴一些你的vimwiki源码学习下呢:-)

  4. 请问怎样输出多级编号呢?
    使用
    # Numbered list item 1
    # Numbered list item 2
    # Numbered list sub item 1
    # Numbered list sub item 2
    # more …
    # and more …
    # …
    # Numbered list sub item 3
    只能输出例如:
    1 ………….
    2 …………
    1 ………..
    2 ………….
    3…………..
    要怎样才能输出像
    1…………
    2………..
    1.2……….
    1.2.1………..
    3…………
    这样的多级编号呢?

  5. Enter — 在当前页面中新建新的wikiword页面

    Shift-Enter — 新建一个wikipage,并在新的分割窗口中显示出来

    Ctrl-Enter — 新建一个wikipage,并在新的分割窗口中显示出来(Vertical split and folow/create WikiPage)
    —————–
    为什么我在Normal模式下尝试都没有实现上面的效果呢?

  6. 为什么我在index.wiki页面编辑,然后在Normal状态下输入命令“:Vimwiki2HTML”。Vim提示“E492:不是编辑器的命令:Vimwiki2HTML”。

    1. 要按一下 ESC 键,到命令状态,然后输入:
      :VimwikiAll2HTML(看见前面的冒号吗?不打冒号,不会让你输入命令)

      基本上不会有错

发表评论

电子邮件地址不会被公开。 必填项已用*标注