我的vim配置
之前都在虚拟机下面捣鼓Linux,有种隔靴搔痒的感觉。为了更快地熟悉Linux系统,重新安装了Ubuntu,首先就是配置vim。
下面是我的vim配置,为了方便,我在代码后添加注释说明。
1.配置C/C++风格编程方式。
sudo vi /etc/vim/vimrc,在末尾添加如下代码:
""""""""""""""""文本格式和排版"""""""""""""""""""""
set confirm "在处理未保存或只读文件的时候,弹出确认
set formatoptions=tcrqn "自动格式化
set autoindent "继承前一行的缩进模式,适用于多行注释
set smartindent "为C程序提供自动缩进
set smartindent "使用C样式缩进
set tabstop=4 "制表符为4
set softtabstop=4 "统一缩进为4
set shiftwidth=4
""""""""""""""""C编译和运行"""""""""""""""""""""""""
map<F5> :call CompileRunGcc()<CR>
fun! CompileRunGcc()
exec "w"
exec "!gcc % -o %<"
exec "! ./%<"
endfunc
""""""""""""""""C++编译和运行"""""""""""""""""""""""
map<C-F5> :call CompileRunGpp()<CR>
fun! CompileRunGpp()
exec "w"
exec "!g++ % -o %<"
exec "! ./%<"
endfunc
2.源码结构及函数列表
$ sudo apt-get install ctags 安装ctags
$ cd /home/luhaiyang/文档 cd到你要建立的索引目录
$ ctags -R *
$ sudo vi /etc/vim/vimrc 打开vimrc,添加如下代码
"""""""""""""""""ctags setting""""""""""""""""""""""
"按下F4重新生成tag文件,并更新taglist
map<F4> :!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>
set tags=tags
set tags+=./tags
set tags+=~/home/luhaiyang/文档/tags "路径自己修改
3.代码补全
$ sudo apt-get install vim vim-scripts vim-doc
$ vim-addons install omnicppcomplete 安装omnicppcomplete
"""""""""""""omnicppcomplete setting"""""""""""""""""
"按下F3自动补全代码,注意该映射语句后不能有其他字符,包括tab;否则按下F3会自动补
全一些乱码
imap <F3> <C-X><C-O>
"按下F2根据头文件内关键字补全
imap <F2> <C-X><C-I>
set completeopt=menu,menuone " 关掉智能补全时的预览窗口
let OmniCpp_MayCompleteDot = 1 " autocomplete with .
let OmniCpp_MayCompleteArrow = 1 " autocomplete with ->
let OmniCpp_MayCompleteScope = 1 " autocomplete with ::
let OmniCpp_SelectFirstItem = 2 " select first item (but don't insert)
let OmniCpp_NamespaceSearch = 2 " search namespaces in this and included files
let OmniCpp_ShowPrototypeInAbbr = 1 " show function prototype in popup window
let OmniCpp_GlobalScopeSearch=1 " enable the global scope search
let OmniCpp_DisplayMode=1 " Class scope completion mode: always show all members
"let OmniCpp_DefaultNamespaces=["std"]
let OmniCpp_ShowScopeInAbbr=1 " show scope in abbreviation and remove the last column
let OmniCpp_ShowAccess=1
$ctags -R --c++-kinds=+p --fields=+iaS --extra=+q 生成tags文件,可以与omnicppcomplete配合运作
$ sudo apt-get install build-essential 下载C++标准库
$ cd /usr/inclde/c++
$ ctags -R --c++-kinds=+p --fields=+iaS --extra=+q 生成tags文件
$ sudo vi /etc/vim/vimrc 添加下面一行
set tags+=/usr/include/c++/tags
4.提示函数原型
echofunc下载地址。将文件放到/ect/vim/下。
$ ctags -R --fields=+IS 创建tags文件
希望能够帮助到大家!
参考:
http://blog.csdn.net/jack_incredible/article/details/7261908
http://www.vimer.cn/2009/10/把vim打造成一个真正的ide1.html
我的vim配置的更多相关文章
- acm的ubuntu (ubuntu16.04 安装指南,chrome安装,vim配置,git设置和github,装QQ)
日常手贱把ubuntu14.04更新到了16.04,然后就game over了.mdzz,不然泥萌也看不到这篇博客了=.= 然后花了些时间重装了一个16.04版的,原来那个14.04的用可以用,就是动 ...
- 简单快捷好用的vim配置和终端配置推荐
vim 配置实用spf13-vim,安装方便简单快捷,极力推荐. 另外oh-my-zsh 终端配置很好,与之搭配使用效果更佳. 安装都很简单,一个脚本搞定, 都是在gitHub上开源的,自行搜索,这里 ...
- 快速学习C语言三: 开发环境, VIM配置, TCP基础,Linux开发基础,Socket开发基础
上次学了一些C开发相关的工具,这次再配置一下VIM,让开发过程更爽一些. 另外再学一些linux下网络开发的基础,好多人学C也是为了做网络开发. 开发环境 首先得有个Linux环境,有时候家里机器是W ...
- centos vim配置高亮语法和格式化粘贴
centos vim配置高亮语法和格式化粘贴 设置vim别名和高亮grep词语 echo -e "\nalias vi=vim\nalias grep='grep --color'\n&qu ...
- vim配置方法
/etc/vimrc (公共的) ~/.vimrc (私人的) rpm -qa|grep vim 这个命令,如何vim已经正确安装,则会显示上面三个包的名称 全部安装 yum -y install v ...
- VIM配置相关记录
把一直使用中的vim配置做个GIT入库管理,也把之前积累在机器上的文档,做个汇总. https://github.com/wujuguang/kyvim 1. 安装完整版vim vi和vim的区别?在 ...
- Vim配置及说明——IDE编程环境
Vim配置及说明——IDE编程环境 Vim配置及说明——IDE编程环境 1.基本及字体 2.插件管理 3.主题风格 4.窗口设置 5.目录树导航 6.标签导航 7.taglist 8.多文档编辑 9. ...
- Env:VIM配置
注:文章来自于http://www.cnblogs.com/ma6174/archive/2011/12/10/2283393.html 花了很长时间整理的,感觉用起来很方便,共享一下. 我的vim配 ...
- vim配置python开发环境
vim配置python开发环境 一.安装vim sudo apt-get install vim 二.vim基础配置 #Centos6.5 /usr/share/vim/vim72 vi /etc/v ...
- Vim配置IDE开发环境
我的vim IDE界面: 1.安装Vim和Vim基本插件首先安装好Vim和Vim的基本插件.这些使用apt-get安装即可:lingd@ubuntu:~/arm$sudo apt-get instal ...
随机推荐
- 第二篇、为UITableViewCell 高度自适应加速 缓存cell的高度
通过NSCache缓存已经算好的行高 @interface ZHCellHeightCalculator : NSObject //系统计算高度后缓存进cache -(void)setHeight:( ...
- sql2000下如何新建并使用dbml
默认新建的dbml只是支持sql2005及其以上版本. 但是现在是sql2000怎么办?我要是想要用linq to sql 的? 解决方案如下: 1首先打开cmd,在其中cd到sqlmetal.exe ...
- (转)NoSQL系列:选择合适的数据库
内容目录: 为什么使用NoSQL数据库? 键值数据库 文档数据库 列族数据库 图数据库 附思维导图 参考 NoSQL系列:选择合适的数据库 为什么使用NoSQL数据库? 阻抗失衡 关系模型和内存中的数 ...
- Javascript中的函数
Javascript中的函数 1.什么是函数 函数是被命名的,独立的,完成特定功能的代码段.其可能给调用它的程序返回值,我们把这个代码段就称之为"函数". 被命名的:函数大部分都是 ...
- jQuery 全选 反选 单击行改变背景色
我先把CSS样式放出来,其实这个可以直接忽略 ;;font-size:12px;font-family:微软雅黑;} .datagrid{width:100%;} .datagird tr th{ba ...
- c# 两个数组比较,将重复部分去掉,返回不重复部分
List<string> Ashuzu = new List<string>(); Ashuzu.Add("); Ashuzu.Add("); List&l ...
- DTCMS通用分页列表
<%set DataTable newsList=get_article_list(channel, category_id, pagesize, page, "status=0&qu ...
- Delphi中的四舍五入函数
一.Delphi中的四舍五入法 四舍五入是一种应用非常广泛的近似计算方法,针对不同的应用需求,其有算术舍入法和银行家舍入法两种. 所谓算术舍入法,就是我们通常意义上的四舍五入法.其规则 ...
- 【CSLA】Component-based,Scalable,LogicalArchitecture
我能说我没看懂吗 ? http://www.cnblogs.com/lonely7345/archive/2010/02/06/1665171.html
- easy ui 下拉框绑定数据select控件
easy ui 中的下拉框控件叫做select,具体代码如下: html代码:①.这是一个公司等级的下拉框 <tr> <td>公司等级:</td> <td&g ...