2010-08-24

把vim打造成笔记软件

之前用的笔记软件是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
endif

let winnum = bufwinnr(g:TagList_title)
if winnum == -1
return
endfunction

autocmd BufRead,BufNewFile *.txt,*.log,*.vtx setlocal ft=txt

4. 使用方法
1)vim的基本使用,这个得google。
2) 运行“,f”打开笔记软件界面。
3)NERDTree的使用方法,看这里
4)TxtBrowser的使用方法,运行“:h TxtBrowser@cn”命令查看。
5)因为vim是支持加密的,所以在有必要的时候可以对笔记内容进行加密(运行“:X”),这样就不会发生《韩峰日记》这样的事了。
10.08.22把vim打造成笔记软件 
(图:把vim打造成笔记软件)

5. 存在问题
1)在windows系统中,NERDTree的m命令无法建立中文文件夹,奇怪的是可以建立中文文件。(原因:未知。解决方法:r!cmd)
2)暂时不知道如何实时刷新NERDTree的缓存。
3)我对vim的多文件搜索并不熟悉,很是缺乏这方面的知识,不知文件多了找起来方不方便(也许只要文件结构管理得好,根本没有找不到的问题,也许可以使用vim帮助文件那样标记的形式)。

(完)

2010-08-11

李敖

我在网易文化上看到一篇奇文《我为什么要喊毛主席万岁》,更奇的是它的署名——“李敖”。我把它转帖到豆瓣的经典阅读小组,引来一顿臭骂,随后有人指出这是一篇伪文。

在这里我发现我的心理很有趣。我看到那篇文章的第一个想法也是想:这真是李敖写的吗?发现这个网站是网易文化,文章的一些用语也是李敖式的,再想到好像听说李敖好像老了之后也变糊涂了,越来越亲共了。想当然地认为李敖在精力最充沛的青年时光被国民党关进监狱什么事也做不了,被迫和心爱的女人分离,遭受背叛,他恨国民党是当然的,但他和共产党并没有这种仇,没必要在老年再给自己树敌。或许真有可能是他写的。但被指出是伪文之后呢,我反而变得有点不服气,我想去证明这是李敖写的。难道李敖就没有可能写这种文章吗?也许没写,但他在凤凰卫视做过那么多期节目,好像都是说共产党的好话,也许在这些节目中有表达这样的意思呢。于是,下载了《李敖有话说》的MP3,在线看了,他在北大的演讲。

我现在觉得网上那些对李敖的评判都是错的。记得谁说过李敖在电视上对他完全不了解的大陆指手画脚,对毛、邓、共大唱赞歌。但我在听《李敖有话说》的时候我觉得李敖完全是站在台湾的立场,他完全是在为台湾说话;他对台湾的各方面的批评是恨其不争;他对大陆的赞扬是棉里藏针。

李敖在北大的演讲很有意思,讲言论自由。他说,

言论自由是要靠自己争取的。

斗争要讲究方法。

拿着红旗反红旗。

是啊!李敖现在的言论自由完全是他坐牢坐出来的,写作写出来的,斗争争取来的,他为什么不能说他自己喜欢说的话呢。可是有的大陆的人却要求他批评中共,没有批评就不行,讲中共一点点好都不行。他们自己为什么不想想自己为言论自由做了什么,人家的言论自由是自己斗争来的,你的言论自由在哪里呢,你的言论自由难道是用来要求他按你的要求讲话的吗?

唐吉柯德冲向风车的精神很了不起,值得学习。可当我们也冲向风车的时候我们应该知道自己不是疯子,应该能够问自己几个问题:这是在解决问题还是表现个人;这样冲过去问题能解决吗;有没更好的解决方法?

我觉得有的人是根本不思考的,他把自己当成蛋,向高墙砸去,把自己搞得头破血流,之后说这一切都是墙的责任。可是,头破血流之后,问题解决了吗?

笨蛋!笨蛋!!笨蛋!!!

李敖的书被禁,他把书套上全裸三点不露封面和黄色书刊一起买。如果你认为要达到的目的更重要,那么可以选择更能实现的手段;如果你认为手段最总要,那就不应该报怨结果。

有一些法律不合理,有一些法官不讲法。但一条法是孬法并不能做为我们可以不遵守它的理由,因为它是法律,人人都应该守法,它不好,应该通过合法的程序去修改它,而不是直接地去违反。法官不讲法,政府不讲法,那是不是我们也可以跟着不讲法,并扬言“是你先不讲法的!”?别人是孙子,那是不是也要学着装孙子呢?李敖喜欢骂人,骂别人是混蛋,他会拿出证据,而不是在那时造谣。李敖喜欢打官司,打输了,明知道会打输,还是会打——政府不讲法那就用行动教它知道应该讲法,而不是跟着学坏。

李敖在节日里不无伤感地说:“各位看我要看快看,否则呢你们就看不到我了。”那时的李敖已经是个七十岁的人了。一个七十岁的老人跑到大陆来想撤下些种子,但我看他是白撤了。很可悲的,这些批评他的人没有一个赶得上他的。李敖所说的“拿着红旗反红旗”除了孔庆东有那么一点样子之外,其他人都不耻于这样做,他们都很“英勇”,却跑到墙外抱团取暖,还真的把推特当成他们宣传民主的阵地。XD!

(完)

2010-08-10

Windows的快捷键

有一个关于快捷键的笑话。学生问:“老师,快捷键是用来干什么的吖?”老师答道:“快捷键是用来在你的鼠标坏了的时候应急用的。”

也许是受这则笑话的暗示,我总觉得电脑高手是不用鼠标的。阿伟更把用键盘操作给具体化,他常说,电脑最高级的操作就是Ctrl+a,之后Shift+Del。幸好没有人听信他的话真的在电脑上操作。

这里有一份windows 7 快捷键,把它记下来,不用鼠标也能进行很多电脑操作了。但我没有把这个文档看完,我是觉得没什么必要的。说到底快捷键是为了提高效率,单纯地为使用快捷键而用快捷键,太糟罪了。更多的时候我是用Total Commander管理电脑,用不着用windows系统的快捷键。

但快捷键还是很有用的,用在启动程序。给程序设定快捷键之后要启动程序就不用到开始菜单去找,也不用在桌面放置许许图标,简单按两三个键,程序就运行起来,这要比用鼠标快多、省事多了。

有一点我觉得比较奇怪,就是无法直接给一个程序(exe文件)设置快捷键,其它文件类型也不行,能设置快捷键的文件只能是“快捷方式(.lnk文件)”。所以要给程序设置快捷方式只能是先给这个程序建个快捷方式(或是在开始菜单找到这个程序),右键,属性,在“快捷键”中输入自己喜欢的快捷键就行了。(如图)
windows 快捷键

快捷键一般包括Ctrl+F键系列(F键表示F1、F2等)、Alt+F键系列、Shift+F键系列、Ctrl+Shift+N键系列(N表示任一按键)、Ctrl+Alt+N键系列。我自己比较喜欢使用Ctrl+Shift+N键系列,几乎不会发生冲突,又是按字母命名比较好记。

还有更奇怪的,很多时候会发现设置的快捷键在系统重启后失效!

解决方法:

1.运行注册表。开始,运行,输入“regedit”回车。

2.找到分支[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Hotkeys],如果没有“Hotkeys”就新建该项,如果有“Hotkeys”则把该分支下面的所有二进制值删除。

3.重启系统。

(完)