曾经很长一段时间都是在用Quanta Plus/Kwrite来写代码,Quanta Plus好在自动补充和标签页,而Kwrite好在轻便而有功能齐全。后来因为要对代码做批处理,于是慢慢转移到vim这款*nix下最强大的编辑器下来了,以至于现在几乎100%的时间都是用vim来写代码,包括在blogbus里给blogbus hack写日志。总结了一些我在用g?Vim过程中的tips:
自动识别各种中文编码
在.vimrc
文件里加入这句,基本上所有中文编码都没问题了,包括繁体中文
set fileencodings=ucs-bom,utf8,GB18030,Big5,latin1
粘贴文本格式乱了?
写代码时经常要从网页上或其他地方粘贴点代码过来用,但是一贴进vim里格式就乱了怎么办?.vimrc
里加入这两句:
set nopaste
set pastetoggle=<F10>
以上代码的作用是当你需要粘贴代码时先按下F10进入切换到paste
,这时再粘贴进去就不会有问题了。为什么不直接设置set paste
呢? 因为set paste
在gVIM下可能会导致工具栏里的粘贴键失效。
推荐在gVIM下使用desert主题
desert是gVIM下一个非常candy的代码高亮主题,也是我目前看过的最舒服的高亮显示环境了。Gentoo里的vim默认就附带了这个主题,启用它只需要设置:
colorscheme desert
就行了,如果没有这款主题的话,在此下载后将其放到~/.vim/colors
目录下再启用就是了。
看起来不是一般的舒服啊 :D
映射常有按键
习惯了Ctrl+V, Ctrl+S的文本编辑模式? 习惯了Ctrl+T, Ctrl+Tab…的Firefox标签工作模式? 将以下代码贴如你的.vimrc
中就是了!
" 映射Ctrl+V键粘贴内容
nmap :set paste"*p:set nopaste
" Ctrl+S实现保存,如果未命名文件名会提示你选择保存路径和文件名
if has("gui_running")
:map :if expand("%") == "":browse confirm w:else:confirm w:endif
endif
" Ctrl+A实现全选
map ggVG
" Map the hotkeys working like firefox!
if has("gui_running")
:map : tabnew " Ctrl+T新建标签页
:map : tabnext "Ctrl+Tab切换标签页
:map : close "Ctrl+W关闭当前标签页
endif
自动创建模板
用过Gentoo的都知道,如果输入vim package.ebuild
,系统会根据文件后缀名自动创建一个最基本的ebuild文件模板,以节省编写时间。同样,可以把这招扩展到任意格式的文件下来,以html格式为例,先创建一个名为skeleton.html(Whatever you like)的基础模板:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="description" content="" />
<meta name="keywords" content="" />
<title></title>
<style type="text/css">
body {font: 12px Verdana,'Lucida Grande',Sans-Serif;}
</style>
</head>
<body>
</body>
</html>
然后把文件放到~/.vim/skeleton/
下,在.vimrc
中加入这句:
au BufNewFile *.html 0r ~/.vim/skeleton/skeleton.html|norm 13G
以后用vim创建以html为后缀的任意文件时都会直接套用该模板并将光标直接跳到<body>
(13G)内。
好用的插件
SuperTab 根据你已输入过的内容,按Tab键时实现自动补充
NERD Commenter 强悍的注释插件,支持N种格式的注释(真的是NNN种啊!)
及时雨啊,哥们也要大量写代码了
对中文的支持很及时!多谢!
CXXFLAGS=”${CFLAGS} -fvisibility-inlines-hidden” 多么经典的flag啊,可惜现在没几个人这么用了。