vim开发环境配置

一、大饱眼福

  看了效果图,肯定有人说, 这都有啥功能?就花哨?

  告诉你,你说花哨就错了,开玩笑?我们程序猿可都是实打实的人,说谎都不会,咋会忽悠人呢。

  下面我来告诉你,这都有些什么功能:

  • 文件索引功能,也就是可以知道这个文件里面有哪些函数,变量,宏定义,结构体,类等等
  • 文件目录快速浏览,可以通过目录窗口来打开自己想要打开的文件,创建删除目录等功能
  • 自动补全文件功能,特别是include的时候,根据路径自动补全,选择你想要的文件
  • 自动补全类成员,函数,命名空间等
  • 语法高亮,提供类型关键字,函数等高亮,当然函数我觉得没必要,所以没设置
  • c/h文件随意切换,当你在coding的时候,肯定需要来回在.h/hpp和.c/cpp之间来回切换,没问题,可以的。
  • quickfix功能,编译出错,你肯定想根据错误找到文件对应的地方修改吧,没问题,可以的。
  • 基本编辑功能不用说了

  下面我们来说怎么整合这些功能,有的是vim自带的,有的是需要插件的。

二.准备工作

1.准备文件/路径

  确认文件/路径是否存在,文中说的一些路径, 比如:

  ~/.vim/plugin
  ~/.vim/doc
  ~/.vim/syntax

  如果没有,请新建。

2.预定义

  文中说到的.vimrc文件都是指 ~/.vimrc

三.正式起航

1.vim编程常用命令

%    跳转到配对的括号去
[[    跳转到代码块的开头去(但要求代码块中'{'必须单独占一行)
gD    跳转到局部变量的定义处
''    跳转到光标上次停靠的地方, 是两个', 而不是一个"
mx    设置书签,x只能是a-z的26个字母
`x    跳转到书签处("`"是1左边的键)
>    增加缩进,"x>"表示增加以下x行的缩进
<    减少缩进,"x<"表示减少以下x行的缩进

2.语法高亮

  写程序没有语法高亮将是一件多么痛苦的事情啊,一片黑,就像一直都在跑尸一样,幸亏vim 提供了语法高亮功能, 在上面的图片中大家也可以看到那些注释, 关键字, 字符串等, 都用不同颜色显示出来了, 要做到这样, 首先要在你的 ~/.vimrc 文件中增加下面几句话:

syntax enable
syntax on

  再重新启动vim, 并打开一个c程序文件, 是不是觉得眼前突然色彩缤纷了起来...
  如果你不喜欢这个配色方案你可以选择一个你满意的配色方案, 然后在~/.vimrc文件中增加下面加上colorscheme xxx,如这句:

colorscheme desert

  desert表示的就是一种配色方案, 在 vim.org 上跟你一样的人很多, 他们做了各种各样的颜色主题, 你可以下载下来一个一个的试, 多地可以看到你眼花. 如果这样你还不满意(你还真是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   cFunction "/<[a-zA-Z_][a-zA-Z_0-9]*/>[^()]*)("me=e-2
syn match   cFunction "/<[a-zA-Z_][a-zA-Z_0-9]*/>/s*("me=e-1
hi cFunction        gui=NONE guifg=#B5A1FF

"========================================================
" Highlight All Math Operator
"========================================================
" C math operators
syn match       cMathOperator     display "[-+/*/%=]"
" C pointer operators
syn match       cPointerOperator  display "->/|/."
" C logical   operators - boolean results
syn match       cLogicalOperator  display "[!<>]=/="
syn match       cLogicalOperator  display "=="
" C bit operators
syn match       cBinaryOperator   display "/(&/||/|/^/|<</|>>/)=/="
syn match       cBinaryOperator   display "/~"
syn match       cBinaryOperatorError display "/~="
" More C logical operators - highlight in preference to binary
syn match       cLogicalOperator  display "&&/|||"
syn match       cLogicalOperatorError display "/(&&/|||/)="

" Math Operator
hi cMathOperator            guifg=#3EFFE2
hi cPointerOperator         guifg=#3EFFE2
hi cLogicalOperator         guifg=#3EFFE2
hi cBinaryOperator          guifg=#3EFFE2
hi cBinaryOperatorError     guifg=#3EFFE2
hi cLogicalOperator         guifg=#3EFFE2
hi cLogicalOperatorError    guifg=#3EFFE2

  再打开你的C文件看看, 是不是又明亮了许多. 还有一个压箱底的要告诉你, 如果你自己增加了一个类型或者结构之类的, 怎么让它也象"int", "void"这样高亮起来呢? 再在上面的文件~/.vim/syntax/c.vim中添加下面的东东:

  这样你自己的类型My_Type_1, My_Type_2, My_Type_3就也可以向"int"一样高亮起来了, 这样的缺点是每增加一个类型, 就要手动在这里添加一下

"========================================================
" My Own DataType
"========================================================
syn keyword cType       My_Type_1 My_Type_2 My_Type_3

3.Ctags

  Ctags让你在程序中跳来跳去,简直就是宝贝一样的东西,Linux内核源码都提供了"make tags"这个选项,下面让我们来了解tags这个文件。

  tags文件是由ctags程序产生的一个索引文件, ctags程序其是叫"Exuberant Ctags", 是Unix上面ctags程序的替代品, 并且比它功能强大, 是大多数Linux发行版上默认的ctags程序. 那么tags文件是做什么用的呢? 如果你在读程序时看了一个函数调用, 或者一个变量, 或者一个宏等等, 你想知道它们的定义在哪儿, 怎么办呢? 用grep? 那会搜出很多不相干的地方. 现在流行用是的<C-]>, 谁用谁知道呀, 当光标在某个函数或变量上时, 按下"Ctrl+]", 光标会自动跳转到其定义处, 够厉害吧, 你不用再羡慕Visual Studio的程序员了,爽翻天~

  你现在先别急着去按<C-]>,因为电脑默认是没ctags程序的,需要你自己去安装,ctags的网站是http://ctags.sourceforge.net,需要在上面手动下载,然后安装,我下的是5.8版本,那就以5.8为例:

$tar -xzvf ctags-5.8.tar.gz

$cd ctags-5.8

$./configure

$make

$make install //需要root权限

  然后去你的源码目录, 如果你的源码是多层的目录, 就去最上层的目录, 在该目录下运行命令: ctags -R,如:

$cd /home/styuan/ctags-5.8

$ctags -R

  此时在/home/styuan/ctags-5.8目录下会生成一个 tags 文件, 现在用vim打开/home/styuan/ctags-5.8/main.c

$ vim /home/styuan/ctags-5.8/main.c

  再在vim中运行命令:

:set tags=/home/styuan/ctags-5.8/tags

  该命令将tags文件加入到vim中来, 你也可以将这句话放到~/.vimrc中去, 如果你经常在这个工程编程的话.
  下面要开始真刀实枪的开干了, 如下图, 将光标放在createTagsForEntry()函数上

  此时按下<C-]>, 光标会自动跳到createTagsForEntry()函数的定义处, 见下图:

  如果此时你还想再跳回刚才的位置, 你还可以按<C-T>, 这样又跳回到createTagsForEntry()函数被调用的地方了, 变量, 结构, 宏, 等等, 都可以的, 赶快试试吧.....

  不过还有一个小瑕疵, 你修改程序后, 比如增加了函数定义, 删除了变量定义, tags文件不能自动rebuild, 你必须手动再运行一下命令:

$ ctags -R

4.TagList,高效阅读代码

  下载地址http://sourceforge.net/projects/vim-taglist/files/vim-taglist/

  解压taglist_45.zip,可以看到有两个目录doc和plugin,结构如下

taglist_45
|
|-------- doc
| \-------- taglist.txt
|
\-------- plugin
\---------- taglist.vim

  执行下列shell命令,即安装完成

cp  doc/taglist.txt     ~/.vim/doc/
cp  plugin/taglist.vim  ~/.vim/plugin/

  使用方法:

  在源码目录下,执行ctags -R对各目录递归创建生成tags文件

  用Vim打开源码文件,以命令模式执行Tlist,即可启用Taglist插件,<F1>可以查看taglist的帮助信息

  同时在.vimrc中配置taglist

"
" taglist
"
let Tlist_Show_One_File=1    "只显示当前文件的tags
let Tlist_WinWidth=40        "设置taglist宽度
let Tlist_Exit_OnlyWindow=1  "tagList窗口是最后一个窗口,则退出Vim
let Tlist_Use_Right_Window=1 "在Vim窗口右侧显示taglist窗口

5.WinManager 文件浏览器和窗口管理器

  下载地址:http://www.vim.org/scripts/script.php?script_id=95

  解压后得到两个文件夹plugin和doc,将他们拷贝到~/.vim下面的相应目录,如taglist的安装

  修改.vimrc文件

"winmanager设置
"整合taglist窗口
let g:winManagerWindowLayout = 'FileExplorer|TagList'
"设置快捷键,wm呼出
nmap wm :WMToggle<cr>

  在vim中使用wm键即可呼出窗口,上面的例子中已经在使用了,其中左上角为winmanager窗口,左下角为taglist窗口。

6.QuickFix 窗口

  在第一张图中有quickfix窗口,在make的时候,可能会出现错误,并且让错误定位到相应文件,这就需要quickfix出场了,例如故意在xxx.c中每一行加一个逗号,然后

  :make

  显然编译会报很多错误, 当编译结束并退出到源码界面时, 刚才编译器报的错误都已经看不到了, 但是我们可以用QuickFix窗口再将错误信息找出来, 用下面的命令调出QuickFix窗口:

  :cw

  当光标移动到相应的位置,按回车,还会跳到错误文件对应的地方哦,是不是很爽~同时还可以跳转:

:cn        // 切换到下一个结果
:cp        // 切换到上一个结果

7.c/h文件间相互切换

  作为一个C程序员, 日常Coding时在源文件与头文件间进行切换是再平常不过的事了, 直接用vim打开其源/头文件其实也不是什么麻烦事, 但是只用一个按键就切换过来了, 这是多么贴心的功能啊....

  插件名:A

  下载地址:http://www.vim.org/scripts/script.php?script_id=31

  下载好了之后,将a.vim放到 ~/.vim/plugin 文件夹中就相当于安装好了

:A     在新Buffer中切换到c/h文件
:AS    横向分割窗口并打开c/h文件
:AV    纵向分割窗口并打开c/h文件
:AT    新建一个标签页并打开c/h文件

8.自动补全之AutoComplPop

  AutoComplPop支持代码(普通变量函数)的自动弹出

  下载地址:http://www.vim.org/scripts/script.php?script_id=1879 

  同其他脚本插件的安装方法一致,将解压后的文件拷贝到~/.vim/ 下的相应目录里:

  autoload/*     ->    ~/.vim/autoload/

  doc/*            ->    ~/.vim/doc/

  plugin/*        ->    ~/.vim/plugin/

  重新打开vim即可使用。添加help文件:helptags ~/.vim/doc/即可(打开帮助文件:h(elp) autocomplpop)效果图如下:

  9.c++代码的自动补全

  插件:OmniCppComplete,支持类的 . , ->, :: 操作符的自动补全

  下载地址:http://www.vim.org/scripts/script.php?script_id=1520

  同其他脚本插件的安装方法一致,将解压后的文件拷贝到~/.vim/ 下的相应目录里:

  autoload/*     ->    ~/.vim/autoload/

  doc/*            ->    ~/.vim/doc/

  after/*          ->    ~/.vim/after/

  同时在.vimrc中增加相应配置

"omnicppcomplete配置
filetype plugin indent on
set completeopt=menu,menuone
"打开.提示
let OmniCpp_MayCompleteDot=1
"打开->提示
let OmniCpp_MayCompleteArrow=1
"打开::提示
let OmniCpp_MayCompleteScope=1
"打开namespace
let OmniCpp_NamespaceSearch=1
"打开全局搜索
let OmniCpp_GlobalScopeSearch=1
"默认命名空间为std
let OmniCpp_DefaultNamespace=["std"] 
"打开函数提示function
let OmniCpp_ShowPrototypeInAbbr=1
"自动定位到第二个
let OmniCpp_SelectFirstItem = 2 
"设置生成std tag的快捷键为tag
map tag :!ctags -R --c++-kinds=+p --fields=+iaS --extra=+q <CR>

  当在vim中敲tag后会生成相应的tags,然后set tags=xxx.tags即可。

  注:ctags -R --c++-kinds=+p --fields=+iaS --extra=+q表示生成tags,是一个shell命令,所以绑定按键的时候要使用map tag :!ctags -R --c++-kinds=+p --fields=+iaS --extra=+q <CR>,表示在vim中按下tag命令,执行相应shell命令,之后同样需要设置tags:set tags=xxx.tags,如果觉得每次设置不方便,并且常用目录不会改变,也可以写在.vimrc

  set tags+=/home/xxx/tags

10.其他设置

"设置行号
set number

"自动缩进
set autoindent
set cindent

"缩进宽度设置
set tabstop=4
set softtabstop=4
set shiftwidth=4
set expandtab
"set noexpandtab

"对齐风格
set cino=g0,:0

   OK,大功告成,当然,整合之后,窗口比较多,所以附上vim常用窗口操作

 四、vim多窗口使用技巧

1、打开多个窗口

  打开多个窗口的命令以下几个:
  横向切割窗口
  :new+窗口名(保存后就是文件名) 
  :split+窗口名,也可以简写为:sp+窗口名
  纵向切割窗口名
  :vsplit+窗口名,也可以简写为:vsp+窗口名

2、关闭多窗口

  可以用:q!,也可以使用:close,最后一个窗口不能使用close关闭。使用close只是暂时关闭窗口,其内容还在缓存中,只有使用q!、w!或x才能真能退出。
  :tabc 关闭当前窗口
  :tabo 关闭所有窗口

3、窗口切换

  :ctrl+w+j/k,通过j/k可以上下切换,或者:ctrl+w加上下左右键,还可以通过快速双击ctrl+w依次切换窗口。

4、窗口大小调整

  纵向调整
  :ctrl+w + 纵向扩大(行数增加)
  :ctrl+w - 纵向缩小 (行数减少)
  :res(ize) num  例如::res 5,显示行数调整为5行
  :res(ize)+num 把当前窗口高度增加num行
  :res(ize)-num 把当前窗口高度减少num行
  横向调整
  :vertical res(ize) num 指定当前窗口为num列
  :vertical res(ize)+num 把当前窗口增加num列
  :vertical res(ize)-num 把当前窗口减少num列

5、给窗口重命名

  :f file

6、vi打开多文件

  vi a b c
  :n 跳至下一个文件,也可以直接指定要跳的文件,如:n c,可以直接跳到c文件
  :e# 回到刚才编辑的文件

7、文件浏览

  :Ex 开启目录浏览器,可以浏览当前目录下的所有文件,并可以选择
  :Sex 水平分割当前窗口,并在一个窗口中开启目录浏览器
  :ls 显示当前buffer情况

8、vi与shell切换

  :shell 可以在不关闭vi的情况下切换到shell命令行
  :exit 从shell回到vi

转载于:https://www.cnblogs.com/ChinaHook/p/5584824.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1. 安装vim 在Linux系统中,vim通常已经预装了。如果没有安装,可以使用以下命令安装: ``` sudo apt-get install vim ``` 2. 配置vimvim中,可以通过配置文件.vimrc来配置vim。可以使用以下命令创建.vimrc文件: ``` vim ~/.vimrc ``` 在.vimrc文件中添加以下内容: ``` syntax on set nu set tabstop=4 set shiftwidth=4 set expandtab set autoindent set cindent ``` 这些配置将会: - 打开语法高亮 - 显示行号 - 设置制表符宽度为4个空格 - 设置缩进宽度为4个空格 - 将制表符转换为空格 - 自动缩进 - 使用C语言缩进 3. 安装插件 vim有很多插件可以增强其功能。以下是一些常用的插件: - YouCompleteMe:自动补全插件 - NERDTree:文件浏览器插件 - Tagbar:显示代码结构的插件 - CtrlP:快速查找文件的插件 可以使用vim插件管理器Vundle来安装插件。首先,需要安装Vundle: ``` git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim ``` 然后,在.vimrc文件中添加以下内容: ``` set rtp+=~/.vim/bundle/Vundle.vim call vundle#begin() Plugin 'VundleVim/Vundle.vim' Plugin 'Valloric/YouCompleteMe' Plugin 'scrooloose/nerdtree' Plugin 'majutsu-no-ierukana/tagbar' Plugin 'kien/ctrlp.vim' call vundle#end() ``` 保存并退出.vimrc文件,然后在vim中执行以下命令安装插件: ``` :PluginInstall ``` 安装完成后,可以在.vimrc文件中配置插件。例如,以下是配置YouCompleteMe插件的示例: ``` let g:ycm_global_ycm_extra_conf = '~/.vim/bundle/YouCompleteMe/third_party/ycmd/cpp/ycm/.ycm_extra_conf.py' let g:ycm_autoclose_preview_window_after_completion = 1 let g:ycm_key_invoke_completion = '<C-Space>' ``` 以上配置将会: - 设置YouCompleteMe的配置文件路径 - 自动关闭自动补全窗口 - 设置自动补全快捷键为Ctrl+Space 4. 使用vim进行C语言开发vim中,可以使用以下命令打开C语言文件: ``` vim example.c ``` 在C语言文件中,可以使用以下命令编译并运行程序: ``` :!gcc % -o example && ./example ``` 以上命令将会: - 使用gcc编译当前文件 - 将编译后的可执行文件命名为example - 运行example程序 可以使用以下命令保存并退出vim: ``` :wq ``` 以上是在Linux系统中搭建C语言开发环境的步骤。在Windows系统中,可以使用vim for Windows来搭建开发环境

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值