标签:
it/科技 |
分类: VIM/text |
作者:善用佳软 初稿:20071220 更新1:20080219
[本文目录] 一、如果你不了解Vim 二、为长篇txt生成可跳转目录 三、用vimexplorer插件来管理笔记 四、自定义文件类型:日记 五、自定义文件类型:to-do 六、上例中折叠函数的解释
补充:
- 更多资料见帮助 :h 之:vim、:copen、:cw
- 除生成目录外,也可用作索引,比如:vim 树 % 就把所有含“树”字的语句列了出来。
- 对于长句(Vim一句即txt一段),其列表显得太不精简,有些不实用。但可以通过:set nowrap优化。
- 本文系xbeta据水木Vim版总结。
http://img300.imageshack.us/img300/8510/vebu8.png
下载请到http://www.vim.org/search.php搜索Scripts。最新版V0.98具有文件列表自定义过滤功能,比如在_vimrc中加一句 let g:VEConf_filePanelFilter = '*.txt\|*.ztx\|*.htm' 表示只显示txt ztx htm后缀的文件。
常用键:在树、列表窗口切换:tab。树窗口开关目录:enter。列表中在预览窗口打开文件u。
以前对Vim做笔记的研究多是着重于对单篇笔记的编辑功能,个别也有通过wiki word 链接来联系笔记的。但利用此插件,基于文件体系来管理笔记,也算是一条新路子,故记录之。
- 把文后附注内容保存为Vim\vimfiles\syntax\ztxlog.vim
- 再在vimfiles\ftdetect\filetype.vim中加入一行
au BufNewFile,BufRead *.zlg setf ztxlog - 然后新建一个文本的test.zlg文件,内容如上图。注意:
月份一行,*顶格,*后一个空格
每日内容,行首tab缩进,/为半角,|为全角。
当然这些格式也可以与语法文件一起更改。 - 用Vim打开test.zlg,效果如文章开始附图。
技巧提示:
我从来不会先运行Vim,再打开某文件。对一般的文件,也是在TC中定位后直接F4。而对于这种超级常用的文件,则是win+r
log。log.lnk的指向是
“"D:\program files\Vim\7vim\vim70\gvim.exe" --remote-tab-silent
f:\pri\log07_k.zlg”
附:ztxlog.vim内容
" Vim syntax file " " set set syn syn syn syn hi hi hi hi set set func! Myindent(lnum) endf |
http://img88.imageshack.us/img88/8782/vimetdqr7.png
把下述文字另存为easytodo.vim,
" Vim syntax file " " " " " " " "Usage: " " " " For version 5.x: Clear all syntax items " For version 6.x: Quit when a syntax file was already loaded if elseif endif set set syn syn syn syn hi hi hi hi abb "上一句为输入week后,自动在后面加上N个下划级,这样比较醒目 set set func! Myindent(lnum) endf |
再在vimfiles\ftdetect\filetype.vim中加入一行
au BufNewFile,BufRead *.etd setf easytodo
然后新建一个test.etd文件,内容如下
01 week__________________________________________ 02 week__________________________________________ |
用Vim打开,效果如上图。
六、上例中折叠函数的解释
s:a等于某字符串长度
哪个字符串?当前行符合某特征的字符串 matchstr()
当前行 getline
某特征 数字或*类,数字\|*类
*类:^\*\+\s\+表示:某行开始为一个或多个*,然后是一个或多个空格(或tab)
数字类:
\.\d\d\=表示:点,然后是1位数字,然后又是0或1位数字。如“.1”或“.12”。当然也可以有其他写法。
^\d\(\.\d\d\=\)\=\s\+表示:行首,后接1位数字,再接1或多个“.1
或 .12”,再接1或多个空格(或tab)
如果字符串长度为
>3,如“1.1 xxxxxx”“**
则返回>2,表示2级别折叠开始
=2,如“1 xxxx”“* xxxxxxxx”
则返回>1,表示1级别折叠开始
其他,就是匹配不到
则返回=,表示级别同上一行
※ 本篇完,下一篇 善用Vim:实例系列(2)