1
Posted on 下午3:28:00 by Fan Zhang and filed under , ,

可以访问:本文镜像

为什么要用 VimWiki

个人 Wiki 个性化的程度比较严重,所以千挑万选总也找不到好用的。Vim 虽然学习成本很高,但是我想既然已经到使用个人 Wiki 了,应该不会在乎这点投资。

Wiki 形式的文档好处在于易于写作,纯文本的管理,即使是源文件也有很强的可读性,可以方便地导出规范的 HTML 文件。

Wiki 的格式也很多,比如 Markdown,reStructuredText 等等,这都被称作 Lightweight markup language,在这个维基词条上也有些简单的对比。Travis 的主页有文章对这些做了总结(文章提到,选择太多,很难总结完善)。我个人依照我的喜好选择了 Google Code Wiki,其实我也觉得,如果不是写书,其实哪种 Wiki 形式都一样,重要的是开始写,选一个喜欢的语法和实现,并且保证用的人比较多的就行。

说了半天还没有介绍 VimWiki,它是一个 Vim 的开源插件,采用类似 Google Code Wiki 的语法,所有的文档组织就是利用 Wiki 格式的纯文本。结合 Dropbox 可以轻松实现同步。我觉得 Wiki 就不用版本控制了,简单在文中标注下必要的更新说明就是。

Quick Start

为了快速上手,下面各种操作不多做解释,官方文档能提供所有的解答,也有中文文档。另外,这个软件的更新较快,网上的一些设置介绍可能过时,需要及时查阅官方的文档。

下载安装

方法一:下载 .vba 是 Vimball 的安装文件,打开后使用 :so % 即可。

方法二:也可以直接使用 zip 文件,解压复制到相应路径。

注意:Vim 中涉及到的路径最好不要含有比较特殊的字符(比如空格,括号等),以免出现各种错误。

配置 vimrc

安装官方文档的要求,需要确保 vimrc 文件中有如下的设置:

 
    set nocompatible
    filetype plugin on
    syntax on

另外就是要设置个人 Wiki 库的存放地址和 HTML 模板:

 
let g:vimwiki_list = [{'path': 'D:\Link\Wiki\wiki\',
      \ 'path_html': 'D:\Link\Wiki\html\',
      \ 'template_path': 'D:\Link\Wiki\templates\',
      \ 'template_default': 'def_template',
      \ 'template_ext': '.html',
      \ 'css_name': '',
      \ 'auto_export': 1,
      \ 'diary_link_count': 5}]

注意到有关模板我使用的是 Dev (2010-12-27) 版本,所以和当前的 1.1.1 的设置有所不同。 因为 VimWiki 可以定义 css,所以有一个 css_name 的设置,应该是保存在文档中定义的 css(不确定)。

使用

这部分请看VimWiki 介绍中第二节。

在 Vim 中,键入 <leader>ww 三个键即可进入第一个 Wiki 库的首页(index.wiki)。其中 <leader> 一般是 \ 字符。

在首页中就可以随意输入了,使用类似 NewPage 之类的驼峰词可以创建新页面。如果需要创建中文词条可以使用: [[中文]] 或者 [[文件名|中文描述]] 的方法。

<tab> 和 <shift> + <tab> 键可以在词条之间跳转,<enter> 可以进入词条进行编辑,<backspace> 可以返回。注意到,通常情况下 VimWiki 会自动存盘。

使用 :Vimwiki2HTML 和 :VimwikiAll2HLML 可以导出 HTML 格式的网页。

Tips

  • 可配置多个 Wiki 库。访问第二个 Wiki 库可以键入 2<leader>ww,或者通过 <leader>ws 进行选择。
  • Wiki 中的 CamelCase 会自动转换为 link,按 <enter> 即可进入编辑,按 <backspace> 回到前一页。
     
    " 不需要驼峰英文成为维基词条
    let g:vimwiki_camel_case = 0
    
  • 可以设置在存档后自动更新 HTML 文件,在 vimwiki_list 中的 auto_export 属性。
  • 可以建立 to-do list,只不过默认的快捷键 <C-space> 和中文输入法切换的热键冲突,可以重新映射。比如下面映射成 <leader>tt,
     
    :map <leader>tt <Plug>VimwikiToggleListItem
    
  • 方便的日记功能,使用 <leader>w<leader>w 就可以开启一个以今天日期命名的 diay page,还可以结合 Calendar 插件,以日历形式显示日记。

发布

通过 HTML 模板,可以把 VimWiki 当做 Blog 和个人 Wiki 的发布工具使用,而且文档编辑简单,内容和样式分离,非常省心。 目前一个选择是使用 githubPages feature。本来 github 是代码托管服务,但是允许作者发布静态的网页作为主页。

对此不再赘述,可以参考:

1
评论 : 使用 VimWiki 进行知识管理
dofine 说... 2011年12月6日 下午8:56

请问下博主,css_name 这一项为什么设置了没有用呢。导出的html文件找的还是我在模板文件的header部分定义的css。

发表评论