混合使用 vimwiki 和 wikidpad

混合使用 vimwiki 和 wikidpad

我是重度的 vimer,~~知识管理用的是 wikidpad,操作起来很不爽!了为何不是 vim 的方试~~我己经完全使用 vimwiki 了,还在用 wikidpad 的也快换过来吧.

一直想自己写一个类似 wikidpad 的软件,可是没时间. vimviki 操作是舒服了,可是功能上还有不足的地方.

这里有 vimwiki 中文的文档: http://code.google.com/p/vim-script-cn/source/browse/trunk/doc/vimwiki.cnx

安装我就不说了,自己去看.

配置

gvim ~/.vimrc 这是最新的:

"--------------------------------------------------------------------------------------------------------------------------------------------------------------
"VIMWIKI-------------------------------------------------------------------------------------------------------------------------------------------------------
"--------------------------------------------------------------------------------------------------------------------------------------------------------------
"vimwiki 配置文件
let wiki = {}
"保存时是否自动生成html
let wiki.auto_export=1
" 是否开启按语法折叠  会让文件比较慢
"let g:vimwiki_folding = 1
" 是否在计算字串长度时用特别考虑中文字符
let wiki.vimwiki_CJK_length=1
let wiki.index='index'
let wiki.path='/home/bigzhu/Dropbox/bigzhuWiki/data/'
let wiki.path_html='/home/bigzhu/Dropbox/bigzhuWiki/html/'
let wiki.html_header= '/home/bigzhu/Dropbox/bigzhuWiki/tpl/header.tpl'
let wiki.html_footer= '/home/bigzhu/Dropbox/bigzhuWiki/tpl/footer.tpl'
let wiki.nested_syntaxes={'python': 'python', 'c++': 'cpp', 'bash': 'sh', 'as3': 'actionscript', 'mxml': 'mxml', 'sql': 'sql', 'html': 'html'}
let g:vimwiki_list=![pic](wiki)
"不需要驼峰英文成为维基词条
let g:vimwiki_camel_case=0

let g:vimwiki_file_exts='py,pdf,txt,doc,rtf,xls,php,zip,rar,7z,html,gz'
let g:vimwiki_browsers=![pic]('google-chrome')
autocmd BufNewFile,BufRead *.wiki set filetype=wiki
"设置vim的路径为打开文件的当前路径,以使得 wiki 的
"search.py能够正常工作,否则都是在路径 ~/下
autocmd BufNewFile,BufRead *.wiki cd %:p:h

" 生成html并打开
autocmd FileType wiki map <f1> :Vimwiki2HTML<cr>:!google-chrome "/home/bigzhu/Dropbox/bigzhuWiki/html/`basename '%' .wiki`.html"<cr><cr>
" 代码快捷方式
autocmd FileType wiki map <f2> a```<cr><cr>```<Esc>kk$i
"all search
autocmd FileType wiki map <f3> :AllSearchWiki 
"search
autocmd FileType wiki map <f4> :SearchWiki 
" 打开/创建 Wiki 词条
autocmd FileType wiki map <f5> :VimwikiGoto 
" 置 todo-list 
autocmd FileType wiki nmap <silent><buffer> <C-z> <Plug>VimwikiToggleListItem
autocmd FileType wiki vmap <silent><buffer> <C-z> <Plug>VimwikiToggleListItem



"找 wiki 词 
function! SearchWiki(Name)
    execute "!search_wiki.py '".a:Name."'"
    execute "VimwikiGoto search"
endfunction
autocmd FileType wiki command! -buffer -nargs=1 SearchWiki call SearchWiki("<args>")
"全文查找 
function! AllSearchWiki(Name)
    execute "!search_all.py '".a:Name."'"
    execute "VimwikiGoto search"
endfunction
autocmd FileType wiki command! -buffer -nargs=1 AllSearchWiki call AllSearchWiki("<args>")

这是结合 wikidpad 的配置,不过有的地方是错的 :

"vimwiki
let wiki = {}
"保存时是否自动生成html
let wiki.auto_export=1
"不需要驼峰英文成为维基词条
let wiki.vimwiki_camel_case=0
" 是否开启按语法折叠  会让文件比较慢
"let g:vimwiki_folding = 1
" 是否在计算字串长度时用特别考虑中文字符
let wiki.vimwiki_CJK_length=1
let wiki.index='index'
let wiki.path='/home/bigzhu/Dropbox/bigzhuWiki/data/'
let wiki.path_html='/home/bigzhu/Dropbox/bigzhuWiki/html/'
let wiki.html_header= '/home/bigzhu/Dropbox/bigzhuWiki/tpl/header.tpl'
let wiki.html_footer= '/home/bigzhu/Dropbox/bigzhuWiki/tpl/footer.tpl'
let wiki.css_name= '/home/bigzhu/Dropbox/bigzhuWiki/css/style.css'
let wiki.nested_syntaxes={'python': 'python', 'c++': 'cpp'}

let wiki2={}
"保存时自动生成html
let wiki2.auto_export=wiki.auto_export
"不需要驼峰英文成为维基词条
let wiki2.vimwiki_camel_case=wiki.vimwiki_camel_case
" 是否开启按语法折叠  会让文件比较慢
"let g:vimwiki_folding = 1
" 是否在计算字串长度时用特别考虑中文字符
let wiki2.vimwiki_CJK_length=wiki.vimwiki_CJK_length
let wiki2.index='all'
let wiki2.path=wiki.path
let wiki2.path_html=wiki.path_html
let wiki2.html_header=wiki.html_header
let wiki2.html_footer=wiki.html_footer
let wiki2.nested_syntaxes=wiki.nested_syntaxes

let g:vimwiki_list=![pic](wiki,wiki2)

主要是 path 参数,选择为己有的 wikidpad 的存放的地圵.

wikidpad 改造

vimviki 和 wikidpad 用的都是文本的存储方试.后缀还都是 .wiki 的,天然兼容,不用做什么.

wikidpad 用的是单括号来指定 wiki 字 pic.而 vimwiki 用的是标准的双括号 wiki. 用 sed 来替换下就好了.

sed -i "s/\[/\[\[/g" ./*.wiki
sed -i "s/\]/\]\]/g" ./*.wiki
文本中原有的 [[ 被替为 [[[[ 了,没事,再换回来就好了.
sed -i "s/\]\]\]\]/\]\]/g" ./*.wiki
sed -i "s/\[\[\[\[/\[\[/g" ./*.wiki

查找

wikidpad 中用 ctrl+o,就可以快速找 wiki 词和增加新的 wiki 词,vimwiki 就没这么方便了我自己用 python 完善了参看:利用 python 实现 vimwiki 的 wiki 词查找 vimwiki 中有个特殊的 wiki 词:index,里面应放有所有 wiki 词.

自己手工一个个录进去?太呆了.python 出马:

#!/usr/bin/python
* -*- coding:UTF-8 -*-

import glob
import shutil

file_names=glob.glob('*.wiki')

f=open('index.wiki','w')
name=""
print >>f,'- status: draft'
for file_name in file_names:
    splited_name= file_name.rsplit('.',1)
    name=splited_name![pic](0)
    print >>f,'['+name+']('+name+'.md)'
f.close()

开心的用吧. vimwiki 怎么加附件还没学会,以后再说了.