之前用的笔记软件是minipad2,是一个很小巧很轻便的软件,功能刚刚够用,但它的操作习惯又与我这种键盘控有点格格不入,还有它是单一平台的,用它来笔记本在其它平台阅读修改有点有点不方便。今天突发奇想,能不能把vim打造成笔记软件呢?
1. 要求
1)速度要快,占用资源要少,毕竟我用的是老机子。
2)生成的记录最好是纯文本,我始终觉得纯文本才是王道,在任何平台都可以轻松打开。
vim完全符合这两点要求,事实上对于我来说vim是常驻内存的,使用其它的任何笔记软件都意味着多添一个进程。
2. 需要插件
1)NERDTree (必需)
2)TxtBrowser (非必需,推荐)
3)taglist (非必需,推荐)
4)ctags (非必需,推荐)
3. 安装方法
1)下载NERDTree http://www.vim.org/scripts/script.php?script_id=1658,解压到vimfiles文件夹。
2)其它三个插件的安装方法可看善用佳软这篇《TxtBrowser: 在Vim中高效处理纯文本(更新)》。
3)在_vimrc中添加如下内容,可根据注解对内容进行修改。
"d:\note\是笔记存放的目录
,f :Tlist<CR><C-W><C-W>:NERDTreeToggle d:\note\<CR><C-W>"按ctrl+h、l在左右窗口切换
map <c-h> <ESC><c-w>h
map <c-l> <ESC><c-w>l" ----------------- NERD tree
" http://www.vim.org/scripts/script.php?script_id=1658
let NERDTreeShowHidden = 1
"let NERDTreeWinPos = "right"
let NERDTreeWinPos = "left"
let NERDTreeWinSize = s:PlugWinSize
let NERDTreeBookmarksFile=$VIMDATA.'NerdBookmarks.txt'
let NERDTreeShowHidden = 0 "不显示隐藏文件夹,只有开启时下一项才有效
let NERDTreeIgnore = ['\.\/$', '\.\.\/$'] "不显示当前文件夹和上一级文件夹
nmap <leader>n :NERDTreeToggle<cr>" ----------------- taglist.vim 提供源代码文件的函数列表
" http://www.vim.org/scripts/script.php?script_id=273
" 为使用txtbrowser,故使用这个 http://att.newsmth.net/att.php?p.731.55149.1226.vim 修改版
" <F10> 打开关闭TagList窗口,窗口在右边
map <silent> <F10> :TlistToggle<cr>
" http://www.vim.org/scripts/script.php?script_id=273
if has("win32")
"let Tlist_Ctags_Cmd = $VIM.'/vimfiles/ctags58/ctags.exe' "
"这条命令在windows7无效,直接把ctags复制到vim72目录就可以
else
let Tlist_Ctags_Cmd = '/usr/local/bin/ctags'
endif
let Tlist_Show_One_File = 1 "同时显示多个文件和tag,1为只显示当前文件的
let Tlist_Exit_OnlyWindow = 1 " 如果taglist窗口是最后一个窗口,则退出vim
let Tlist_Use_Right_Window = 1 " 在右侧窗口中显示taglist窗口
"let Tlist_File_Fold_Auto_Close = 1 "非当前文件函数列表折叠隐藏
let Tlist_GainFocus_On_ToggleOpen = 0
let Tlist_WinWidth = s:PlugWinSize
let Tlist_Auto_Open = 0
let Tlist_Display_Prototype = 0
"let Tlist_Close_On_Select = 1
"let Tlist_Process_File_Always=0 "不一直更新tags"解决提示:Tlist_Refresh_Folds错误
function! s:Tlist_Refresh_Folds()" Not needed when one file is displayed.
if g:Tlist_Show_One_File
return
endiflet winnum = bufwinnr(g:TagList_title)
if winnum == -1
return
endfunctionautocmd BufRead,BufNewFile *.txt,*.log,*.vtx setlocal ft=txt
4. 使用方法
1)vim的基本使用,这个得google。
2) 运行“,f”打开笔记软件界面。
3)NERDTree的使用方法,看这里。
4)TxtBrowser的使用方法,运行“:h TxtBrowser@cn”命令查看。
5)因为vim是支持加密的,所以在有必要的时候可以对笔记内容进行加密(运行“:X”),这样就不会发生《韩峰日记》这样的事了。
(图:把vim打造成笔记软件)
5. 存在问题
1)在windows系统中,NERDTree的m命令无法建立中文文件夹,奇怪的是可以建立中文文件。(原因:未知。解决方法:r!cmd)
2)暂时不知道如何实时刷新NERDTree的缓存。
3)我对vim的多文件搜索并不熟悉,很是缺乏这方面的知识,不知文件多了找起来方不方便(也许只要文件结构管理得好,根本没有找不到的问题,也许可以使用vim帮助文件那样标记的形式)。
(完)