本文版权归属「Geek4us」
阅读本文之前,首先你要确保,你会用Vim,懂得配置Vim的配置文件。如果不懂,请上网自行搜索Vim入门教程,已经有很多中文资源,我就不再解释了。
Vimwiki的安装
从以下链接中下载Vimwiki插件:
http://www.vim.org/scripts/script.php?script_id=2226
将下载到的vimwiki.vba文件放到vim的安装目录"~\Vim\vim72\plugin"或"~\Vim\vimfiles\plugin"下
用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就可以坚持下来了。
如图所示:

下面是我的一思考的总结:
- 我为何对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:增加回顾与总结部分。


沙发!
诱惑啊诱惑,淡定!淡定!
抢我板凳,不可饶恕
板凳
自动建立wikiword不应该是“两个英文字母”而应该是两个英文单词,也就是连着的两个大小写字母。
另外,我没搞懂怎么建立中文的wikiword?求解。谢谢。
输入 [[wikiword]]
给你留言了以后跑去翻看了viki的基本语法,才发现用[ ]的方法。都怪我英文学的不精,翻看vimwikiqrc的时候 看到link时,没在脑海里反映出来wikiword在某种意义上就是带comment的link。
虽然,是自己搞明白的,还是谢谢你的解答。
不知道可否分享一下 header.tpl 模板?谢谢!
我也在寻找中…我不懂得模板如何弄,所以在摸索啊…
关于 tpl 模板,在vimwiki的帮助里面,有提示,但是具体该怎么写,我就不知道了
关于UTF-8编码的问题,可能是你使用vim编辑后保存用的不是UTF-8的编码,你可以打开wiki文件后使用
:set fileencoding
查看它的编码。如果不是UTF-8的话使用:
:set fileencoding=utf-8
修改,再保存就可以了
谢谢,这个问题已经解决
请问vimwiki中如何手动换行呢?
我写了好多段落(中文的),可是转成html的时候变成一行了?
是因为我没有使用header.tpl的原因吗?
博主能否贴一些你的vimwiki源码学习下呢:-)
我的也差不多~
eg:
1.ddddddddddddddddddddddddddddddddddd
(空出一行)
2.ggggggggggggggggggggggggggggggggggg
然后输出是换行
[...] 关于Vimwiki 除了英文的官方文档,这篇中文的文章说的也很详细 [...]
翻墙的Google Sites飘过~~
Google Sites,我也觉得不错,可惜被墙了~
我还是习惯于单机软件…嗯,我很保守…
请问怎样输出多级编号呢?
使用
# 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............
这样的多级编号呢?
啊!写错了!
应该是
1............
2............
2.1.........
2.1.1......
3...........
这样编号才对!
我不知道啊…你要自己探索了
[...] 关于Vimwiki 除了英文的官方文档,这篇中文的文章说的也很详细 [...]
Enter -- 在当前页面中新建新的wikiword页面
Shift-Enter -- 新建一个wikipage,并在新的分割窗口中显示出来
Ctrl-Enter -- 新建一个wikipage,并在新的分割窗口中显示出来(Vertical split and folow/create WikiPage)
-----------------
为什么我在Normal模式下尝试都没有实现上面的效果呢?
发现文中一个小错误:VimwikiAll2HLML 应为 VimwikiAll2HTML
为什么我在index.wiki页面编辑,然后在Normal状态下输入命令“:Vimwiki2HTML”。Vim提示“E492:不是编辑器的命令:Vimwiki2HTML”。
要按一下 ESC 键,到命令状态,然后输入:
:VimwikiAll2HTML(看见前面的冒号吗?不打冒号,不会让你输入命令)
基本上不会有错
[...] 说明1:本文最初由Yibie于2009年12月投稿(原文)。在Yibie从Vim转向Emacs后,善用佳软接手更新本文。 说明2:阅读本文需要先了解和掌握Vim的基本使用。 [...]