Linux的实验报告:关于VIM的IDE的配置
一、实验目的:
1.简单配置VIM,使用可以更好的进行编程;
2.使用配置环境,进行编程;
3.理解Linux下用VIM编程的好处,学习使用Linux。
二、实验内容:
通过配置VIM的插件,及相应的.vimrc的内容来实现VIM的编程环境构建。插件自己任选。
三、基本信息:
1.个人信息:
班级:
学号:
姓名:
2.系统信息:
ubuntu-12.04.1-dvd-i386系统。
四、实验步骤:
1.安装VIM
由于个人装的是DVD版本的系统,已集成VIM;其他电脑可以终端使用sudo apt-get install vim来进行安装vim,对于vim 的简单使用可以在终端:vimtutor来学习vim的简单使用。
另外还需要安装exuberant-ctags,和vim-doc。以后有用。
2.安装gcc,g++编译器
终端:sudo apt-get install gcc
sudo apt-get install g++
sudo apt-get update
3.介绍一些路径
~./vim/plugin
~/.vim/doc
~/.vim/syntax
如果没有这些,自己创建;
注意:本文所指.vimrc均指~/.vimrc文件。
4.配置过程:
(1)简单的配置:
语法高亮的配置:
新建~/.vim/syntax/c.vim
文件内容如下:
.vimrc文件的内容:
ifhas("syntax")
syntax on " 语法高亮
endif
colorschemeron " elflord ron peachpuffdefault 设置配色方案,vim自带的配色方案保存在/usr/share/vim/vim72/colors目录下
" detect filetype
iletype on
filetype plugin on
" If using a darkbackground within the editing area and syntax highlighting
" turn onthis option as well
setbackground=dark
" Uncommentthe following to have Vim jump to the last position when
" reopening afile
ifhas("autocmd")
au BufReadPost *if line("'\"") > 1 && line("'\"")<= line("$") | exe "normal! g'\"" | endif
"have Vimload indentation rules and plugins according to the detected filetype
filetype pluginindent on
endif
" Thefollowing are commented out as they cause vim to behave a lot
" differentlyfrom regular Vi. They are highly recommended though.
"setignorecase " 搜索模式里忽略大小写
"setsmartcase " 如果搜索模式包含大写字符,不使用 'ignorecase' 选项。只有在输入搜索模式并且打开 'ignorecase' 选项时才会使用。
set autowrite " 自动把内容写回文件: 如果文件被修改过,在每个 :next、:rewind、:last、:first、:previous、:stop、:suspend、:tag、:!、:make、CTRL-] 和 CTRL-^命令时进行;用 :buffer、CTRL-O、CTRL-I、'{A-Z0-9} 或 `{A-Z0-9} 命令转到别的文件时亦然。
setautoindent " 设置自动对齐(缩进):即每行的缩进值与上一行相等;使用 noautoindent 取消设置
setsmartindent " 智能对齐方式
set tabstop=4 " 设置制表符(tab键)的宽度
setsofttabstop=4 " 设置软制表符的宽度
setshiftwidth=4 " (自动) 缩进使用的4个空格
set cindent " 使用 C/C++ 语言的自动缩进方式
setcinoptions={0,1s,t0,n-2,p2s,(03s,=.5s,>1s,=1s,:1s "设置C/C++语言的具体缩进方式
setbackspace=2 " 设置退格键可用
set showmatch " 设置匹配模式,显示匹配的括号
set linebreak " 整词换行
setwhichwrap=b,s,<,>,[,] " 光标从行首和行末时可以跳到另一行去
"set hidden" Hide buffers when they are abandoned
set mouse=a " Enable mouse usage (allmodes) "使用鼠标
set number " Enable line number "显示行号
"set previewwindow " 标识预览窗口
sethistory=50 " set commandhistory to 50 "历史记录50条
"--状态行设置--
set laststatus=2" 总显示最后一个窗口的状态行;设为1则窗口数多于一个的时候显示最后一个窗口的状态行;0不显示最后一个窗口的状态行
set ruler " 标尺,用于显示光标位置的行号和列号,逗号分隔。每个窗口都有自己的标尺。如果窗口有状态行,标尺在那里显示。否则,它显示在屏幕的最后一行上。
"--命令行设置--
set showcmd " 命令行显示输入的命令
set showmode " 命令行显示vim当前模式
"--findsetting--
set incsearch " 输入字符串就显示匹配点
set hlsearch
(2)插件管理器的安装:
sudo apt-get install vim-addons-manager;
(3) 在程序中跳来跳去: Ctags 的使用
ctags程序其是叫"Exuberant Ctags", 是Unix上面ctags程序的替代品, 并且比它功能强大, 是大多数Linux发行版上默认的ctags程序. 那么tags文件是做什么用的呢? 如果你在读程序时看了一个函数调用, 或者一个变量, 或者一个宏等等, 你想知道它们的定义在哪儿, 怎么办呢? 用grep? 那会搜出很多不相干的地方. 现在流行用是的<C-]>, 谁用谁知道呀, 当光标在某个函数或变量上时, 按下"Ctrl+]",光标会自动跳转到其定义处。
安装:进入官网:http://ctags.sourceforge.net下载
解压:将对应的文件放在之前所建立的对应文件下。
建立:mkdir tags ,进入tags,终端运行ctags -R;
配置:在.vimrc文件中的配置内容是:
"--ctags setting--
"按下F5重新生成tag文件,并更新taglist
map<F5> :!ctags -R --c++-kinds=+p --fields=+iaS --extra=+q.<CR><CR> :TlistUpdate<CR>
imap<F5> <ESC>:!ctags -R --c++-kinds=+p --fields=+iaS --extra=+q.<CR><CR> :TlistUpdate<CR>
settags=/home/zhaoyang/tags
settags+=./tags "add current directory's generated tags file
settags+=tags "add new tags file(刚刚生成tags的路径,在ctags-R 生成tags文件后,不要将tags移动到别的目录,否则ctrl+]时,会提示找不到源码文件)
结果:将光标放在stu上面,然后按F5,再按Ctrl+],来看结果,光标自动跳转到stu的定义处。
(4)高效地浏览源码 -- 插件: TagList
在Windows平台上用过Source Insight看程序的人肯定很熟悉代码窗口左边那个Symbol窗口, 那里面列出了当前文件中的所有宏, 全局变量, 函数名等, 在查看代码时用这个窗口总揽全局, 切换位置相当方便, 今天告诉你一个vim的插件: Taglist, 可以同样实现这个功能.
"TagList"是一个用来浏览源代码的Vim插件, 这个插件可以让你高效地浏览各种不同语言编写的的源代码。
安装:vim-addons install taglist
配置:在.vimrc中添加以下内容
"--Taglist setting --
letTlist_Ctags_Cmd='ctags' "因为我们放在环境变量里,所以可以直接执行
letTlist_Use_Right_Window=1 "让窗口显示在右边,0的话就是显示在左边
letTlist_Show_One_File=0 "让taglist可以同时展示多个文件的函数列表
letTlist_File_Fold_Auto_Close=1 "非当前文件,函数列表折叠隐藏
letTlist_Exit_OnlyWindow=1 "当taglist是最后一个分割窗口时,自动推出vim
"是否一直处理tags.1:处理;0:不处理
letTlist_Process_File_Always=1 "实时更新tags
letTlist_Inc_Winwidth=0
使用:打开文件,命令模式::Tlist,即可以看到。
(5)文件浏览器和窗口管理器 -- 插件: WinManager
安装:vim-addons install winmanager
配置:在.vimrc中添加以下内容:
"--winmanager---
letg:winManagerWindowLayout='FileExplorer|TagList'
nmapwm :WMToggle<cr>
使用:wm
(6)代码自动补全omnicppcomplete:
安装:vim-addons install omnicppcomplete
配置:在.vimrc中添加以下内容:
"-- omnicppcomplete setting --
"按下F3自动补全代码,注意该映射语句后不能有其他字符,包括tab;否则按下F3会自动补全一些乱码
imap<F3> <C-X><C-O>
"按下F2根据头文件内关键字补全
imap<F2> <C-X><C-I>
setcompleteopt=menu,menuone " 关掉智能补全时的预览窗口
letOmniCpp_MayCompleteDot = 1 " autocomplete with .
letOmniCpp_MayCompleteArrow = 1 " autocomplete with ->
letOmniCpp_MayCompleteScope = 1 " autocomplete with ::
letOmniCpp_SelectFirstItem = 2 " select first item (but don't insert)
letOmniCpp_NamespaceSearch = 2 " search namespaces in this and included files
letOmniCpp_ShowPrototypeInAbbr = 1 " show function prototype in popup window
letOmniCpp_GlobalScopeSearch=1 " enable the global scope search
letOmniCpp_DisplayMode=1 " Class scope completion mode: always show allmembers
"letOmniCpp_DefaultNamespaces=["std"]
letOmniCpp_ShowScopeInAbbr=1 " show scope in abbreviation and remove the lastcolumn
letOmniCpp_ShowAccess=1
使用:在stu的后面放置光标,按F5生成tags文件,并使用Ctrl+x Ctrl+o,即可以使用了。结果下图
此时有一些快捷键:
Ctrl+P |
向前切换成员 |
Ctrl+N |
向后切换成员 |
Ctrl+E |
表示退出下拉窗口, 并退回到原来录入的文字 |
Ctrl+Y |
表示退出下拉窗口, 并接受当前选项 |
如果你增加了一些成员变量, 全能补全还不能马上将新成员补全, 需要你重新生成一下tags文件, 但是你不用重启vim, 只是重新生成一下tags文件就行了, 这时全能补全已经可以自动补全了, 还真够"全能"吧.
vim中的其他补全方式还有:
Ctrl+X Ctrl+L |
整行补全 |
Ctrl+X Ctrl+N |
根据当前文件里关键字补全 |
Ctrl+X Ctrl+K |
根据字典补全 |
Ctrl+X Ctrl+T |
根据同义词字典补全 |
Ctrl+X Ctrl+I |
根据头文件内关键字补全 |
Ctrl+X Ctrl+] |
根据标签补全 |
Ctrl+X Ctrl+F |
补全文件名 |
Ctrl+X Ctrl+D |
补全宏定义 |
Ctrl+X Ctrl+V |
补全vim命令 |
Ctrl+X Ctrl+U |
用户自定义补全方式 |
Ctrl+X Ctrl+S |
拼写建议 |
(7 (7)加速你的补全 -- 插件:SuperTab
安装:vim-addons install supertab
配置:在.vimrc文件中配置以下内容
let g:SuperTabRetainCompletionType=2
letg:SuperTabDefaultCompletionType="<C-X><C-O>"以后可以按
tab进行自动补全了。
五、实验总结:
vim的使用是对程序员的一个帮助,感谢各位前辈们,留下了许多比较好配置文件和许多vim配置方法,让我们可以使vim更加的有利于我们的编码工作。Linux有了VIM,是程序员人福气!!!