手把手教你把vim改造成IDE
手把手教你把Vim改装成一个IDE编程环境
手把手教你把Vim改装成一个IDE编程环境(图文)Email: lazy.fox.wu#Homepage: /wooinLinux下编程一直被诟病的一点是: 没有一个好用的IDE, 但是听说Linux牛人, 黑客之类的也都不用IDE. 但是对我等从Windows平台转移过来的Coder来说, 一个好用的IDE是何等的重要啊, 估计很多人就是卡在这个门槛上了, "工欲善其事, 必先利其器"嘛, 我想如果有一个很好用的IDE, 那些Linux牛人也会欢迎的. 这都是劳动人民的美好愿望罢了, 我今天教大家把gvim改装成一个简易IDE, 说它"简易"是界面上看起来"简易", 但功能绝对不比一个好的IDE差, 该有的功能都有, 不该有的功能也有, 你就自己没事偷着乐吧, 下面我开始介绍今天的工作了.本文会教你:1. 中文帮助手册的安装2. vim编程常用命令3. 语法高亮4. 在程序中跳来跳去: Ctags 的使用5. 教你高效地浏览源码-- 插件: TagList6. 文件浏览器和窗口管理器-- 插件: WinManager7. Cscope 的使用8. QuickFix 窗口9. 快速浏览和操作Buffer -- 插件: MiniBufExplorer10. c/h文件间相互切换-- 插件: A11. 在工程中查找-- 插件: Grep12. 高亮的书签-- 插件: VisualMark13. 自动补全14. 加速你的补全-- 插件: SuperTab本文不会教你:1. 如何使用vim. 本文不会从零开始教你如何使用vim, 如果你是第一次接触vim,建议你先看看其他的vim入门的教程, 或者在shell下输入命令: vimtutor,这是一个简单的入门教程.2. 编程技巧.3. vim脚本的编写.我的工作环境是: Fedora Core 5gvim是自己编译的7.0, 如果你还没有安装gvim, 请看我的这篇文章<在Redhat Linux 9中编译和配置gvim 7.0>由于本人一直从事C语言工作, 所以下面这些例子都是在C语言程序中演示的, 其他语言的没有试过, 如果有朋友在别的语言下有问题, 可以跟我讨论一些, 我会尽量帮助你们的.本文用的示范源码是vim7.1的源码, 可以在下载到源码包:vim-7.1.tar.bz2, 你也可以不用下载, 就用你自己程序的源码, 关系不大的. 我把源码解压在我的home目录下: ~/vim71下面对文中的一些名字定义一下:1. 文中用到的一些用<>括起来的符号比如<C-T>, <C-S-A>, 之类的, 你可以用下面的命令看看解释::help keycodes2. 文中说的一些路径, 比如:~/.vim/plugin~/.vim/doc~/.vim/syntax如果你没有, 就自己创建.3. 文中说到的.vimrc文件都是指~/.vimrc先给大家看张图片, 我是vim的界面, 解解馋先^_^vim自带的帮助手册是英文的, 对平时编程的人来说没有多大阅读困难, 何况还有"星级译王"呢, 可偏偏有一帮人将其翻译成了中文, 可偏偏我又挡不住诱惑将它安装了, 唉.......又痛失一个学习英文的好机会, 下不为例.大家看看我的中文帮助界面吧:建议先看看帮助手册中的下面章节, 其中有关tags文件的部分你可以先跳过, 在后面的章节中会讲到, 到时候你在回来看看, 就觉得很简单了::help usr_29:help usr_30写程序没有语法高亮将是一件多么痛苦的事情啊, 幸亏vim的作者是个程序员(如果不是, 那可NB大了), 提供了语法高亮功能, 在上面的图片中大家也可以看到那些注释, 关键字, 字符串等, 都用不同颜色显示出来了, 要做到这样, 首先要在你的~/.vimrc 文件中增加下面几句话:syntax enablesyntax on再重新启动vim, 并打开一个c程序文件, 是不是觉得眼前突然色彩缤纷了起来...如果你不喜欢这个配色方案你可以在"编辑->配色方案"(gvim)中选择一个你满意的配色方案, 然后在~/.vimrc文件中增加下面这句:desert是我喜欢的配色方案, 你可以改成你的. 如果菜单中的配色方案你还不满意(你也太花了吧), 没关系, 在 上跟你一样的人很多, 他们做了各种各样的颜色主题, 你可以下载下来一个一个的试, 多地可以看到你眼花. 如果这样你还不满意(你还真是XXXX), 没关系, vim的作者早想到会有你这种人了, 你可以创建你自己的颜色主题, 把下面的这篇文档好好学习一些一下吧:更炫的语法高亮:你可能会发现很多东西没有高亮起来, 比如运算符号, 各种括号, 函数名, 自定义类型等, 但是看上面的图片, 我的运算符号和函数名都加亮了^_^, 想知道为什么吗? 哇哈哈哈哈.... 让我来教你吧 ...主要的思路是新建一个语法文件, 在文件中定义你要高亮的东东, 想高亮什么就高亮什么, 用vim就是这么自信. 所谓的语法文件就是vim用来高亮各种源文件的一个脚本, vim靠这个脚本的描述来使文件中的不同文本显示不同的颜色, 比如C语言的语法文件放在类似于这样的一个路径中:/usr/share/vim/vim64/syntax/c.vim其他语言的语法文件也可以在这个路径中找到, 你的也许不在这个路径中, 不管它, 在你自己的HOME下新建一个语法文件, 新建一个空文件:~/.vim/syntax/c.vim在其中加入"========================================================" Highlight All Function"========================================================syn match cFunction "\<[a-zA-Z_][a-zA-Z_0-9]*\>[^()]*)("me=e-2syn match cFunction "\<[a-zA-Z_][a-zA-Z_0-9]*\>\s*("me=e-1hi cFunction gui=NONE guifg=#B5A1FF"========================================================" Highlight All Math Operator"========================================================" C math operatorssyn match cMathOperator display"[-+\*/%=]"" C pointer operatorssyn match cPointerOperator display"->\|\."" C logical operators - boolean resultssyn match cLogicalOperator display"[!<>]=\="syn match cLogicalOperator display"=="" C bit operatorssyn match cBinaryOperator display"\(&\||\|\^\|<<\|>>\)=\="syn match cBinaryOperator display"\~"syn match cBinaryOperatorError display"\~="" More C logical operators - highlight in preference to binarysyn match cLogicalOperator display"&&\|||"syn match cLogicalOperatorError display"\(&&\|||\)="" Math Operatorhi cMathOperator guifg=#3EFFE2hi cPointerOperator guifg=#3EFFE2hi cLogicalOperator guifg=#3EFFE2hi cBinaryOperator guifg=#3EFFE2hi cBinaryOperatorError guifg=#3EFFE2hi cLogicalOperator guifg=#3EFFE2hi cLogicalOperatorError guifg=#3EFFE2再打开你的C文件看看, 是不是又明亮了许多. 还有一个压箱底的要告诉你, 如果你自己增加了一个类型或者结构之类的, 怎么让它也象"int", "void"这样高亮起来呢? 再在上面的文件~/.vim/syntax/c.vim中添加下面的东东:这样你自己的类型My_Type_1, My_Type_2, My_Type_3就也可以向"int"一样高亮起来了, 这样的缺点是每增加一个类型, 就要手动在这里添加一下, 如果有人知道更简单的方法请一定一定要告诉我, 用下面的地址:哇, 这下可厉害了, Tag文件(标签文件)可是程序员的看家宝呀, 你可以不用它, 但你不能不知道它, 因为Linux内核源码都提供了"make tags"这个选项. 下面我们就来介绍Tag文件.tags文件是由ctags程序产生的一个索引文件, ctags程序其是叫"Exuberant Ctags", 是Unix上面ctags程序的替代品, 并且比它功能强大, 是大多数Linux发行版上默认的ctags程序. 那么tags文件是做什么用的呢? 如果你在读程序时看了一个函数调用, 或者一个变量, 或者一个宏等等, 你想知道它们的定义在哪儿, 怎么办呢? 用grep? 那会搜出很多不相干的地方. 现在流行用是的<C-]>, 谁用谁知道呀, 当光标在某个函数或变量上时, 按下"Ctrl+]", 光标会自动跳转到其定义处, 够厉害吧, 你不用再羡慕Visual Studio的程序员了, 开始羡慕我吧~_~.你现在先别急着去按<C-]>, 你按没用的, 要不要我干什么呀, 你现在要做的是查查你电脑里有没有ctags这个程序, 如果有, 是什么版本的, 如果是Ctags 5.5.4, 就象我一样, 你最好去装一个Ctags 5.6, 这个在后面的自动补全章节中会用到. 在这个网站: , 下载一个类似ctags-5.6.tar.gz 的文件下来(现在好像5.7版的也出来了, 不过我还没用过):用下面的命令解压安装:然后去你的源码目录, 如果你的源码是多层的目录, 就去最上层的目录, 在该目录下运行命令: ctags -R我现在以vim71 的源码目录做演示此时在/home/wooin/vim71目录下会生成一个tags 文件, 现在用vim打开/home/wooin/vim71/src/main.c再在vim中运行命令:该命令将tags文件加入到vim中来, 你也可以将这句话放到~/.vimrc中去, 如果你经常在这个工程编程的话.下面要开始真刀实枪的开干了, 如下图, 将光标放在setmouse()函数上(--- 图3 ---)此时按下<C-]>, 光标会自动跳到setmouse()函数的定义处, 见下图:(--- 图4 ---)如果此时你还想再跳回刚才的位置, 你还可以按<C-T>, 这样又跳回到setmouse()函数被调用的地方了, 变量, 结构, 宏, 等等, 都可以的, 赶快试试吧.....此时在回头学习一下第3节中说的vim手册吧:help usr_29不过还有一个小瑕疵, 你修改程序后, 比如增加了函数定义, 删除了变量定义, tags文件不能自动rebuild, 你必须手动再运行一下命令:使tags文件更新一下, 不过让人感到欣慰的是vim不用重新启动, 正在编写的程序也不用退出, 马上就可以又正确使用<C-]>和<C-T>了. 如果有人知道更简单的方法请一定一定要告诉我, 用下面的地址:在Windows平台上用过Source Insight看程序的人肯定很熟悉代码窗口左边那个Symbol窗口, 那里面列出了当前文件中的所有宏, 全局变量, 函数名等, 在查看代码时用这个窗口总揽全局, 切换位置相当方便, 今天告诉你一个vim的插件: Taglist, 可以同样实现这个功能.上一节已经告诉你ctags的用法了, ctags的基本原理是将程序程序中的一些关键字(比如:函数名, 变量名等)的名字, 位置等信息通过一个窗口告诉你, 如果你已经安装好taglist, 则可以用下面的命令看看taglist自带的帮助文件:下面是我翻译的其中的第一段"Overview", 供大家现了解一下taglist, 翻译的不好, 请指教:"Tab List"是一个用来浏览源代码的Vim插件, 这个插件可以让你高效地浏览各种不同语言编写的的源代码, "Tag List"有以下一些特点:* 在Vim的一个垂直或水平的分割窗口中显示一个文件中定义的tags(函数, 类, 结构,变量, 等)* 在GUI Vim中, 可以选择把tags显示在下拉菜单和弹出菜单中* 当你在多个源文件/缓冲区间切换时, taglist窗口会自动进行相应地更新.当你打开新文件时, 新文件中定义的tags会被添加到已经存在的文件列表中,并且所有文件中定义的tags会以文件名来分组显示* 当你在taglist窗口中选中一个tag名时, 源文件中的光标会自动跳转到该tag的定义处* 自动高亮当前的tag名* 按类型分组各tag, 并且将各组显示在一个可折叠的树形结构中* 可以显示tag的原始类型和作用域* 在taglist窗口可选择显示tag的原始类型替代tag名* tag列表可以按照tag名, 或者时间进行排序* 支持以下语言的源文件: Assembly, ASP, Awk, Beta, C,C++, C#, Cobol, Eiffel, Erlang, Fortran, HTML, Java, Javascript, Lisp,Lua, Make, Pascal, Perl, PHP, Python, Rexx, Ruby, Scheme, Shell, Slang,SML, Sql, TCL, Verilog, Vim and Yacc.* 可以很简单的扩展支持新的语言. 对新语言支持的修改也很简单.* 提供了一些函数, 可以用来在Vim的状态栏或者在窗口的标题栏显示当前的tag名* taglist中的文件和tags的列表可以在被保存和在vim会话间加载* 提供了一些用来取得tag名和原始类型的命令* 在控制台vim和GUI vim中都可以使用* 可以和winmanager插件一起使用. winmanager插件可以让你同时使用文件浏览器, 缓冲区浏览器和taglist插件, 就像一个IDE一样.* 可以在Unix和MS-Windows系统中使用首先请先在你的~/.vimrc文件中添加下面两句:let Tlist_Show_One_File=1let Tlist_Exit_OnlyWindow=1此时用vim打开一个c源文件试试:进入vim后用下面的命令打开taglist窗口, 如图5:(--- 图5 ---)左边的窗口就是前面介绍的TagList窗口, 其中列出了main.c文件中的tag, 并且按照"typedef", "variable", "function"等进行了分类. 将光标移到VimMain上, 如图中左边红色的方框, 按下回车后, 源程序会自动跳转到VimMain的定义处, 如图中右边的红色方框. 这就是TagList最基本也是最常用的操作. 再教你一个常用的操作, 你在浏览TagList窗口时, 如果还不想让源码跳转, 但是想看看tag在源码中完整的表达, 可以将光标移到你想要看的tag上, 如图中上边黄色的方框, 然后按下空格键, 在下面的命令栏中, 如图下边黄色的方框, 会显示该tag在源码中完整的写法, 而不会跳转到源码处.TagList插件我就介绍到这里, 其实它还有很多用法和设置, 我没法一一地教你了, 好在TagList有一份详细的帮助手册, 用下面的命令打开手册, 好好学习一下吧::help taglist.txt在图1中大家可以看到在图标2标识的地方是一个文件浏览器, 里面列出了当前目录中的文件, 可以通过这个浏览器来浏览工程中的源文件, 是不是越来越像常见的IDE了, 当光标停在某个文件或文件夹的时候, 按下回车, 可以打开该文件或文件夹.这个东东是怎么调出来的呢? 其实这个也是由插件实现的, 这个插件是netrw.vim, 只不过你不用下载和安装, 这个插件已经是标准的vim插件, 已经随vim一起安装进你的系统里了, 现在先简单演示一下, 进入"~/vim71"文件夹后运行vim, 然后在vim中运行命令::e ~/vim71你将在vim看到如下图所示的界面:(--- 图6 ---)我这里不是教你怎么用netrw.vim插件, 而是要教你通过WinManager插件来将TagList窗口和netrw窗口整合起来, 就像图1中的图标2和3组成的那个效果现在在你的~/.vimrc中增加下面两句let g:winManagerWindowLayout='FileExplorer|TagList'nmap wm :WMToggle<cr>然后重启vim, 打开~/vim71/src/main.c, 在normal状态下输入"wm", 你将看到图7的样子:(--- 图7 ---)其中左上边是netrw窗口, 左下边是TagList窗口, 当再次输入"wm"命令时这两个窗口又关闭了.WinManager的功能主要就是我介绍的这些, 但是它还有其他一些高级功能, 还可以支持其他几个插件, 如果你觉得我介绍的还不够你用, 建议你把它的帮助手册好好研究一下, 用下面的命令可以调出帮助手册:这下更厉害了, 用Cscope自己的话说- "你可以把它当做是超过频的ctags", 其功能和强大程度可见一斑吧, 关于它的介绍我就不详细说了, 如果你安装好了前文介绍的中文帮助手册, 用下面的命令看看介绍吧:我在这里简单摘抄一点, 供还在犹豫的朋友看看:Cscope 是一个交互式的屏幕下使用的工具,用来帮助你:* 无须在厚厚的程序清单中翻来翻去就可以认识一个C 程序的工作原理。
VI基本配置
if getline('.')[col('.') - 1] == a:char
return "/<Right>"
else
return a:char
endif
endf
下载tabbar.vim 插件,将其拷贝到/usr/share/vim/vim72/plugin/ 目录下。
sp file.xxx
注意: 在打开新文件时,光标一定要处在主编辑界面中,这样才能保证标签的位置的位置合适。
关闭标签页使用:bd file.xxx
6. a.vim插件安装
下载tabbar.vim 插件,将其拷贝到/usr/share/vim/vim72/plugin/ 目录下。
E.g. if you are editing foo.c and need to edit foo.h simply execute :A and
设置C/C++ 语言的具体缩进方式(以我的windows 风格为例):
set cinoptions={0,1s,t0,n-2,p2s,(03s,=.5s,>1s,=1s,:1s
如果想在左侧显示文本的行号,可以用以下语句:
set nu
最后,如果没有下列语句,就加上吧:
:inoremap } <c-r>=ClosePair('}')<CR>
:inoremap [ []<ESC>i
:inoremap ] <c-r>=ClosePair(']')<CR>
windows下 VIM安装配置,打造PHP IDE开发工具
set incsearch " 输入搜索内容时就显示搜索结果
set hlsearch " 搜索时高亮显示被找到的文本
set noerrorbells " 关闭错误信息响铃
"NERDTree
map <F8> :NERDTreeToggle<CR>
"基本设置
set nocompatible " 关闭 vi 兼容模式
syntax on " 自动语法高亮
colorscheme zmrok " 设定配色方案
和这三个一样的文件夹。不同系统目录位置不同。我的fedora是/usr/share/vim/vimfiles
"Tlist
let Tlist_Show_One_File=1
let Tlist_Exit_OnlyWindow=1
map <F12> ::TlistToggle<CR>
let NERDTreeWinPos = "right" "where NERD tree window is placed on the screen
:inoremap } <c-r>=ClosePair('}')<CR>
:inoremap [ []<ESC>i
:inoremap ] <c-r>=ClosePair(']')<CR>
:inoremap < <><ESC>i
ide使用方法
ide使用方法
1.安装IDE:首先,需要下载并安装适合你的操作系统的 IDE(集成开发环境)软件,如Eclipse、IntelliJ IDEA或Visual Studio 等。
2. 创建项目:打开IDE并创建一个新的项目。
在创建项目时,首先需要选择项目类型和语言。
通常,IDE会自动设置项目的文件结构和目录。
3. 编写代码:在创建项目并配置好环境后,可以开始编写代码了。
IDE通常会提供代码自动补全、语法高亮等功能,使编写代码更加方便。
4. 调试代码:IDE还提供了调试功能,可以帮助你找到代码中的错误。
通过设置断点和逐步执行代码,可以检查程序的执行过程。
5. 版本控制:IDE也可以用于代码版本控制。
通过将代码仓库链接到IDE中,可以轻松地管理代码版本,并与其他开发者协作开发。
6. 部署项目:最后,可以使用IDE帮助你打包、构建和部署你的项目。
这些功能可以帮助你将程序发布到生产环境中。
总之,IDE是程序员日常开发的重要工具之一。
熟练掌握IDE的使用方法,可以提高开发效率和代码质量。
- 1 -。
Linux系统安装和配置Vim IDE的全过程详解
Linux系统安装和配置Vim IDE的全过程详解来源:U大侠时间:2015-09-01众所周知,在Linux系统中想要高效地编辑文本或者是代码,都要用到一些编辑器,比如Vim IDE就是一款好用的编辑器。
但是很多用户不知道如何安装或是使用它,下面,U大侠小编就给大家介绍Linux系统安装和配置Vim IDE的全过程详解。
Linux系统Vim的配置功能1. 安装Vim安装的话,在 Linux 下是很简单的,打开终端,输入几条命令就可以完成了。
sudo apt-get install vimsudo apt-get install gvimsudo apt-get install git(这个很重要,到后面下载插件的时候要用 git 来下载)这是第一条命令,这里说我已经安装好了,不必安装。
装好以后在终端直接输入 vim 或 git 或 gvim 就可以知道有没有装好了。
还可一使用 aptitude 来安装,在使用 aptitude 来安装之前要先安装 aptitudesudo aptitude install vimsudo aptitude install gvimsudo aptitude install git然后,在用户的主目录中建立 .vim 目录,在 .vim 目录中建立 bundle 目录,以后V undle自动下载的插件都保存在这里。
vundle可以自动下载和安装插件,只需要在“My Bundles Here”注释后面使用 Bundl e 命令把所需要的插件列出来,每个插件一行,然后运行:BundleInstall 命令即可。
Vu ndle支持 和Vim的官网 。
mkdir .vim/bundle然后,进入 Bundle 目录,使用 git clone 命令下载vundle。
git clone https:///gmarik/vundle.git ~/.vim/bundle/vundle执行下载完成的话就可以在 bundle 下看到 vundle 目录了。
VIM高级配置方法
用Gvim建立IDE编程环境(Windows篇)说明:本文是作者在完全按照着名的《手把手教你把Vim改装成一个IDE编程环境》一文,在Windows XP上用gvim建立IDE环境时所作的备忘。
2007/10/31/。
0.准备软件及插件。
(a)(b)1.7.0(c)(d)(e) 地址htt(f)(g)(h)(i)1.安装。
运行,选择完全安装(Full),我的安装目录是默认的C:\Program Files\Vim。
安装完成后,包括了文件夹vim72和文件夹vimfiles,以及脚本_vimrc。
2.安装中文帮助手册。
运行1.7.0,它会自动找到gvim的安装位置。
安装完毕后重新打开gvim,:help时帮助手册已经是中文的了。
进行到这一步时,我的gvim菜单处的中文出现了乱码。
在网上寻找解决方案,将C:\Program Files\Vim\vim72下名为lang的文件夹删去,使菜单语言变为英语。
3.语法高亮。
首先,编辑_vimrc文件加入以下内容:set nu!colorscheme desertsyntax enablesyntax on这些设置使得gvim可以显示行号,并使用了desert配色方案,而且打开了语法高亮功能(用不同颜色显示注释、关键字、字符串等)。
我们还可以让函数名也高亮起来,在C:\Program Files\Vim\vim72\syntax下找到和,分别添加以下内容:syn match cFunction "\<[a-zA-Z_][a-zA-Z_0-9]*\>[^()]*)("me=e-2syn match cFunction "\<[a-zA-Z_][a-zA-Z_0-9]*\>\s*("me=e-1hi cFunction gui=NONE guifg=#B5A1FF重新打开gvim,效果如下:4.程序中跳转。
将Vim改造为强大的IDE—Vim集成Ctags-Taglist-Cscope-Winmanager-NERDTree-OmniCppComplete(有图有真相)
1、安装Vim和Vim基本插件首先安装好Vim和Vim的基本插件。
这些使用apt-get安装即可:lingd@ubuntu:~/arm$sudo apt-get install vim vim-scripts vim-doc其中vim-scripts是vim的一些基本插件,包括语法高亮的支持、缩进等等。
vim中文帮助文档tar包下载地址:/projects/vimcdoc/files/vimcdoc/解压后其中有个doc文件夹, 将其中的内容全部复制到~/.vim/doc, 或者vim安装目录下的doc目录中, 此时vim中的help信息已经是中文的了.网页版中文帮助文档网址/doc/help.html首页就时vim帮助文档的目录,阅读起来更方便有效、更有针对性!2、Vim配置文件Vim强大的功能,其来源基本上就两个地方:Vim插件以及Vim配置文件。
Vim本身的系统配置文件夹是在/usr/share/vim/和/etc/vim/两个文件夹下。
一般情况下,我们不会去改变这两个文件夹下的配置文件,而是在用户文件夹/home/user(其中,user为用户名,我的用户名是lingd)下建立自己的配置文件。
进入用户文件夹(/home/user/)之后,用gedit新建一个名叫.vimrc的文件:lingd@ubuntu:~/arm$ cd ~lingd@ubuntu:~$ gedit .vimrc注:使用gedit主要是为了方便大段大段的文字粘贴!然后把下面的文字拷贝进这个文件之后保存:" This line should not be removed as it ensures that various options are" properly set to work with the Vim-related packages available in Debian.debian.vim" Uncomment the next line to make Vim more Vi-compatible" NOTE: debian.vim sets 'nocompatible'. Setting 'compatible' changes numerous " options, so any other options should be set AFTER setting 'compatible'.set nocompatible" Vim5 and later versions support syntax highlighting. Uncommenting the" following enables syntax highlighting by default.if has("syntax")syntax on " 语法高亮endifcolorscheme ron " elflord ron peachpuff default 设置配色方案,vim自带的配色方案保存在/usr/share/vim/vim72/colors目录下" detect file typefiletype onfiletype plugin on" If using a dark background within the editing area and syntax highlighting" turn on this option as wellset background=dark" Uncomment the following to have Vim jump to the last position when" reopening a fileif has("autocmd")au BufReadPost * if line("'\"") > 1 && line("'\"") <= line("$") | exe "normal! g'\"" | endif"have Vim load indentation rules and plugins according to the detected filetype filetype plugin indent onendif" The following are commented out as they cause vim to behave a lot" differently from regular Vi. They are highly recommended though."set ignorecase " 搜索模式里忽略大小写"set smartcase " 如果搜索模式包含大写字符,不使用'ignorecase' 选项。
《使用vundle管理vim插件构造ide环境》
《使用vundle管理vim插件构造ide环境》使用vundle管理vim插件,构造ide环境1.安装vim2.安装git3.安装vundle$gitclones://github/gmarik/vundle.git~/.vim/bundle/vundle4.在~/.vimrc中配置插件\\\显示相关\\syntaxon\高亮光标所在行\setshortmess=ati\启动的时候不显示那个援助乌干达儿童的提示setgo=\不要图形按钮\设置背景主题\设置背景主题\设置字体\用浅色高亮当前行\用浅色高亮当前行setruler\显示标尺\输入的命令显示出来,看的清楚些setnopatible\去掉讨厌的有关vi一致性模式,避免以前版本的一些bug和局限\自动缩进setautoindentsetcindent\键的宽度\\统一缩进为4\\\不要用空格代替制表符\\在行和段开始处使用制表符\\显示行号setnumber\高亮显示当前行/列\\\高亮显示搜索结果\\历史记录数\\搜索逐字符高亮\\\语言设置\\\总是显示状态行\\侦测文件类型filetypeon\载入文件类型插件filetypepluginon\为特定文件类型载入相关缩进文件filetypeindenton\保存全局变量\\带有如下符号的单词不要被换行分割\\字符间插入的像素行数目\\\可以在buffer的任何地方使用鼠标(类似office中在工作区双击鼠标定位)setmouse=asetselection=exclusivesetselectmode=mouse,key\setrtp+=~/.vim/bundle/vundle/callvundle#rc\\bundle'gmarik/vundle'\bundle'taglist.vim'\\默认打开taglistlettlist_auto_open=0lettlist_ctags_cmd='/usr/bin/ctags'lettlist_show_one_file=1\不同时显示多个文件的tag,只显示当前文件的lettlist_winwidt=28\设置taglist的宽度lettlist_file_fold_auto_close=1lettlist_exit_onlywindow=1\如果taglist窗口是最后一个窗口,则退出vimlettlist_use_right_window=1\在右侧窗口中显示taglist窗口nmaptl:tlistbundle'scrooloose/nerdtree'\letnerdtreewinpos='left'letnerdtreewi nsize=25map:nerdtreetoggle\当打开vim且没有文件时自动打开nerdtreeautocmdvimenter*if。
把vi打造成IDE
Vim笔记]将vim打造成IDE2012-05-13 12:47:25| 分类:Vim|字号订阅1. 字体,色彩背景设置$ vi ~/.vimrc" set font and colorif has("gui_running")set guifont=Courier\ 10\ Pitch\ 12"set gfw=幼圆:h12:cGB2312colorscheme koehlerendif2. ctags查询变量、函数的定义$ pwd~/workspace/project1$ ctags -R在vim中:set tags=~/work/project1/tags,之后就可以通过C+]查询变量、函数的定义,在通过C+t回到原位。
在编程中,想直接查找并跳转到头文件的定义,使用$ ctags -I __THROW -I __attribute_pure__ -I __nonnull -I __attribute__ --file-scope=yes --langmap=c:+.h --languages=c,c++ --links=yes --c-kinds=+p --c++-kinds=+p --fields=+iaS --extra=+q -R -f ~/.vim/systags /usr/src/linux-headers-2.6.32-5-common/include/$ set tags+=~/.vim/systags3. taglist可以在左侧窗口,查看宏定义、变量、函数定义等。
点击左侧相应项目,按回车自动跳转到相应定义地方,如果只想查看定义信息,不想跳转,则按空格键。
在/scripts/script.php?script_id=273下载taglist_45.zip,并解压到~/vim目录下。
$ unzip -d ~/.vim$ vi ~/.vimrc" set Tlistlet Tlist_Show_One_File = 1let Tlist_Exit_OnlyWindow = 1let Tlist_Process_File_Always = 1 "实时更新在vi中,通过:Tlist打开。
vim工具的使用方法
vim工具的使用方法嗨,宝子!今天来唠唠vim这个超酷的工具呀。
vim刚打开的时候,你可能会有点懵。
它的界面看起来很简洁,但是功能超强大呢。
你进入vim后,就处在命令模式啦。
这时候你可以用各种快捷键来操作文件。
比如说,你想移动光标,h就是向左移动,j是向下,k向上,l向右,就像在玩一个简单的方向键游戏一样。
要是你想编辑文件内容,那得先进入插入模式。
按一下i键,就可以像在普通的文本编辑器里一样输入文字啦。
感觉就像打开了一扇通往编辑世界的小窗。
在插入模式下,你就尽情地码字吧。
当你编辑完一部分内容,想要保存文件了,这时候要先退回命令模式,按一下Esc键就好啦。
然后输入:w就可以保存文件啦。
如果想保存并且退出,那就输入:wq。
要是你不小心搞乱了文件,不想保存就退出,输入:q!就可以潇洒地离开,不带走一片云彩哦。
查找功能也很方便呢。
在命令模式下,输入/加上你要查找的内容,比如你想找“apple”这个单词,就输入/apple,然后按回车键,vim就会自动帮你找到这个单词在文件里的位置啦。
还有哦,如果你想复制粘贴内容。
在命令模式下,按yy就可以复制当前行,想粘贴的话就把光标移动到你要粘贴的地方,然后按p键,内容就乖乖地出现啦。
而且vim还有很多高级的功能。
比如说分屏显示。
你可以同时查看不同的文件或者文件的不同部分。
这就像是你可以一边看着菜谱,一边在厨房做菜一样方便。
不过这些高级功能可能需要你多花点时间去探索啦。
总的来说,vim一开始可能会让你觉得有点难上手,但是一旦你掌握了它的基本操作,就会发现它真的是一个超级高效、超级酷的文本编辑工具。
就像解锁了一个隐藏的宝藏,能让你在处理文本文件的时候如鱼得水呢。
宝子,快去试试吧。
vim工具的基本操作方法
vim工具的基本操作方法
Vim是一种强大的文本编辑器,具有广泛的功能和灵活的定制选项。
下面是Vim的基本操作方法:
1.启动Vim:在终端中输入vim命令,后跟要编辑的文件名,例如vim filename.txt。
2.模式切换:
●命令模式(Command Mode):启动Vim后的默认模式,用于执行命令和编辑
器操作。
按下Esc键即可进入命令模式。
●插入模式(Insert Mode):用于输入和编辑文本内容。
在命令模式下,按下i
键即可进入插入模式。
●可视模式(Visual Mode):用于选择文本块进行操作。
在命令模式下,按下v
键即可进入可视模式。
3.光标移动:
●使用方向键或h、j、k、l来分别向左、下、上、右移动光标。
●使用gg移动到文件的开头,使用G移动到文件的结尾。
●使用w向前一个词移动,使用b向后一个词移动。
●使用0移动到行首,使用$移动到行尾。
4.文本编辑:
●在命令模式下,使用dd删除整行,使用x删除光标所在位置的字符。
●使用yy复制整行,使用p粘贴复制的内容。
●使用u撤销上一步操作,使用Ctrl + r恢复被撤销的操作。
5.保存和退出:
●在命令模式下,使用:w保存文件。
●使用:q退出Vim。
若有未保存的修改,使用:q!强制退出。
●使用:wq保存文件并退出。
这些是Vim的基本操作方法,只是简要介绍了一些常用的功能。
Vim具有更多高级功能和命令,你可以通过查阅Vim的文档或教程来进一步学习和掌握。
neovim 用法 -回复
neovim 用法-回复"neovim 用法" - 一款高效便捷的编辑器介绍:Neovim是一个基于Vim的现代化编辑器,旨在提供高效便捷的编辑环境。
它继承了Vim的许多功能,并添加了一些新功能和改进。
本文将逐步介绍如何在Neovim中使用其特性和功能。
步骤一:安装Neovim首先,我们需要安装Neovim。
在Linux上,你可以使用包管理器,如apt、yum或pacman。
在macOS上,你可以使用Homebrew。
而在Windows 上,你可以从Neovim官方的GitHub页面下载预编译的二进制文件。
步骤二:启动Neovim一旦安装完成,你可以打开终端,并输入`nvim` 命令来启动Neovim。
步骤三:基本的编辑Neovim的编辑功能与Vim相似。
你可以打开一个文件,使用`:e<filename>` 命令。
例如,`:e main.py` 将打开一个名为main.py的文件。
在文件中,你可以使用i、a、o来进入插入模式,并开始编辑。
按下Esc键将返回普通模式。
如果想要保存文件的修改,可以使用`:w` 命令,而`:wq` 则会保存并退出。
步骤四:设置配置文件Neovim的配置文件被称为“init.vim”。
它类似于Vim的“~/.vimrc”文件,你可以在其中设置自定义的选项和快捷键绑定。
你可以使用`:e MYVIMRC` 命令来打开“init.vim”文件,并进行编辑。
步骤五:使用插件管理器Neovim支持各种插件,以增强编辑体验。
可以使用插件管理器来安装和管理插件,如vim-plug、Vundle和dein.vim。
以vim-plug为例,你可以在“init.vim”中添加以下代码:call plug#begin('~/.vim/plugged')" 在这里添加你的插件call plug#end()然后,使用`:PlugInstall`命令来安装插件。
将vim打造为强大的IDE
将vim打造为强大的IDEPS:文章最后是安装好之后的图前言:首先需要有 vim python2或3 git下载:sudo apt-get install xxx一.安装插件管理器vim-plug(亲测比vundle好用-个人观点)1.检查当前用户下是否有vim文件夹:~/.vim没有,自己创建: mkdir ~/.vim2.创建相应的文件夹(在~/.vim下创建):mkdir autoloadmkdir plugged //存放plug下载的.vim插件mkdir plugin //通用文件夹,存放自己网上下载的插件mkdir syntax //存放有关文本(比如c语言)语法相关的插件mkdir doc //存放说明文档3.安装vim-plug(即plug.vim)打开终端:cd autoload //进入autoload文件夹curl -fLo ~/.vim/autoload/plug.vim --create-dirs /junegunn/vim-plug/master/plug.vim此处说明:没有安装过curl的先下载安装curl,再执行上述命令sudo apt-get install curl4.安装好plug后,即可使用它安装管理其他插件。
方法:打开.vimrc配置文件: sudo vim ~/.vimrc添加配置内容:call plug#begin('~/.vim/plugged') //必须有"要安装/管理的插件"建议插件下载完成后再添加配置内容"当执行PlugIstall命令会执行当此处,去官网下载对应的插件,如: "Plug 'itchyny/lightline.vim'call plug#end() //必须有二.安装相关插件(建议先安装后配置)1.安装YouCompleteMe语法补全插件(难装的一pi...这个插件没有使用plug安装)1.1 先下载依赖:sudo apt-get install build-essentialsudo apt-get install cmakesudo apt-get install python3-dev1.2 下载安装YouCompleteMe(步骤)cd ~/.vimmkdir bundlecd bundlegit clone https:///Valloric/YouCompleteMe.gitcd YouCompleteMe //下载完成后才进入YCM的文件夹安装语言特性,相关语言特性自己百度./install.py --all //此为安装所有语言特性补充说明:执行上述命令后可能会出现一条git submodule update --init --recursive这是依赖的子目录,复制下来执行即可执行完成后重新执行./install.py --all安装语言特性2. 安装其他插件2.1 //打开~/.vimrc文件sudo vim ~/.vimrc2.2 //写入以下内容(安装插件)"====================================== ================set nocompatiblefiletype oncall plug#begin('~/.vim/plugged')" 撤销Plug 'mbbill/undotree'" C++语法高亮Plug 'octol/vim-cpp-enhanced-highlight'" 搜索引擎Plug 'mileszs/ack.vim'" 界面Plug 'mhinz/vim-startify'" 代码检测Plug 'w0rp/ale'"nerdtree 目录树Plug 'scrooloose/nerdtree'"优化vim界面"Plug 'vim-airline/vim-airline'" vim-scripts 的插件Plug 'majutsushi/tagbar'Plug 'Yggdroot/indentLine'Plug 'Raimondi/delimitMate'" 注释加空格Plug 'scrooloose/nerdcommenter'call plug#end()"====================================== ================2.3 wq保存退出后,命令行执行vim进入vim, 键入: PlugInstall 进行下载出现Done!即插件下载完成注意:若出现“不是编辑器的命令: PlugIstall”关闭终端再重新打开进入vim重新执行下载3. 下载搜索引擎curl -LO https:///BurntSushi/ripgrep/releases/download/0.10. 0/ripgrep_0.10.0_amd64.debsudo dpkg -i ripgrep_0.10.0_amd64.deb4. 都下载完成后进行配置(~/.vimrc中配置)4.1 sudo vim ~/.vimrc根据需要自行配置,以下是我的配置"====================================== ==================set nocompatiblefiletype oncall plug#begin('~/.vim/plugged')" YouCompleteMeset runtimepath+=~/.vim/bundle/YouCompleteMeautocmd InsertLeave * if pumvisible() == 0|pclose|endif "离开插入模式后自动关闭预览窗口"let g:ycm_collect_identifiers_from_tags_files = 1 " 开启 YCM 基于标签引擎let g:ycm_collect_identifiers_from_comments_and_strings = 1 " 注释与字符串中的内容也用于补全let g:syntastic_ignore_files=[".*\.py$"]let g:ycm_seed_identifiers_with_syntax = 1 " 语法关键字补全let g:ycm_complete_in_comments = 1let g:ycm_confirm_extra_conf = 0 " 关闭加载.ycm_extra_conf.py提示let g:ycm_key_list_select_completion = ['<c-n>', '<Down>'] " 映射按键,没有这个会拦截掉tab, 导致其他插件的tab不能用.let g:ycm_key_list_previous_completion = ['<c-p>', '<Up>'] let g:ycm_complete_in_comments = 1 " 在注释输入中也能补全let g:ycm_complete_in_strings = 1 " 在字符串输入中也能补全let g:ycm_collect_identifiers_from_comments_and_strings = 1 " 注释和字符串中的文字也会被收入补全letg:ycm_global_ycm_extra_conf='~/.vim/bundle/YouCompleteMe /third_party/ycmd/cpp/ycm/.ycm_extra_conf.py'let g:ycm_show_diagnostics_ui = 0 " 禁用语法检查inoremap <expr> <CR> pumvisible() ? "\<C-y>" : "\<CR>" " 回车即选中当前项nnoremap <c-j> :YcmCompleter GoToDefinitionElseDeclaration<CR> " 跳转到定义处let g:ycm_min_num_of_chars_for_completion=2 " 从第2个键入字符就开始罗列匹配项" 撤销Plug 'mbbill/undotree'nnoremap <F6> :UndotreeT oggle<cr>set undodir=~/.undodir/set undofile" C++语法高亮Plug 'octol/vim-cpp-enhanced-highlight'"高亮类,成员函数,标准库和模板let g:cpp_class_scope_highlight = 1let g:cpp_member_variable_highlight = 1let g:cpp_concepts_highlight = 1let g:cpp_experimental_simple_template_highlight = 1" 搜索引擎Plug 'mileszs/ack.vim'"<F4>进行搜索,同时不自动打开第一个匹配的文件"map <F4> :Ack!<Space>"调用rg进行搜索if executable('rg')let g:ackprg = 'rg --vimgrep'endif"高亮搜索关键词let g:ackhighlight = 1"修改快速预览窗口高度为15let g:ack_qhandler = "botright copen 15""在QuickFix窗口使用快捷键以后,自动关闭QuickFix窗口let g:ack_autoclose = 1"使用ack的空白搜索,即不添加任何参数时对光标下的单词进行搜索,默认值为1,表示开启,置0以后使用空白搜索将返回错误信息let g:ack_use_cword_for_empty_search = 1" 界面Plug 'mhinz/vim-startify'"设置书签let g:startify_bookmarks = [\ '~/Project/test.cpp',\]"起始页显示的列表长度let g:startify_files_number = 20"自动加载sessionlet g:startify_session_autoload = 1"过滤列表,支持正则表达式let g:startify_skiplist = [\ '^/tmp',\ ]" 代码检测Plug 'w0rp/ale'"始终开启标志列let g:ale_sign_column_always = 1let g:ale_set_highlights = 0"自定义error和warning图标let g:ale_sign_error = '✗'let g:ale_sign_warning = '⚡'"在vim自带的状态栏中整合alelet g:ale_statusline_format = ['✗ %d', '⚡ %d', '✔ OK']"显示Linter名称,出错或警告等相关信息let g:ale_echo_msg_error_str = 'E'let g:ale_echo_msg_warning_str = 'W'let g:ale_echo_msg_format = '[%linter%] %s [%severity%]'"普通模式下,sp前往上一个错误或警告,sn前往下一个错误或警告nmap sp <Plug>(ale_previous_wrap)nmap sn <Plug>(ale_next_wrap)"<Leader>s触发/关闭语法检查nmap <Leader>s :ALET oggle<CR>"<Leader>d查看错误或警告的详细信息nmap <Leader>d :ALEDetail<CR>"文件内容发生变化时不进行检查let g:ale_lint_on_text_changed = 'never'"打开文件时不进行检查let g:ale_lint_on_enter = 0set statusline=%F%m%r%h%w\ [FORMAT=%{&ff}]\ [TYPE=%Y]\ [POS=%l,%v][%p%%]\ %{strftime(\"%d/%m/%y\ -\ %H:%M\")}\ %{ALEGetStatusLine()}"nerdtree目录树 F2打开Plug 'scrooloose/nerdtree'map <F2> :NERDTreeToggle<CR>let NERDTreeShowLineNumbers=1let NERDTreeAutoCenter=1let NERDTreeShowHidden=1let NERDTreeWinSize=30let g:nerdtree_tabs_open_on_console_startup=1let NERDTreeIgnore=['\.pyc','\~$','\.swp']let NERDTreeShowBookmarks=1autocmd bufenter * if (winnr("$") == 1 && exists("b:NERDTree") && b:NERDTree.isTabTree()) | q | endif "优化vim界面"Plug 'vim-airline/vim-airline'" 显示颜色set t_Co=256set laststatus=2" 使用powerline打过补丁的字体let g:airline_powerline_fonts = 1"m,d,y,H,M分别表示月,日,年,时,分,也就是相应英文的首字母let g:airline_section_b = '%{strftime("%m/%d/%y - %H:%M")}'" 开启tablinelet g:airline#extensions#tabline#enabled = 1" tabline中当前buffer两端的分隔字符let g:airline#extensions#tabline#left_sep = ' '" tabline中未激活buffer两端的分隔字符let g:airline#extensions#tabline#left_alt_sep = ' '" tabline中buffer显示编号let g:airline#extensions#tabline#buffer_nr_show = 1let g:airline#extensions#tabline#fnamemod = ':t'" 映射切换buffer的键位nnoremap [b :bp<CR>nnoremap ]b :bn<CR>" 映射<leader>num到num bufferlet g:mapleader = ","map <leader>1 :b 1<CR>map <leader>2 :b 2<CR>map <leader>3 :b 3<CR>map <leader>4 :b 4<CR>map <leader>5 :b 5<CR>map <leader>6 :b 6<CR>map <leader>7 :b 7<CR>map <leader>8 :b 8<CR>map <leader>9 :b 9<CR>" vim-scripts 的插件Plug 'majutsushi/tagbar'"ctags 配置:F3快捷键显示程序中的各种tags,包括变量和函数等。
教你在IntelliJIDEA中使用VIM插件的详细教程
教你在IntelliJIDEA中使⽤VIM插件的详细教程IdeaVim(下载)插件可以让你在IntelliJ IDEA中键盘敲的飞起。
安装打开IDEA的设置,在Plugins⾥,你可以选择在线搜索Vim安装,当然如果不⾏,就可以选择单独下载后安装,以下是下载安装的⽅法:直接选择前⾯下载的ZIP包即可,然后重启IDEA,重启后会发现,在tools⾥有了这个插件的开关:后⾯的Ctrl+分号是我重定义之后的,默认的你会看到是Ctrl+Alt+V,意思就是你可以选择重新定义,重定义键位的地⽅在这⾥:接下来,你就可以通过这个按键来选择是否开启VIM模式,若选择关闭,就是回到最初的状态了,也不⽤担⼼随时给不会VIM 的同学使⽤了。
Ctrl+eCtrl+e是IDEA⾃带的切换最近⽂件的⽐较实⽤,在这⾥把它从VIM中解放出来。
这种键位冲突可以在这⾥设置,在下⾯的Handler列中选择你想要采⽤的编辑⽅案即可:我们把Ctrl+e的Handler选择IDE。
其他习惯在Ctrl+e时,上下选择还是需要按键盘右边的⽅向,⽐较⿇烦,可以把上下箭头改为Ctrl+j/k。
⽅便起见,可以将Java代码的前进后退改为Alt+箭头,如同eclipse习惯去除Tab/标签页 Editor->General->Editor Tabs->Placements改为None推荐去我的博客阅读更多:1.Java JVM、集合、多线程、新特性系列教程2.Spring MVC、Spring Boot、Spring Cloud 系列教程3.Maven、Git、Eclipse、Intellij IDEA 系列⼯具教程4.Java、后端、架构、阿⾥巴巴等⼤⼚最新⾯试题总结到此这篇关于教你在 IntelliJ IDEA 中使⽤ VIM的教程的⽂章就介绍到这了,更多相关IDEA 中使⽤ VIM内容请搜索以前的⽂章或继续浏览下⾯的相关⽂章希望⼤家以后多多⽀持!。
Linux系统下vim编辑器的模式切换与常用命令
Linux系统下vim编辑器的模式切换与常⽤命令Linux系统下vim是⼀款⽐较常⽤的⽂本编辑器,但由于其操作⽅式和常⽤的编辑器相⽐有很⼤的差别,所以为了满⾜⽇常开发,有必要学习其编辑⽅法。
⼀.启动Vim1.双击任务栏上的图标,就可以启动Vim。
2.在终端输⼊vim ,就可以启动Vim。
⼆.Vim的四种操作模式1.Vim常⽤模式命令模式(command-mode);插⼊模式(insert-mode);可视模式(visual-mode);标准模式(normal-mode)。
2.如何进⼊这些模式①.标准模式标准模式主要⽤来浏览和修改⽂本内容的,⼀般,打开Vim都是标准模式。
在任何模式下,只要按下 Esc 键就可以返回标准模式。
②.插⼊模式插⼊模式则⽤来向⽂本中添加内容的:i 在光标所在字符前开始输⼊⽂字并进⼊插⼊模式。
a 在光标所在字符后开始输⼊⽂字并进⼊插⼊模式。
o (字母o) 在光标所在⾏的下⾯单独开⼀新⾏来输⼊⽂字并进⼊插⼊模式。
s 删除光标所在的字符并进⼊插⼊模式。
I 在⾏⾸开始输⼊⽂字并进⼊插⼊模式。
此⾏⾸指第⼀个⾮空⽩字符处。
如果⾏⾸有空格,则在空格之后输⼊⽂字并进⼊插⼊模式。
A 在⾏尾开始输⼊⽂字并进⼊插⼊模式。
这个好⽤,您不必管光标在此⾏的什麽地⽅,只要按 A 就会在⾏尾等着您输⼊⽂字。
O (⼤写字母O) 在光标所在⾏的上⾯单独开⼀新⾏来输⼊⽂字并进⼊插⼊模式。
S 删除光标所在⾏并进⼊插⼊模式。
③可视模式可视模式相当于⾼亮选取⽂本后的标准模式,可视模式具有⼦模式,以⾏为单位进⾏选取的可视⾏模式,使⽤“V”键进⼊(也就是Shift+v);和以块为单位进⾏选取的可视块模式,使⽤“Ctrl+v”键进⼊。
④命令模式命令模式则多⽤于操作⽂本⽂件(⽽不是操作⽂本⽂件的内容),例如保存⽂件,或者⽤来改变编辑器本⾝的状态,例如设定多栏窗⼝、标签或者退出编辑器……三.模式的转换①其它模式==>标准模式按 Esc 键。
windows下使用gvim搭建简单的IDE编译环境(支持CC++Python等)
windows下使⽤gvim搭建简单的IDE编译环境(⽀持CC++Python等)该⽂章讲的很详细,⽽且给出了各种辅助插件的下载链接。
这⾥主要讲如何在gvim环境下通过快捷键编译程序。
如果需要编译C/C++程序,⾸先将微软的cl 编译器加⼊到环境变量中,也就是说在cmd 模式下能够使⽤cl。
这⾥就⾸先来讲⼀下如何将 cl 加⼊到环境变量中。
如果是使⽤VS2010及更低版本需要这样做:我的电脑->属性->⾼级系统设置->环境变量新建:INCLUDE 、LIB、PATH 三个变量,填⼊下⾯的值:假设我的VS2010的安装⽬录是D:\program files (x86)\Microsoft Visual Studio 10.0\)PATH:D:\program files (x86)\Microsoft Visual Studio 10.0\VC\bin;D:\program files (x86)\Microsoft Visual Studio 10.0\Common7\IDE; LIB:C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Lib;D:\program files (x86)\Microsoft Visual Studio 10.0\VC\lib; INCLUDE:C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Include;D:\program files (x86)\Microsoft Visual Studio 10.0\VC\include;注意:每⼀项之间使⽤ ‘;’ 隔开。
我现在装的是VS11 beta版,上⾯的⽅式就不能成功了。
需要这样做(这⾥我的VS11 beta是安装在C盘的默认路径):INCLUDE: C:\Program Files\Microsoft Visual Studio 11.0\VC\include;C:\Program Files\Windows Kits\8.0;C:\Program Files\Windows Kits\8.0\Include\shared;C:\Program Files\Windows Kits\8.0\Include\um;C:\Program Files\Windows Kits\8.0\Include\winrtLIB: C:\Program Files\Microsoft Visual Studio 11.0\VC\lib;C:\Program Files\Windows Kits\8.0;C:\Program Files\WindowsKits\8.0\Lib\win8\um\x86PATH: C:\Program Files\Microsoft Visual Studio 11.0\Common7\IDE;C:\Program Files\Microsoft Visual Studio 11.0\VC\bin;D:\Program Files\Python2.7这样的⽅式增加了环境变量之后再cmd中就可以使⽤cl 编译器了(这⾥也⼀并增加了Python的环境变量)。
如何将VIM配置成适用C语言的IDE
如何将VIM配置成适用C语言的IDE博客都快长了半年的草,整个换工作的过程也基本确定下来了,在前公司里做内核,还有souce insight可用来看代码,自己也就懒得折腾,到新公司后,source insight没得用了,只好把vim拿来配置,记录如下。
一般情况下的IDE长什么样子都是类似,最好界面如source insight这般,可以解决类似问题。
vim for souce_insight oanhan左边有类似的函数列表,中间是代码编辑区,右边则是代码文件列表,最下面则显示搜索结果。
那就先把成品放上来,如下图vim_c_ide oenhan详细代码参考https:///morphoen/vim,整个代码也是从https:///morphoen/dot-vimrc修改而来,专门针对我需要查看内核代码做的修改,原配置可能更适合前端开发等。
安装方法:sudo apt-get install ctags cscope gitmv ~/.vim ~/.vim.origmv ~/.vimrc ~/.vimrc.origgit clone https:///morphoen/vim.git ~/.vimln -s ~/.vim/vimrc ~/.vimrcgit clone https:///gmarik/vundle.git ~/.vim/bundle/vundle在vim执行“:BundleInstall”进行插件安装。
安装的插件直接看bundles.vim,根据自己需要进行增删即可。
vimrc内容说一下:source ~/.vim/bundles.vim" encoding dectectionset fileencodings=utf-8,gb2312,gb18030,gbk,ucs-bom,cp936,latin1" enable filetype dectection and ft specific plugin/indentfiletype plugin indent on" enable syntax hightlight and completionsyntax onsyntax enable"--------" Vim UI"--------" color schemeset background=dark"color solarizedcolors Tomorrow-Night-Bright" highlight current lineau WinLeave * set nocursorline nocursorcolumnau WinEnter * set cursorline cursorcolumnset cursorline cursorcolumn" searchset incsearch"set highlight " conflict with highlight current lineset ignorecaseset smartcase" editor settingsset history=1000set nocompatibleset nofoldenable" disable folding"set confirm" prompt when existing from an unsaved fileset backspace=indent,eol,start" More powerful backspacing set t_Co=256" Explicitly tell vim that the terminal has 256 colors "set mouse=a" use mouse in all modesset report=0" always reportnumber of lines changed "set nowrap" dont wrap linesset scrolloff=5" 5 lines above/below cursor when scrollingset number" show line numbersset showmatch" show matching bracket (briefly jump)set showcmd" show typed command in status barset title" show file in titlebar set laststatus=2" use 2 lines for the status barset matchtime=2" show matching bracket for 0.2 secondsset matchpairs+=<:>" specially for html " Default Indentationset autoindentset smartindent " indent whenset tabstop=4 " tab widthset softtabstop=4 " backspaceset shiftwidth=4 " indent widthset expandtab " expand tab to space "-----------------" Plugin settings"-----------------let g:indent_guides_auto_colors = 1let g:indent_guides_start_level=1let g:indent_guides_guide_size=1" Rainbow parentheses for Lisp and variants let g:rbpt_colorpairs = [\ ['brown', 'RoyalBlue3'],\ ['Darkblue', 'SeaGreen3'],\ ['darkgray', 'DarkOrchid3'],\ ['darkgreen', 'firebrick3'],\ ['darkcyan', 'RoyalBlue3'],\ ['darkred', 'SeaGreen3'],\ ['darkmagenta', 'DarkOrchid3'],\ ['brown', 'firebrick3'],\ ['gray', 'RoyalBlue3'],\ ['black', 'SeaGreen3'],\ ['darkmagenta', 'DarkOrchid3'],\ ['Darkblue', 'firebrick3'],\ ['darkgreen', 'RoyalBlue3'],\ ['darkcyan', 'SeaGreen3'],\ ['darkred', 'DarkOrchid3'],\ ['red', 'firebrick3'],\ ]let g:rbpt_max = 16" tabbarlet g:Tb_MaxSize = 2let g:Tb_TabWrap = 1hi Tb_Normal guifg=white ctermfg=whitehi Tb_Changed guifg=green ctermfg=greenhi Tb_VisibleNormal ctermbg=252 ctermfg=235hi Tb_VisibleChanged guifg=green ctermbg=252 ctermfg=white" easy-motionlet g:EasyMotion_leader_key = '<Leader>'" Tagbarlet g:tagbar_left=1let g:tagbar_width=30let g:tagbar_autofocus = 1let g:tagbar_sort = 0let g:tagbar_compact = 1" Nerd Treelet NERDChristmasTree=0let NERDTreeWinSize=30let NERDTreeChDirMode=2let NERDTreeIgnore=['\~$', '\.pyc$', '\.swp$']" let NERDTreeSortOrder=['^__\.py$', '\/$', '*', '\.swp$', '\~$'] let NERDTreeShowBookmarks=1let NERDTreeWinPos = "right"" nerdcommenterlet NERDSpaceDelims=1" nmap <D-/> :NERDComToggleComment<cr>let NERDCompactSexyComs=1" powerline"let g:Powerline_symbols = 'fancy'" NeoComplCachelet g:neocomplcache_enable_at_startup=1let g:neoComplcache_disableautocomplete=1"let g:neocomplcache_enable_underbar_completion = 1"let g:neocomplcache_enable_camel_case_completion = 1let g:neocomplcache_enable_smart_case=1let g:neocomplcache_min_syntax_length = 3let g:neocomplcache_lock_buffer_name_pattern = '\*ku\*'set completeopt-=previewimap <C-k> <Plug>(neocomplcache_snippets_force_expand) smap <C-k> <Plug>(neocomplcache_snippets_force_expand)imap <C-l> <Plug>(neocomplcache_snippets_force_jump)smap <C-l> <Plug>(neocomplcache_snippets_force_jump) " Enable omni completion.autocmd FileType python setlocal omnifunc=pythoncomplete#Completeautocmd FileType c setlocal omnifunc=ccomplete#Complete if !exists('g:neocomplcache_omni_patterns')let g:neocomplcache_omni_patterns = {}endiflet g:neocomplcache_omni_patterns.erlang = '[a-zA-Z]\|:'" SuperTab" let g:SuperTabDefultCompletionType='context'let g:SuperTabDefaultCompletionType = '<C-X><C-U>'let g:SuperTabRetainCompletionType=2" ctrlpsetwildignore+=*/tmp/*,*.so,*.o,*.a,*.obj,*.swp,*.zip,*.pyc,*.pyo,*.cla ss,.DS_Store " MacOSX/Linuxlet g:ctrlp_custom_ignore = '\.git$\|\.hg$\|\.svn$'" Keybindings for plugin togglennoremap <C-F2> :set invpaste paste?<CR>set pastetoggle=<F2>nmap <C-F5> :TagbarToggle<cr>nmap <C-F6> :NERDTreeT oggle<cr>nmap <F3> :GundoToggle<cr>nmap <F4> :IndentGuidesT oggle<cr>nmap <C-F12> :!ctags -R --c++-kinds=+p --fields=+iaS --extra=+q .<cr>nmap <D-/> :nnoremap <leader>a :Acknnoremap <leader>v V`]"------------------" Useful Functions"------------------" easier navigation between split windowsnnoremap <c-j> <c-w>jnnoremap <c-k> <c-w>knnoremap <c-h> <c-w>hnnoremap <c-l> <c-w>l" When editing a file, always jump to the last cursor position autocmd BufReadPost *\ if ! exists("g:leave_my_cursor_position_alone") |\ if line("'\"") > 0 && line ("'\"") <= line("$") |\ exe "normal g'\"" |\ endif |\ endif" w!! to sudo & write a filecmap w!! %!sudo tee >/dev/null %" Quickly edit/reload the vimrc filenmap <silent> <leader>ev :e $MYVIMRC<CR> nmap <silent> <leader>sv :so $MYVIMRC<CR> " sublime key bindingsnmap <D-]> >>nmap <D-[> <<vmap <D-[> <gvvmap <D-]> >gv" eggcache vimnnoremap ; ::command W w:command WQ wq:command Wq wq:command Q q:command Qa qa:command QA qaset guifont=Ubuntu\ Mono\ 12if has('cscope')set cscopetagset csto=0cs add cscope.outset cscopeverbose"set cscopequickfix=s-,c-,d-,i-,t-,e- cnoreabbrev csa cs addcnoreabbrev csf cs findcnoreabbrev csfs cs find scnoreabbrev csfc cs find ccnoreabbrev csfe cs find ecnoreabbrev csft cs find tcnoreabbrev csfd cs find dcnoreabbrev csfi cs find icnoreabbrev csfg cs find gcnoreabbrev csk cs killcnoreabbrev csr cs resetcnoreabbrev css cs showcnoreabbrev csh cs helpnmap <Tab-s> :cs find s <C-R>=expand("<cword>")<CR><CR>nmap <C-\>g :cs find g <C-R>=expand("<cword>")<CR><CR>nmap <C-\>c :cs find c <C-R>=expand("<cword>")<CR><CR>nmap <C-\>t :cs find t <C-R>=expand("<cword>")<CR><CRnmap <C-\>e :cs find e <C-R>=expand("<cword>")<CR><CRnmap <C-\>f :cs find f <C-R>=expand("<cfile>")<CR><CR nmap <C-\>i :cs find i ^<C-R>=expand("<cfile>")<CR>$<CR>nmap <C-\>d :cs find d <C-R>=expand("<cword>")<CR><CR>endif贴上之后发现没啥说的,自己慢慢看吧,主要几个快捷键了解之后就很方便了。
在Linux系统中如何把tmux和vim打造成IDE
在Linux系统中如何把tmux和vim打造成IDE导读:在Linux系统中tmux 和vim两个工具可以用来开发项目,很多人宁愿使用tmux 和vim 也不用键盘和鼠标说明这两个工具有着独到之处。
本文就来介绍一下在Linux系统中把tmux和vim打造成IDE。
很多人习惯于将终端工具与代码编辑器平铺在一起。
在web 开发工作通常需要一个控制台用于输入ad-hoc 命令,一个控制台操作数据库,以及一个控制台查看日志。
同时我的一些项目还会使用测试工具来对有修订的文件进行自动化测试,因此我也希望同时能看到这些测试执行的状态。
vim 提供了很多插件可以将上述功能集成在一起,但我更喜欢vim/tmux 这个组合。
这是个可视化的操作工具。
通用这种方式使用命令行工具,我们可以高效地打造一个轻量级、可定制化IDE 。
我还发现在tmux 的多个控制台窗格(pane)中输入Unix 命令的方式很好用,因为这种方式可以很容易地将命令结合起来从而提供复杂的脚本化操作,而不需要臃肿的IDE工具。
这种使用方法与使用传统的IDE的区别在于其提供的界面非常契合我当下的工作,且它仅受限于我所安装命令行工具以及脚本语言。
我可以按需创建tmux 窗格(pane)以及vim 分割(split)窗口,而不要开发什么模板。
尽管Eclipse 和Xocde 有提供一些以任务为中心(task-foruce)的界面,我还是觉得这些有些碍事。
尤其是Xcode,它所提供的快捷键感觉像是后面才补上去的,我还是得不停地使用鼠标进行操作。
支持任务间快速切换则是另一个优点。
我是一个自由职业者,通常一天中我需要在3、4 个项目间进行切换。
在使用tmux 之后,我可以先断开(detach)一个会话稍后再切回来继续,这使我能够专注于当前工作。
我觉得这个是控制台vim 工具相比于GUI vim 或是同时开一堆控制台工作而言的一个极大优势,因为Eclipse 以及Xcode 总是在关闭工程时尝试保存界面状态(不过最新的版本的Xcode 在关闭工程貌似总是将我打开的分割窗口关闭掉)。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
手把手教你把Vim改装成一个IDE编程环境By: 吴垠Date: 2007-09-07Email: lazy.fox.wu#Homepage: /wooinCopyright: 该文章版权由吴垠和他可爱的老婆小包子所有。
可在非商业目的下任意传播和复制。
商业目的下对本文的任何行为需经作者同意。
Version: 0.7目 录0.写在前面 (2)1.中文帮助手册的安装 (4)2.vim编程常用命令 (7)3.语法高亮 (8)4.在程序中跳来跳去: Ctags 的使用 (11)5.教你高效地浏览源码 -- 插件: TagList (14)6.文件浏览器和窗口管理器 -- 插件: WinManager (16)7. Cscope 的使用 (19)8.QuickFix 窗口 (25)9.快速浏览和操Buffer -- 插件: MiniBufExplorer (27)10. c/h文件间相互切换 -- 插件: A (29)11.在工程中查找 -- 插件: Grep (30)12.高亮的书签 -- 插件: VisualMark (33)13.自动补全 (35)14.加速你的补全 -- 插件: SuperTab (38)15.代码折叠 (fold) (39)16.提示函数原形--插件: echofunc (42)Help poor children in Uganda! (44)0.写在前面Linux下编程一直被诟病的一点是: 没有一个好用的IDE, 但是听说Linux牛人, 黑客之类的也都不用IDE. 但是对我等从Windows平台转移过来的Coder来说, 一个好用的IDE是何等的重要啊, 估计很多人就是卡在这个门槛上了, "工欲善其事, 必先利其器"嘛, 我想如果有一个很好用的IDE, 那些Linux牛人也会欢迎的. 这都是劳动人民的美好愿望罢了, 我今天教大家把gvim改装成一个简易IDE, 说它"简易"是界面上看起来"简易", 但功能绝对不比一个好的IDE差, 该有的功能都有, 不该有的功能也有, 你就自己没事偷着乐吧, 下面我开始介绍今天的工作了.本文会教你:1.中文帮助 手册的安装2.vim编 程常用命令3.语法高亮4.在程序中 跳来跳去: Ctags 的使用5.教你高效地浏览源码 -- 插件: TagList6.文件浏览器和窗口管理器 -- 插件: WinManager7.Cscope 的使用8.QuickFix 窗口9.快速浏览 和操作Buffer -- 插件: MiniBufExplorer10.c/h文件间相互切换 -- 插件: A11.在工程中查找 -- 插件: Grep12.高亮的书 签 -- 插件: VisualMark13.自动补 全14.加速你的 补全 -- 插件: SuperTab15.代码折叠(fold)16.提示函数原形-- 插件: echofunc本文不会教你:1.如何使用vim. 本文不会从零开始教你如何使用vim, 如果你是第一次接触vim, 建议你先看看其他的vim入门的教程, 或者在shell下输入命令:vimtutor,这是一个简单的入门教程.2.编程技巧.3.vim脚本的编写.我的工作环境是: Fedora Core 5。
gvim是自己编译的7.0, 如果你还没有安装gvim, 请看我的这篇文章<在Redhat Linux 9中编译和配置gvim 7.0>由于本人一直从事C语言工作, 所以下面这些例子都是在C语言程序中演示的, 其他语言的没有试过, 如果有朋友在别的语言下有问题, 可以跟我讨论一些, 我会尽量帮助你们的.本文用的示范源码是vim7.1的源码, 可以在下载到源码包:vim-7.1.tar.bz2, 你也可以不用下载, 就用你自己程序的源码, 关系不大的. 我把源码解压在我的home目录下: ~/vim71下面对文中的一些名字定义一下:1.文中用到的一些用<>括起来的符号比如<C-T>, <C-S-A>, 之类的, 你可以用下面的命令看看解释::help keycodes2. 文中说的一些路径, 比如:~/.vim/plugin~/.vim/doc~/.vim/syntax如果你没有, 就自己创建.3. 文中说到的.vimrc文件都是指 ~/.vimrc先给大家看张图片, 我是vim的界面, 解解馋先^_^(--- 图1 ---)对照上图的图标, 我在本文中将教会你以下这些功能:1 简洁明了的Buffer浏览和操作2 文件浏览器3 tag浏览器4 高亮的书签5 更丰富的语法高亮6 成员变量的下拉, 自动补全1.中文帮助手册的安装vim自带的帮助手册是英文的, 对平时编程的人来说没有多大阅读困难, 何况还有"星级译王"呢, 可偏偏有一帮人将其翻译成了中文, 可偏偏我又挡不住诱惑将它安装了, 唉.......又痛失一个学习英文的好机会, 下不为例。
大家看看我的中文帮助界面吧:(--- 图2 ---)安装方法:在下面的网站下载中文帮助的文件包: (English) (中文)下载的文件包应该是类似这样的: vimcdoc-1.5.0.tar.gz。
解压后其中有个doc文件夹, 将其中的内容全部复制到~/.vim/doc, 或者vim安装目录下的doc目录中, 此时vim中的help 信息已经是中文的了。
注意:a.如果无法显示中文, 在~/.vimrc中增加下面这句试试:set helplang=cnb.帮助文件的文本是utf-8编码的, 如果想用vim直接查看, 需要在~/.vimrc中设置:set encoding=utf-82.vim编程常用命令建议先看看帮助手册中的下面章节, 其中有关tags文件的部分你可以先跳过, 在后面的章节中会讲到, 到时候你在回来看看, 就觉得很简单了::help usr_29:help usr_30下面是我常用的一些命令, 放在这里供我备忘:% 跳转到配对的括号去[[ 跳转到代码块的开头去(但要求代码块中'{'必须单独占一 行)gD 跳转到局部变量的定义处'' 跳转到光标上次停靠的地方, 是两个', 而不是一个"mx 设置书签,x只能是a-z的26个字母`x 跳转到书签处("`"是1左边的键)> 增加缩进,"x>"表示增加以下x行的缩进< 减少缩进,"x<"表示减少以下x行的缩进3.语法高亮写程序没有语法高亮将是一件多么痛苦的事情啊, 幸亏vim的作者是个程序员(如果不是, 那可NB大了), 提供了语法高亮功能, 在上面的图片中大家也可以看到那些注释, 关键字, 字符串等, 都用不同颜色显示出来了, 要做到这样, 首先要在你的 ~/.vimrc 文件中增加下面几句话:syntax enablesyntax on再重新启动vim, 并打开一个c程序文件, 是不是觉得眼前突然色彩缤纷了起来...如果你不喜欢这个配色方案你可以在"编辑->配色方案"(gvim)中选择一个你满意的配色方案, 然后在~/.vimrc文件中增加下面这句:colorscheme desertdesert是我喜欢的配色方案, 你可以改成你的. 如果菜单中的配色方案你还不满意(你也太花了吧), 没关系, 在 上跟你一样的人很多, 他们做了各种各样的颜色主题, 你可以下载下来一个一个的试, 多地可以看到你眼花. 如果这样你还不满意(你还真是XXXX), 没关系, vim的作者早想到会有你这种人了, 你可以创建你自己的颜色主题, 把下面的这篇文档好好学习一些一下吧::help syntax.txt更炫的语法高亮:你可能会发现很多东西没有高亮起来, 比如运算符号, 各种括号, 函数名, 自定义类型等, 但是看上面的图片, 我的运算符号和函数名都加亮了^_^, 想知道为什么吗? 哇哈哈哈哈.... 让我来教你吧 ...主要的思路是新建一个语法文件, 在文件中定义你要高亮的东东, 想高亮什么就高亮什么, 用vim就是这么自信. 所谓的语法文件就是vim用来高亮各种源文件的一个脚本, vim靠这个脚本的描述来使文件中的不同文本显示不同的颜色, 比如C语言的语法文件放在类似于这样的一个路径中:/usr/share/vim/vim64/syntax/c.vim其他语言的语法文件也可以在这个路径中找到, 你的也许不在这个路径中, 不管它, 在你自己的HOME下新建一个语法文件, 新建一个空文件:~/.vim/syntax/c.vim在其中加入"========================================================" Highlight All Function"========================================================syn match"\<[a-zA-Z_][a-zA-Z_0-9]*\>[^()]*)("syn match"\<[a-zA-Z_][a-zA-Z_0-9]*\>\s*("hi gui NONE guifg#B5A1FF"========================================================" Highlight All Math Operator"========================================================" C math operatorssyn match display"[-+\*/%=]"" C pointer operatorssyn match display"->\|\."" C logical operators - boolean resultssyn match display"[!<>]=\="syn match display"=="" C bit operatorssyn match display"\(&\||\|\^\|<<\|>>\)=\=" syn match display"\~"syn match display"\~="" More C logical operators - highlight in preference to binarysyn match display"&&\|||"syn match display"\(&&\|||\)="" Math Operatorhi guifg#3EFFE2hi guifg#3EFFE2hi guifg#3EFFE2hi guifg#3EFFE2hi guifg#3EFFE2hi guifg#3EFFE2hi guifg#3EFFE2再打开你的C文件看看, 是不是又明亮了许多. 还有一个压箱底的要告诉你, 如果你自己增加了一个类型或者结构之类的, 怎么让它也象"int", "void"这样高亮起来呢? 再在上面的文件~/.vim/syntax/c.vim中添加下面的东东:"========================================================" My Own DataType"========================================================syn keyword这样你自己的类型My_Type_1, My_Type_2, My_Type_3就也可以向"int"一样高亮起来了, 这样的缺点是每增加一个类型, 就要手动在这里添加一下, 如果有人知道更简单的方法请一定一定要告诉我, 用下面的地址:Email : lazy.fox.wu#Homepage : /wooin4.在程序中跳来跳去: Ctags 的使用哇, 这下可厉害了, Tag文件(标签文件)可是程序员的看家宝呀, 你可以不用它, 但你不能不知道它, 因为Linux内核源码都提供了"make tags"这个选项. 下面我们就来介绍Tag文件.tags文件是由ctags程序产生的一个索引文件, ctags程序其是叫"Exuberant Ctags", 是Unix上面ctags程序的替代品, 并且比它功能强大, 是大多数Linux发行版上默认的ctags程序. 那么tags文件是做什么用的呢? 如果你在读程序时看了一个函数调用, 或者一个变量, 或者一个宏等等, 你想知道它们的定义在哪儿, 怎么办呢? 用grep? 那会搜出很多不相干的地方. 现在流行用是的<C-]>, 谁用谁知道呀, 当光标在某个函数或变量上时, 按下"Ctrl+]", 光标会自动跳转到其定义处, 够厉害吧, 你不用再羡慕Visual Studio的程序员了, 开始羡慕我吧~_~.你现在先别急着去按<C-]>, 你按没用的, 要不要我干什么呀, 你现在要做的是查查你电脑里有没有ctags这个程序, 如果有, 是什么版本的, 如果是Ctags 5.5.4, 就象我一样, 你最好去装一个Ctags 5.6, 这个在后面的自动补全章节中会用到. 在这个网站: , 下载一个类似 ctags-5.6.tar.gz 的文件下来(现在好像5.7版的也出来了, 不过我还没用过):用下面的命令解压安装:$ tar -xzvf ctags-5.6.tar.gz$ cd ctags-5.6$ make# make install // 需要root权限然后去你的源码目录, 如果你的源码是多层的目录, 就去最上层的目录, 在该目录下运行命令: ctags -R我现在以 vim71 的源码目录做演示$ cd /home/wooin/vim71$ ctags -R此时在/home/wooin/vim71目录下会生成一个 tags 文件, 现在用vim打开/home/wooin/vim71/src/main.c$ vim /home/wooin/vim71/src/main.c再在vim中运行命令::set tags=/home/wooin/vim71/tags该命令将tags文件加入到vim中来, 你也可以将这句话放到~/.vimrc中去, 如果你经常在这个工程编程的话.下面要开始真刀实枪的开干了, 如下图, 将光标放在setmouse()函数上(--- 图3 ---)此时按下<C-]>, 光标会自动跳到setmouse()函数的定义处, 见下图:(--- 图4 ---)如果此时你还想再跳回刚才的位置, 你还可以按<C-T>, 这样又跳回到setmouse()函数被调用的地方了, 变量, 结构, 宏, 等等, 都可以的, 赶快试试吧.....此时在回头学习一下第3节中说的vim手册吧:help usr_29不过还有一个小瑕疵, 你修改程序后, 比如增加了函数定义, 删除了变量定义, tags文件不能自动rebuild, 你必须手动再运行一下命令:$ ctags -R使tags文件更新一下, 不过让人感到欣慰的是vim不用重新启动, 正在编写的程序也不用退出, 马上就可以又正确使用<C-]>和<C-T>了. 如果有人知道更简单的方法请一定一定要告诉我, 用下面的地址:Email : lazy.fox.wu#Homepage : /wooin5.教你高效地浏览源码 -- 插件: TagList下载地址/scripts/script.php?script_id=273版本 4.4安装在 ~/.vim 目录下解压taglist_xx.zip手册:help taglist.txt在Windows平台上用过Source Insight看程序的人肯定很熟悉代码窗口左边那个Symbol 窗口, 那里面列出了当前文件中的所有宏, 全局变量, 函数名等, 在查看代码时用这个窗口总揽全局, 切换位置相当方便, 今天告诉你一个vim的插件: Taglist, 可以同样实现这个功能.上一节已经告诉你ctags的用法了, ctags的基本原理是将程序程序中的一些关键字(比如:函数名, 变量名等)的名字, 位置等信息通过一个窗口告诉你, 如果你已经安装好taglist, 则可以用下面的命令看看taglist自带的帮助文件::help taglist.txt下面是我翻译的其中的第一段"Overview", 供大家现了解一下taglist, 翻译的不好, 请指教:"Tab List"是一个用来浏览源代码的Vim插件, 这个插件可以让你高效地浏览各种不同语言编写的的源代码, "Tag List"有以下一些特点:z在Vim的一个垂直或水平的分割窗口中显示一个文件中定义的tags(函数, 类, 结构, 变量, 等)z在GUI Vim中, 可以选择把tags显示在下拉菜单和弹出菜单中z当你在多个源文件/缓冲区间切换时, taglist窗口会自动进行相应地更新. 当你打开新文件时, 新文件中定义的tags会被添加到已经存在的文件列表中, 并且所有文件中定义的tags会以文件名来分组显示z当你在taglist窗口中选中一个tag名时, 源文件中的光标会自动跳转到该tag的定义处z自动高亮当前的tag名z按类型分组各tag, 并且将各组显示在一个可折叠的树形结构中z可以显示tag的原始类型和作用域z在taglist窗口可选择显示tag的原始类型替代tag名z tag列表可以按照tag名, 或者时间进行排序z支持以下语言的源文件: Assembly, ASP, Awk, Beta, C, C++, C#, Cobol, Eiffel, Erlang, Fortran, HTML, Java, Javascript, Lisp, Lua, Make, Pascal, Perl, PHP, Python, Rexx, Ruby, Scheme, Shell, Slang, SML, Sql, TCL, Verilog, Vim and Yacc.z可以很简单的扩展支持新的语言. 对新语言支持的修改也很简单.z提供了一些函数, 可以用来在Vim的状态栏或者在窗口的标题栏显示当前的tag名z taglist中的文件和tags的列表可以在被保存和在vim会话间加载z提供了一些用来取得tag名和原始类型的命令z在控制台vim和GUI vim中都可以使用z可以和winmanager插件一起使用. winmanager插件可以让你同时使用文件浏览器, 缓冲区浏览器和taglist插件, 就像一个IDE一样.z可以在Unix和MS-Windows系统中使用首先请先在你的~/.vimrc文件中添加下面两句:let Tlist_Show_One_File=1let Tlist_Exit_OnlyWindow=1此时用vim打开一个c源文件试试:$ vim ~/vim/src/main.c进入vim后用下面的命令打开taglist窗口, 如图5::Tlist(--- 图5 ---)左边的窗口就是前面介绍的TagList窗口, 其中列出了main.c文件中的tag, 并且按照"typedef", "variable", "function"等进行了分类. 将光标移到VimMain上, 如图中左边红色的方框, 按下回车后, 源程序会自动跳转到VimMain的定义处, 如图中右边的红色方框. 这就是TagList最基本也是最常用的操作. 再教你一个常用的操作, 你在浏览TagList窗口时, 如果还不想让源码跳转, 但是想看看tag在源码中完整的表达, 可以将光标移到你想要看的tag 上, 如图中上边黄色的方框, 然后按下空格键, 在下面的命令栏中, 如图下边黄色的方框, 会显示该tag在源码中完整的写法, 而不会跳转到源码处.TagList插件我就介绍到这里, 其实它还有很多用法和设置, 我没法一一地教你了, 好在TagList有一份详细的帮助手册, 用下面的命令打开手册, 好好学习一下吧::help taglist.txt6.文件浏览器和窗口管理器 -- 插件: WinManager下载地址/scripts/script.php?script_id=95版本 2.x安装在 ~/.vim 目录下解压winmanager.zip手册:help winmanager在图1中大家可以看到在图标2标识的地方是一个文件浏览器, 里面列出了当前目录中的文件, 可以通过这个浏览器来浏览工程中的源文件, 是不是越来越像常见的IDE了, 当光标停在某个文件或文件夹的时候, 按下回车, 可以打开该文件或文件夹.这个东东是怎么调出来的呢? 其实这个也是由插件实现的, 这个插件是netrw.vim, 只不过你不用下载和安装, 这个插件已经是标准的vim插件, 已经随vim一起安装进你的系统里了, 现在先简单演示一下, 进入"~/vim71"文件夹后运行vim, 然后在vim中运行命令: :e ~/vim71你将在vim看到如下图所示的界面:(--- 图6 ---)在该界面上你可以用下面的一些命令来进行常用的目录和文件操作:<F1> 显示帮助<cr> 如果光标下是目录, 则进入该目录; 如果光标下文件, 则打开该文件- 返回上级目录c 切换vim 当前工作目录正在浏览的目录d 创建目录D 删除目录或文件i 切换显示方式R 文件或目录重命名s 选择排序方式x 定制浏览方式, 使用你指定的程序打开该文件我这里不是教你怎么用netrw.vim插件, 而是要教你通过WinManager插件来将TagList 窗口和netrw窗口整合起来, 就像图1中的图标2和3组成的那个效果现在在你的~/.vimrc中增加下面两句let g:winManagerWindowLayout='FileExplorer|TagList'nmap wm :WMToggle<cr>然后重启vim, 打开~/vim71/src/main.c, 在normal状态下输入"wm", 你将看到图7的样子:(--- 图7 ---)其中左上边是netrw窗口, 左下边是TagList窗口, 当再次输入"wm"命令时这两个窗口又关闭了.WinManager的功能主要就是我介绍的这些, 但是它还有其他一些高级功能, 还可以支持其他几个插件, 如果你觉得我介绍的还不够你用, 建议你把它的帮助手册好好研究一下, 用下面的命令可以调出帮助手册::help winmanager7. Cscope 的使用这下更厉害了, 用Cscope自己的话说 - "你可以把它当做是超过频的ctags", 其功能和强大程度可见一斑吧, 关于它的介绍我就不详细说了, 如果你安装好了前文介绍的中文帮助手册, 用下面的命令看看介绍吧::help if_cscop.txt我在这里简单摘抄一点, 供还在犹豫的朋友看看:Cscope 是一个交互式的屏幕下使用的工具,用来帮助你:* 无须在厚厚的程序清单中翻来翻去就可以认识一个 C 程序的工作原理。