把VIM打造成一个真正的IDE(1)
Published on 十月 15, 2009
这里所说的IDE主要是指C/C++开发,但是由于笔者之前也搞java和c#开发,所以对这两种语言也会有所兼顾。
这个话题可能要分好几篇文章来写了,今天主要讲一下最简单的,包括vimrc里面的基本配置,让vim能够完美支持各种源码文件;
vimrc配置如下(为简单起见,采取注释的方式直接说明):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | if(has("win32") || has("win95") || has("win64") || has("win16")) "判定当前操作系统类型 let g:iswindows=1 else let g:iswindows=0 endif set nocompatible "不要vim模仿vi模式,建议设置,否则会有很多不兼容的问题 syntax on"打开高亮 if has("autocmd") filetype plugin indent on "根据文件进行缩进 augroup vimrcEx au! autocmd FileType text setlocal textwidth=78 autocmd BufReadPost * \ if line("'\"") > 1 && line("'\"") <= line("$") | \ exe "normal! g`\"" | \ endif augroup END else "智能缩进,相应的有cindent,官方说autoindent可以支持各种文件的缩进,但是效果会比只支持C/C++的cindent效果会差一点,但笔者并没有看出来 set autoindent " always set autoindenting on endif " has("autocmd") set tabstop=4 "让一个tab等于4个空格 set vb t_vb= set nowrap "不自动换行 set hlsearch "高亮显示结果 set incsearch "在输入要搜索的文字时,vim会实时匹配 set backspace=indent,eol,start whichwrap+=<,>,[,] "允许退格键的使用 if(g:iswindows==1) "允许鼠标的使用 "防止linux终端下无法拷贝 if has('mouse') set mouse=a endif au GUIEnter * simalt ~x endif "字体的设置 set guifont=Bitstream_Vera_Sans_Mono:h9:cANSI "记住空格用下划线代替哦 set gfw=幼圆:h10:cGB2312 |
OK,有了上面的基本设置,一个好用的vim就配置好了,但是如果想让它完美支持各种源代码文件,想让它方便的注释,方便的进行代码提示,方便的添加用户信息,那还差的很远哦,就请期待下一篇吧-----把VIM打造成一个真正的IDE(2)。
版权所有,转载请注明出处。www.vimer.cn
原创文章,版权所有。转载请注明:转载自Vimer的程序世界 [ http://www.vimer.cn ]
本文链接地址: http://www.vimer.cn/?p=91
你好!
augroup vimrcEx{
“实现打开同一文件时,vim能够自动记住上一次的位置
}augroup END的效果看到了,但是代码没明白,以后慢慢看吧.
还有就是关于鼠标使用的那段,au GUIEnter * simalt ~x,应该是在打开gVim后使窗口最大化的,但是为什么呢?
[回复]
Dante 回复:
十一月 3rd, 2009 at 12:26 下午
呵呵,vim内部定义了很多自动执行的命令,并且定义了自动执行的实际,比如GUIEnter 就是说在进入gui界面之后,BufNewFile就是新建文件之后,详细可以看官方的这篇文章:
http://man.chinaunix.net/newsoft/vi/doc/autocmd.html 或者 在vim中输入:h autocmd
[回复]
什么叫vimrc?
[回复]
Dante 回复:
二月 4th, 2010 at 10:28 下午
……呃,呵呵……
[回复]
您好,在中文字体设置的时候,我按您的文章输入:set gfw=幼圆:h10:cGB2312
保存重新启动gvim后,没有报错,但是中文无法切换到 幼圆字体(字体系统中有)
在网上搜索页没有类似问题,还请指点,谢谢!
[回复]
Dante 回复:
四月 19th, 2010 at 9:59 下午
额,这个问题是有朋友跟我反馈过了,需要在vimrc里面加入
set enc=utf-8
[回复]
npr 回复:
四月 23rd, 2010 at 9:52 下午
非常感谢楼主的答复,
set enc=utf-8 后,还是没有效果,呵呵。
看完了博主关于vim的帖子,有个疑惑还得向你请教一下(可能较弱智):
用vim编写好C/C++代码后,如何编译运行?
gvim菜单栏上的C/C++ 的run(也可以是ctrl+F9)后,提示:file ‘D:\src\cpp\****.exe’ does not exist or is not executable or object/source older then executable.
[回复]
npr 回复:
四月 23rd, 2010 at 9:54 下午
google 搜索到用vimgdb 和clewn ,但鲜见详细关于二者在windows下配置和使用的文章,还请博主指点一下,谢谢!~
[回复]
Dante 回复:
四月 23rd, 2010 at 11:11 下午
呵呵,其实本博第一篇文章就是介绍C++编译运行和VIM结合的,可以看一下~还是有疑问的话,随时提出~
http://www.vimer.cn/2009/10/11.html
[回复]
Dante 回复:
四月 23rd, 2010 at 11:12 下午
呃,很奇怪……那vimrc文件的编码是cp936吗?
[回复]
npr 回复:
四月 24th, 2010 at 10:56 上午
谢谢博主的及时答复!
我是在安装中文帮助文档后运行gvim菜单栏为乱码,当时的解决办法为:到vim安装路径下C:\Program Files\Vim进入vimfiles的plugin打开vimdoc.vim 将set encoding设为set encoding=gbk ,
所以没有使用cp936编码吧。。。
[回复]
Dante 回复:
四月 25th, 2010 at 12:36 上午
呵呵,我的意思是你的vimrc文件的编码哦,你打开vimrc文件,然后执行set fenc看看结果是什么
[回复]
博主,以前我跟你说过,参照你的配置文件我的vim记不住上次打开的文件的位置,今天我知道为什么了,你那句注释
“实现打开同一文件时,vim能够自动记住上一次的位置
不能加在autocmd BufReadPost *底下那几行后面,要加在autocmd BufReadPost *上一行才可以。
我也不懂是为什么,但是我反复试验确实是如此。。。
[回复]
ideepblue 回复:
五月 28th, 2010 at 4:10 下午
问题+1
这个注释确实影响了 挪上去就行了
[回复]
依云 回复:
五月 28th, 2010 at 9:24 下午
看来是 \ 续行时把下面的语句接到上面后,注释后的语句都成了注释了。
[回复]
ideepblue 回复:
五月 28th, 2010 at 11:07 下午
这个解释有道理!没想到,受教了
[回复]
Dante 回复:
五月 29th, 2010 at 12:20 上午
呵呵,是我在粘贴代码的时候没注意,自己加了注释……
[回复]
请问有没有什么插件能加亮同名的变量?
就是当我把光标移到某个变量上时,上下文中跟它同名的变量都会高亮显示。
谢谢!
[回复]
aristotle9 回复:
七月 26th, 2010 at 8:24 下午
:set hlsearch
打开搜索高亮后
光标移动到一个单词上
*
或者
#
====
Vim Tips
“…Can you imagine how many keystrokes could have been saved, if I only had known the “*” command in time?” – Juergen Salk, 1/19/2001
[回复]
wei 回复:
七月 26th, 2010 at 8:28 下午
谢谢!
[回复]
求教一个格式化排版的问题。。 我看网上的介绍,用gg v SHIFT+V = 能重新排版c源代码。我想问下,如果设置,能改变源代码中的{}对齐方式,比如
有的是
example() {
____foo();
}
我想把它变成
example()
{
____foo();
}
这个该如何实现?
还有如果禁止对注释进行格式化?
[回复]
Dante 回复:
十月 1st, 2010 at 3:37 下午
其实是调用了vim中的 cindent,只是缩进,并不会重新排版。。。
如果要进制对注释进行格式化,那就需要写一个c.vim的缩进文件,放到vimfiles/indent目录下,不过具体怎么写就没研究过了,可以参考一下vim.org上的一些缩进文件。
[回复]
[...] 把VIM打造成一个真正的IDE(1) [...]
好好学习…
[回复]
[...] “把VIM打造成一个真正的IDE”系列贴,感觉不错:分为篇1、篇2、篇3 [...]