当前文章被分类为:VIM

bom头的影响

前阵子有同事写了一段代码,在setcookie的时候出现下面错误。
Cannot modify header information - headers already sent by ....
这个错误非常之常见,如果在setcookie之前输出了任何文本内容,便会有上述错误提示。由于页面头部require了若干文件,一行行排查是很麻烦的事情,因此,我在页面顶部加上:
PLAIN TEXT
PHP:

ob_start();

在setcookie之前加上代码:
PLAIN TEXT
PHP:

ob_get_clean();

这是为了获取setcookie之前页面输出的内容。页面运行后,显示输出了一个空字符串,也就是说,setcookie之前没有任何输出。
继而用vim打开了源文件,发觉vim有打开bomb选项,怀疑因此给代码添加了隐藏的字符串,关闭之:
set nobomb
问题解决。
BOM是什么意思?
BOM是“Byte Order Mark”的缩写,用于标记文件的编码。并不是所有的文本编辑工具都能识别BOM标记

评论

用vim来写wordpress

用vim习惯了之后,用别的编辑器写长一点的文本都没法适应,写wordpress更是如此。为此我郁闷了很长一段时间,直到前不久找到了一个新的宝贝 ---- vimpress。这个东东可不是什么新的软件,它只不过是vim的一个plugin罢了。
只要装好vimpress,你就可以用它来列出或者发布blog。
目前这个插件有如下功能

获得文章列表
写新文章
编辑文章
现场保存 (yeah, no kidding)
支持分类
支持标签

vim命令清单

“:BlogList”
列出blog里的文章

“:BlogNew”
写新文章
“:BlogOpen id”
打开一篇现有的文章进行编辑
“:BlogSend”
保存并发布文章

安装过程

将解压之后plugin和syntax目录复制到vimfiles目录下
修改plugin下的blog.vim进行配置,需要配置username,password以及xmlrpc.php的url
如果需要支持tag,可以设置enable_tags=1。
如果需要支持UTW tags,需要另外下载一个vim插件utw-rpc-autotag

vimpress的主页
BTW:现在这篇blog就是我使用vimpress完成的:)

评论 (11)

很爽的vim motion操作

在“一组能让你爽出内伤的 Vim motion”里头看到一组这样的vim操作:
* ci[ 删除一对 [] 中的所有字符并进入插入模式
* ci( 删除一对 () 中的所有字符并进入插入模式
* ci< 删除一对 中的所有字符并进入插入模式
* ci{ 删除一对 {} 中的所有字符并进入插入模式
* cit 删除一对 HTML/XML 的标签内部的所有字符并进入插入模式
* ci" ci' ci` 删除一对引号字符 (" 或 ' 或 [...]

评论 (3)

vim 7.1跳出来了

vim 7.1发布啦~~ 这个时候距上次vim 7.0的发布相隔了一年之久。这个版本有啥变化?还是老一套:
输入下面命令就知道了:
":help version-7.1".
Changes since 7.1a:
- Lots of spelling mistakes fixed.
- Several runtime files updated. Somehow people tend to send me updates
_after_ doing a release...
- Bug in downloading a missing spell file fixed. Could wipe out a
buffer with your text when downloading failed.
- Building with MingW fixed (and [...]

评论

用vim查看ie的html源文件

记得editplus有一个功能可以设置为ie浏览器的默认html源文件查看工具,这样查看源文件的时候是花花绿绿的有语法加亮的,对我这样眼神不太好的人说很方便。
vim也可以成为ie的默认源文件查看工具么
搜索的结果是,完全没问题,只要修改注册表就能解决问题
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\View Source Editor\Editor Name]
@="C:\\vim\\vim60\\gvim.exe"
见上面的注册表项,其中View Source Editor这一项,在某些机器上可能没有,手工添加就可以了。“C:\\vim\\vim60\\gvim.exe”这是你的gvim的真实安装路径。
BTW:我的环境是winxp + vim 7.0

评论

vim的php语法检查

之前一直是editplus的忠实爱好者,对editplus的使用也是小有心得.自打转向到vim之后,费了很大劲才转换一些习惯,渐渐的脱离了editplus,可见一款趁手的编辑器还是粘性很强的.以前说到的editplus可以和zend studio自带的ZendCodeAnalyzer工具进行整合,对php语法进行检测,相当方便.那么怎样用vim实现类似的功能呢?一番搜索,找到了答案:
map <C-J> :!php -l %<CR>
这样在vim里面就可以直接用ctrl+j,调用php解析器对当前文档进行语法检查了.当然如果php解析器不在你的路径下的话,那么应该写上全路径,象下面这样:
map <C-J> :!c:/php/php -l %<CR>
PS:vim的语法美化功能也很方便,只要在程序的第一行,command模式下输入=:1,$,就可以把当前代码排列的井然有序.而editplus则需要另外的工具配合,也能做到这一点.
参考资料:http://www.vim.org/tips/tip.php?tip_id=692

评论

vim的的代码折叠

vim也是有代码折叠功能的,以前就知道,然而毕竟用的不多,这个功能基本上很少用。随着最近和gvim的亲密接触,对代码折叠功能逐渐熟悉起来。有一次打开一段php的代码 -- 比如PEAR.php,发现里面的代码自动被折叠了,将代码展开后,可以看到只要代码两边有/*{{{*/和/*}}}*/,就会被自动折叠。仔细搜索配置,其中有一句是重点:
foldmethod=marker
这样vim就会自动搜索代码,将{{{和}}}之间的内容折叠起来,而且代码结尾有一段小注释也不是无用的废料:
/* vim600: sw=4 ts=4 fdm=marker syn=php
*/
这段注释会被vim读取,并自动设置到环境变量里面。
关于代码折叠的用法,只要在vim中输入:
:help zo
就可以看到了不少相关的快捷键,需要一定的练习才可以得心应手:)
我的gvim配置内容又增加了:
colo zellner
set guifont=Courier_New:h11:cANSI nobackup tabstop=4 shiftwidth=4 foldmethod=marker
set fileencodings=utf-8,ucs-bom,chinese,taiwan,latin1
au BufRead * simalt ~x
我的.vimrc
set hlsearch ic ai wildmenu fileencodings=utf-8,gbk cindent tabstop=4 shiftwidth=4 foldmethod=marker nocompatible nopaste pastetoggle= <f11>
syn on
pastetoggle=粘贴模式切换可以避免自动缩进的带来的格式影响

一点 vim相关小发现:
google reader的上一篇,下一篇快捷键分别是j,k,和vim的光标移动键一致,不知道是巧合还是有意为之,如果是后者,那么google reader的开发者想必也是vim的粉丝:)
使用firefox查看网页源代码时,按一下"/",会显示搜索框,与vim的搜索一致,估计firefox的开发者也是vim爱好者:p

评论 (3)