手把手教你把Vim改装成一个IDE编程环境(图文)
发布时间:2020-12-15 17:07:29 所属栏目:安全 来源:网络整理
导读:手把手教你把Vim改装成一个IDE编程环境(图文) By: 吴垠 Date: 2007-09-07 Version: 0.5 Email: lazy.fox.wu#gmail.com Homepage: http://blog.csdn.net/wooin Copyright: 该文章版权由吴垠和他可爱的老婆小包子所有。可在非商业目的下任意传播和复制。对于商
手把手教你把Vim改装成一个IDE编程环境(图文)
(--- 图9 ---) 如果自动跳转的位置你不满意,想看其他的结果,可以用下面的命令打开QuickFix窗口:
(--- 图10 ---) 这时你就可以慢慢挑选了^_^ cscope的主要功能是通过同的子命令"find"来实现的 "cscope find"的用法: cs find c|d|e|f|g|i|s|t name
如果每次查找都要输入一长串命令的话还真是件讨人厌的事情,Cscope的帮助手册中推荐了一些快捷键的用法,下面是其中一组,也是我用的,将下面的内容添加到~/.vimrc中,并重启vim:
按这种组合键有一点技巧,按了<C-_>后要马上按下一个键,否则屏幕一闪就回到nomal状态了 <C-_>g的按法是先按"Ctrl+Shift+-",然后很快再按"g" 很奇怪,其中的这句: nmap <C-_>i :cs find i ^<C-R>=expand("<cfile>")<CR>$<CR> 在我的vim中无法工作,但是我改成: nmap <C-_>i :cs find i <C-R>=expand("<cfile>")<CR><CR> 就可以正常工作了,不知道是什么原因? 有哪位朋友知道请告诉我. cscope的其他功能你可以通过帮助手册自己慢慢学习 reset : 重新初始化所有连接。 用法 : cs reset |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
9.QuickFix 窗口 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
在上一节的图10中大家可以看到在窗口下面有一个显示查询结果的窗口,这个窗口中列出了查询命令的查询结果,用户可以从这个窗口中选择每个结果进行查看,这个窗口叫"QuickFix"窗口,以前也是一个vim的插件来的,只不过现在成了vim的标准插件,不用你在去安装了,QuickFix窗口的主要作用就是上面看到的那个功能: 输出一些供选择的结果,可以被很多命令调用,更详细的介绍和使用方法请用下面的命令打开QuickFix的手册来学习吧:
(--- 图11 ---) 我们修改一下main.c,人为地造成几处错误,在第1019行增加了一个baobao_wu的没有任何定义的字符串,删除了第1020行最后的一个括号")",然后用下面的命令进行编译:
(--- 图12 ---) 在下面的QuickFix窗口中我们可以找到每一个编译错误,同样你可以用鼠标点击每一条记录,代码会马上自动跳转到错误处,你还可以用下面的命令来跳转:
其还有其他的命令/插件也会用到QuickFix窗口,但是用法基本上的都是类似的,本文后面还会用到QuickFix窗口,接着往下看吧. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
10.快速浏览和操作Buffer -- 插件: MiniBufExplorer | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
http://www.vim.org/scripts/script.php?script_id=159 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
6.3.2 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
将下载的 minibufexpl.vim文件丢到 ~/.vim/plugin 文件夹中即可 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
在minibufexpl.vim 文件的头部 |
在编程的时候不可能永远只编辑一个文件,你肯定会打开很多源文件进行编辑,如果每个文件都打开一个vim进行编辑的话那操作起来将是多麻烦啊,所以vim有buffer(缓冲区)的概念,可以看vim的帮助:
:help buffer
vim自带的buffer管理工具只有:ls,:bnext,:bdelete 等的命令,既不好用,又不直观. 现在隆重向你推荐一款vim插件(plugin): MiniBufExplorer
使用方法:
重新启动vim,当你只编辑一个buffer的时候MiniBufExplorer派不上用场,当你打开第二个buffer的时候,MiniBufExplorer窗口就自动弹出来了,见下图:
(--- 图13 ---)
上面那个狭长的窗口就是MiniBufExplorer窗口,其中列出了当前所有已经打开的buffer,当你把光标置于这个窗口时,有下面几个快捷键可以用:
<Tab> | 向前循环切换到每个buffer名上 |
<S-Tab> | 向后循环切换到每个buffer名上 |
<Enter> | 在打开光标所在的buffer |
d | 删除光标所在的buffer |
以下的两个功能需要在~/.vimrc中增加:
let g:miniBufExplMapCTabSwitchBufs = 1 |
<C-Tab> | 向前循环切换到每个buffer上,并在但前窗口打开 |
<C-S-Tab> | 向后循环切换到每个buffer上,并在但前窗口打开 |
如果在~/.vimrc中设置了下面这句:
let g:miniBufExplMapWindowNavVim = 1 |
C-w,h j k l 向"左,下,上,右"切换窗口.
在~/.vimrc中设置:
let g:miniBufExplMapWindowNavArrows = 1 |
下面介绍它的用法:
作为一个C程序员,日常Coding时在源文件与头文件间进行切换是再平常不过的事了,直接用vim打开其源/头文件其实也不是什么麻烦事,但是只用一个按键就切换过来了,这是多么贴心的功能啊....
安装好a.vim后有下面的几个命令可以用了:
:A | 在新Buffer中切换到c/h文件 |
:AS | 横向分割窗口并打开c/h文件 |
:AV | 纵向分割窗口并打开c/h文件 |
:AT | 新建一个标签页并打开c/h文件 |
我在~/.vimrc中增加了一句:
nnoremap <silent> <F12> :A<CR> |
下面介绍它的用法:
vim有自己的查找功能,但是跟shell中的grep比起来还是有些差距的,有时Coding正火急火燎的时候,真想按下F3,对光标所在的词来个全工程范围的grep,不用敲那些繁琐的命令,现在福音来了,跟我同样懒的人不在少数,在grep.vim脚本的前部可以找到一些说明文档:
:Grep | 按照指定的规则在指定的文件中查找 |
:Rgrep | 同上,但是是递归的grep |
:GrepBuffer | 在所有打开的缓冲区中查找 |
:Bgrep | 同上 |
:GrepArgs | 在vim的argument filenames (:args)中查找 |
:Fgrep | 运行fgrep |
:Rfgrep | 运行递归的fgrep |
:Egrep | 运行egrep |
:Regrep | 运行递归的egrep |
:Agrep | 运行agrep |
:Ragrep | 运行递归的agrep |
上面的命令是类似这样调用的:
:Grep [<grep_options>] [<search_pattern> [<file_name(s)>]] |
:Rgrep [<grep_options>] [<search_pattern> [<file_name(s)>]] |
:Fgrep [<grep_options>] [<search_pattern> [<file_name(s)>]] |
:Rfgrep [<grep_options>] [<search_pattern> [<file_name(s)>]] |
:Egrep [<grep_options>] [<search_pattern> [<file_name(s)>]] |
:Regrep [<grep_options>] [<search_pattern> [<file_name(s)>]] |
:Agrep [<grep_options>] [<search_pattern> [<file_name(s)>]] |
:Ragrep [<grep_options>] [<search_pattern> [<file_name(s)>]] |
:GrepBuffer [<grep_options>] [<search_pattern>] |
:Bgrep [<grep_options>] [<search_pattern>] |
:GrepArgs [<grep_options>] [<search_pattern>] |
但是我从来都不用敲上面那些命令的^_^,因为我在~/.vimrc中增加了下面这句:
nnoremap <silent> <F3> :Grep<CR> |
(--- 图14 ---)
在最下面的命令行会显示:
Search for pattern: FEAT_QUICKFIX |
Search for pattern: /<FEAT_QUICKFIX/> |
(--- 图15 ---)
在最下面的命令行会显示:
Search in files: * |
Search in files: *.c *.h |
(--- 图16 ---)
其实还有一些其他功能和设置,但是我都没有用过,这些功能再加上正则表达式,已经够我用了,其他的你可以在网页上看看它的文档,如果有什么惊人发现记得跟我互通有无,共同进步哦....
下面介绍它的用法:
vim也和其他编辑器一样有"书签"概念,在vim中叫"Mark",可以用下面的命令查看相关说明:
:help Mark |
我下面要介绍的Visual Mark插件跟vim中的"Mark"没有什么关系,并不是使其可见,而是自己本身就是"可见的书签",接着往下看就明白了,用作者的话说就是"类似UltraEdit中的书签".
另外,网上也有使vim中的Mark可见的插件,但是我试了一下,好像没Visual Mark好用,我就不介绍了.
按照上面的方法安装好Visual Mark后,你什么也不用设置,如果是gvim,直接在代码上按下Ctrl+F2,如果是vim,用"mm",怎么样,发现光标所在的行变高亮了吧,见下图:
(--- 图17 ---)
如果你设置了多个书签,你可以用F2键正向在期间切换,用Shift+F2反向在期间切换.
好了,我Visual Mark介绍完了,够简单吧^_^.
如果你嫌书签的颜色不好看,你还可以自己定义,不过是修改这个插件脚本的的源码,在目录~/.vim/plugin/中找到并打开visualmark.vim,找到下面这段代码:
if &bg == "dark"// 根据你的背景色风格来设置不同的书签颜色 highlight SignColor ctermfg=white ctermbg=blue guifg=wheatguibg=peru else// 主要就是修改guibg的值来设置书签的颜色 highlight SignColor ctermbg=white ctermfg=blueguibg=grey guifg=RoyalBlue3 endif |
我还有几个不满意的地方:
1 这个书签不能自动保存,关闭vim就没了.
2 切换书签时不能在不同文件间切换,只能在同一个文件中切换
如果哪位朋友能解决这两个问题,请一定要告诉寡人啊....还是用下面的地址:
14.自动补全 | ||||||||||||||||||||||||||||||||||||
用过Microsoft Visual Studio的朋友一定知道代码补全功能,输入一个对象名后再输入"."或者"->",则其成员名都可以列出来,使Coding流畅了许多,实现很多懒人的梦想,现在我要告诉你,这不再是Microsoft Visual Studio的专利了,vim也可以做到! 下面由我来教你,该功能要tags文件的支持,并且是ctags 5.6版本,可以看看前文介绍tags文件的章节. 我这里要介绍的功能叫"new-omni-completion(全能补全)",你可以用下面的命令看看介绍:
你还需要在~/.vimrc文件中增加下面两句:
请确定你的Ctags 5.6已经安装好,并且生成的tags文件已经可以用了,那么我们就要抄家伙开搞了. 用vim打开源文件
然后按下"Ctrl+X Ctrl+O",此时会弹出一个下列菜单,显示所有匹配的标签,如下图: (--- 图18 ---) 此时有一些快捷键可以用:
如果你增加了一些成员变量,全能补全还不能马上将新成员补全,需要你重新生成一下tags文件,但是你不用重启vim,只是重新生成一下tags文件就行了,这时全能补全已经可以自动补全了,还真够"全能"吧. vim中的其他补全方式还有:
|
||||||||||||||||||||||||||||||||||||
15.加速你的补全 -- 插件: SuperTab | ||||||||||||||||||||||||||||||||||||
http://www.vim.org/scripts/script.php?script_id=1643 | ||||||||||||||||||||||||||||||||||||
0.43 | ||||||||||||||||||||||||||||||||||||
把supertab.vim 文件丢到 ~/.vim/plugin 文件夹就好了 | ||||||||||||||||||||||||||||||||||||
supertab.vim 文件头部,和命令 ":SuperTabHelp" |
在上面一节中你应该学会了自动补全代码的功能,按下"Ctrl+X Ctrl+O"就搞定了,如果你够懒的话肯定会说"这么麻烦啊,居然要按四个键",不必为此自责,因为Gergely Kontra 和 Eric Van Dewoestine也跟你差不多,只不过人家开发了supertab.vim这个插件,可以永远懒下去了,下面我来教你偷懒吧.
在你的~/.vimrc文件中加上这两句:
let g:SuperTabRetainCompletionType=2 let g:SuperTabDefaultCompletionType="<C-X><C-O>" |
我稍微再介绍一下上面那两句配置信息:
let g:SuperTabDefaultCompletionType="<C-X><C-O>" " 设置按下<Tab>后默认的补全方式,默认是<C-P>, " 现在改为<C-X><C-O>. 关于<C-P>的补全方式, " 还有其他的补全方式,你可以看看下面的一些帮助: " :help ins-completion " :help compl-omni |
let g:SuperTabRetainCompletionType=2 " 0 - 不记录上次的补全方式 " 1 - 记住上次的补全方式,直到用其他的补全命令改变它 " 2 - 记住上次的补全方式,直到按ESC退出插入模式为止 |
问题:
但是现在我的<Tab>键不好用了,我以前爱用<Tab>进行缩进,如果前面有字符按下<Tab>键后就会进行补全,而不是我想要的缩进功能,不知道有没有快捷键可以暂时关闭和激活SuperTab键的功能. 如果哪位朋友知道,请一定记得告诉我啊....还是用下面的地址:
: http://blog.csdn.net/wooin |
vim的作者开发了这么个强大,好用的编辑器,并且是完全开源,完全免费的,不知道比尔盖子会不会觉得这个人真是不可理喻. 作者对用户用户的唯一期望就是帮助乌干达的儿童,可以用命令:hlep kcc查看详细的内容,
1、捐助一个读小学的孩子:每月 17 欧元 (或更多)。
2、捐助一个读中学的孩子:每月 25 欧元 (或更多)。
3、捐助诊所:每月或每季度,数额不限。
4、一次性捐赠。
有条件的就资助一下,没条件的就像我一样帮助宣传一下吧,这也算是开源精神.....
======================================
多谢各位兄弟捧场,网页上图片显示的问题已经搞定了,可能过阵子有空了还会对本文进行升级,主要是增加一些新插件的使用介绍,如果大家有好用的插件也可以推荐给我.
不知道哪儿有空间可以将该文上传供大家下载,免得邮件麻烦.
==================
回复大家:
deathmual@gmail.com 发表于2007-10-31 11:55:36 IP: 192.168.3.*
收一份先,谢谢了,在这里看不到图片,可能是公司的网络问题。
------------------
不好意思,我文章的问题,我已经改好了,可以看到图片了
duyanning 发表于2007-10-31 12:02:19 IP: 202.117.10.*
IDE?
能在vim中调试程序吗?
本文介绍的暂时还不行,但是有一些插件可以支持gdb,我试了一下不怎么好用,
我会继续关注的.
dlwxn 发表于2007-11-01 10:33:48 IP: 211.143.246.*
还有你前面的超链接错误。
本文会教你:
1. 中文帮助手册的安装
2. vim编程常用命令
file:///C:/Documents%20and%20Settings/Administrator/桌面/programming_with_gvim_05.tar/programming_with_gvim_05/programming_with_gvim.html#2
是的,我晚点抽空改一下,没想到问题这么多...大家先将就看吧,抱歉^_^
lbaby 发表于2007-11-01 10:34:47 IP: 222.128.6.*
弱弱的问一句:为啥版权是归你和你老婆 所有?
我可以肯定的是,这块好铁是你打出来的。
-----------------
我老婆太可爱了嘛^_^
(编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!