在ubuntu下使用Vim学习C++

  之前就买过java,c++的书,可是由于懒惰,一直没看,丢在那里5年了。(以上废话)。

  现在linux下还没有好的C++ IDE。网络上的朋友都推荐eclipse和 code::block。粗略的看了下code::block,建工程,管理工程,功能很多,准备以后学习下。 学习C++,目前还是用Vim比较好,轻量。各种丰富的插件支持。

  开发环境:

  系统:ubuntu 14.04LTS。

  工具:Vim7.4

  编译,链接,运行:g++

  现在贴上Vim的配置:(这是这篇随笔的主要内容,也是为了个人保存配置。层次低,希望看官不要笑话。)

  

set nocompatible              " be iMproved
filetype off                  " required!

set rtp+=~/.vim/bundle/vundle/
call vundle#rc()

" let Vundle manage Vundle
" required!
Bundle ‘gmarik/vundle‘

" My bundles here:
"
" original repos on GitHub
Plugin ‘SirVer/ultisnips‘
Plugin ‘honza/vim-snippets‘

Bundle ‘tpope/vim-fugitive‘
Bundle ‘Lokaltog/vim-easymotion‘
Bundle ‘rstacruz/sparkup‘, {‘rtp‘: ‘vim/‘}
Bundle ‘tpope/vim-rails.git‘
" vim-scripts repos
Bundle ‘L9‘
Bundle ‘FuzzyFinder‘
" non-GitHub repos
Bundle ‘git://git.wincent.com/command-t.git‘
Bundle ‘https://github.com/scrooloose/nerdtree‘
Bundle ‘https://github.com/majutsushi/tagbar‘
Bundle ‘https://github.com/tpope/vim-commentary‘
Bundle ‘https://github.com/scrooloose/syntastic‘
Bundle ‘https://github.com/altercation/vim-colors-solarized‘
Bundle ‘https://github.com/kien/ctrlp.vim‘
Bundle ‘https://github.com/Raimondi/delimitMate‘
Bundle ‘https://github.com/tpope/vim-surround‘
Bundle ‘https://github.com/vim-scripts/bufexplorer.zip‘
Bundle ‘https://github.com/Valloric/YouCompleteMe‘
Bundle ‘https://github.com/scrooloose/nerdcommenter‘

Plugin ‘exvim/ex-tagbar‘ 

" Git repos on your local machine (i.e. when working on your own plugin)
" Bundle ‘file:///Users/gmarik/path/to/plugin‘
" ...

filetype plugin indent on     " required!
"
" Brief help
" :BundleList          - list configured bundles
" :BundleInstall(!)    - install (update) bundles
" :BundleSearch(!) foo - search (or refresh cache first) for foo
" :BundleClean(!)      - confirm (or auto-approve) removal of unused bundles
"
" see :h vundle for more details or wiki for FAQ
" NOTE: comments after Bundle commands are not allowed.

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" GVIM自身的设置
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
language messages zh_CN.utf-8   " 解决consle输出乱码
syntax enable
set background=dark
colorscheme solarized
"colorscheme blue              " 灰褐色主题
"colorscheme delek
"colorscheme evening
"colorscheme murphy
"colorscheme slate
"colorscheme darkblue
"colorscheme desert
"colorscheme koehler
"colorscheme pablo
"colorscheme anotherdark
"colorscheme elflord
"colorscheme asmanian2
"colorscheme Dark
"colorscheme peachpuff
"colorscheme torte
"colorscheme bensday
"colorscheme zellner
"colorscheme morning
"colorscheme ron
"colorscheme corn
"colorscheme shine

set guioptions-=T        " 隐躲工具栏
"set guifont=DejaVu\ Sans\ mono\ 11        " 字体 && 字号
if has("gui_gtk2")
    set guifont=Bitstream\ Vera\ Sans\ Mono\ 12,Fixed\ 12
    set guifontwide=Microsoft\ Yahei\ 12,WenQuanYi\ Zen\ Hei\ 12
endif 

set noerrorbells        " 封闭错误提示音
set nobackup            " 不要备份文件
set linespace=0            " 字符间插进的像素行数目
set shortmess=atI        " 启动的时候不显示那个援助索马里儿童的提示
set novisualbell        " 不要闪烁
set scrolloff=3            " 光标移动到buffer的顶部和底部时保持3行间隔
set mouse=a             " 可以在buffer的任何地方 ->
set selection=exclusive         " 使用鼠标(类似office中 ->
set selectmode=mouse,key        " 在工作区双击鼠标定位)
set cursorline                  " 突出显示当前行
set nu   " 显示行号
set whichwrap+=<,>,h,l        " 答应backspace和光标键跨越行边界
set completeopt=longest,menu    "按Ctrl+N进行代码补全

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" 文本格式和排版
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
set list                        " 显示Tab符,->
set listchars=tab:\|\ ,         " 使用一高亮竖线代替
set tabstop=4            " 制表符为4
set autoindent            " 自动对齐(继续前一行的缩进方式)
set smartindent            " 智能自动缩进(以c程序的方式)
set softtabstop=4
set shiftwidth=4        " 换行时行间交错使用4个空格
set noexpandtab            " 不要用空格代替制表符
set cindent            " 使用C样式的缩进
set smarttab            " 在行和段开始处使用制表符
set nowrap            " 不要换行显示一行 

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" 状态行(命令行)的显示
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
set cmdheight=2             " 命令行(在状态行下)的高度,默以为1,这里是2
set ruler                 " 右下角显示光标位置的状态行
set laststatus=2         " 开启状态栏信息
set wildmenu             " 增强模式中的命令行自动完成操纵 

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" 文件相关
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
set fenc=utf-8
set encoding=utf-8        " 设置vim的工作编码为utf-8,假如源文件不是此编码,vim会进行转换后显示
set fileencoding=utf-8        " 让vim新建文件和保存文件使用utf-8编码
set fileencodings=utf-8,gbk,cp936,latin-1
filetype on                     " 侦测文件类型
filetype indent on                 " 针对不同的文件类型采用不同的缩进格式
filetype plugin on                 " 针对不同的文件类型加载对应的插件

syntax on                     " 语法高亮
filetype plugin indent on    " 启用自动补全

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" 查找
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
set hlsearch                 " 开启高亮显示结果
set nowrapscan               " 搜索到文件两端时不重新搜索
set incsearch                " 开启实时搜索功能

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" 实用功能
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

" 设置NerdTree
map <F3> :NERDTreeMirror<CR>
map <F3> :NERDTreeToggle<CR>

"clang-complete
let g:clang_complete_copen=1
let g:clang_periodic_quickfix=1
let g:clang_snippets=1
let g:clang_close_preview=1
let g:clang_use_library=1
let g:clang_user_options=‘-stdlib=libstdc++ -std=c++11 -I/usr/include‘
let g:neocomplcache_enable_at_startup = 1

""""""""""""YCM""""""""""""""""""""
let g:ycm_global_ycm_extra_conf = ‘~/.vim/bundle/YouCompleteMe/.ycm_extra_conf.py‘
let g:ycm_collect_identifiers_from_tags_files = 1
let g:ycm_seed_identifiers_with_syntax = 1
let g:ycm_confirm_extra_conf = 0
let g:ycm_cache_omnifunc=0
let g:ycm_complete_in_comments=1
let g:ycm_min_num_of_chars_for_completion=1
let g:ycm_use_ultisnips_completer=0
let g:ycm_key_invoke_completion = ‘<S-Space>‘

"设置跳转的快捷键,可以跳转到definition和declaration
nnoremap <leader>gc :YcmCompleter GoToDeclaration<CR>
nnoremap <leader>gf :YcmCompleter GoToDefinition<CR>
nnoremap <leader>gg :YcmCompleter GoToDefinitionElseDeclaration<CR>
"nmap <F4> :YcmDiags<CR>

"""""""""""""NERDCommenter""""""""""""""""""
let mapleader = ","
" NERD_commenter.vim
" http://www.vim.org/scripts/script.php?script_id=1218
" Toggle单行注释/“性感”注释/注释到行尾/取消注释
map <leader>cc ,c<space>
map <leader>cs ,cs
map <leader>c$ ,c$
map <leader>cu ,cu
" UltiSnips 的 tab 键与 YCM 冲突,重新设定
let g:UltiSnipsExpandTrigger="<leader><tab>"
let g:UltiSnipsJumpForwardTrigger="<leader><tab>"
let g:UltiSnipsJumpBackwardTrigger="<leader><s-tab>"

""""""""""""""""""tagbar""""""""""""""""""""""""""""
nmap <F4> :TagbarToggle<CR>

"""""""""""""""""""编译和运行""""""""""""""""""""""""""""""""
" <F5> 编译和运行C
map <F5> :call CompileRunGcc()<CR>
func! CompileRunGcc()
exec "w"
exec "!gcc % -o %<"
exec "! ./%<"
endfunc

"< F6> 编译和运行C++
map <F6> :call CompileRunGpp()<CR>
func! CompileRunGpp()
exec "w"
exec "!g++ % -o %<"
exec "! ./%<"
endfunc

"""""""""""""""""""代码块""""""""""""""""""""""""""""""""
" Trigger configuration. Do not use <tab> if you use https://github.com/Valloric/YouCompleteMe.
let g:UltiSnipsSnippetsDir = ‘~/.vim/bundle/vim-snippets/UltiSnips‘
let g:UltiSnipsSnippetDirectories = [‘UltiSnips‘]
let g:UltiSnipsExpandTrigger="<c-j>"
let g:UltiSnipsJumpForwardTrigger="<c-b>"
let g:UltiSnipsJumpBackwardTrigger="<c-z>"
"let g:UltiSnipsEditSplit="vertical"

   开发中,代码补全和快速插入代码块,这两个是必用的。谁也不想把时间花费在敲一些垃圾代码上。配置中使用YCM来补全代码,

UltiSnips来快速插入代码块。以后插件会慢慢加入。  人人都说Vim是神器。可我用起来非常艰难。经常装了个插件各种问题,处理插件的问题,耗费大量的时间。我经常在怀疑是否自己选对了编辑器。我喜欢Vim的快捷键来编辑代码。可由于年代久远,各种插件多而不全。我觉得Vim只适合用于学习C++的开发,让它来建立工程什么的。。。。还是不要想了。老老实实用Eclipse和CB了。  插入一段代码,来开始我的C++之路:

开发路上,你我同行。。。
时间: 2024-08-05 11:07:53

在ubuntu下使用Vim学习C++的相关文章

Ubuntu下更改Vim配置文件打造C/C++风格

转载:Ubuntu下更改Vim配置文件打造C/C++风格 Vim默认的配置使用起来还不能让人满意,还需要自己配置 默认配置文件是:/etc/vim/vimrc我们可以在家目录下建立自己的配置文件切换到家目录 #cd ~touch一个名为.vimrc的文件(以.开头的为隐藏文件)#touch .vimrc#vi .vimrc输入以下配置:set nocompatible       不使用vi默认键盘布局   <----这个很重要,如果不配置,在编辑模式下按方向键会输入字符,很不方便>set n

ubuntu下定制Vim/Gvim及使用技巧

vim是linux下的编辑器之神,是玩linux的必备工具,同样emacs是神的编辑器,两个编辑器是各有千秋,看个人的喜好,青菜萝卜各有所爱.我是比较喜欢vim,用vim编写bash,perl,python脚本,以及修改配置文件等等,本文就主要介绍在Ubuntu下gvim环境的搭建,希望对大家有所帮助. 一. Ubuntu安装gvim方法 安装gvim的方法,最简单方法是在Ubuntu软件中心搜索gvim,然后点击安装即可,如下图: 如果使用命令行可以打开终端,输入sudo apt-get in

Ubuntu下终端Vim编写C语言程序

我是开虚拟机下的Ubuntu,装双系统又卸了,Ubuntu默认是不包含编辑器vim和编译器gcc.如果你是刚安装好的Ubuntu电脑,下面我们将来实现自己的第一个程序. 1.准备工作 首先进入root用户模式,不然不能保存.c 文件 1.1 打开终端:使用快捷键 Ctrl + Alt + T: 1.2 安装vim:输入 sudo apt-get install vim:(没安装的话好像插入模式中 上下左右 和其他事不灵的) 1.3 安装gcc:输入 sudo apt-get install g+

ubuntu下配置vim及插件

1.首先要安装vim,默认ubuntu是未安装vim的 sudo apt-get install vim sudo apt install vim 2.为了安装pathogen插件,新建文件夹,切换到.vim下,执行git init mkdir ~/.vim mkdir ~/.vim/{autoload,bundle} cd .vim sudo apt install git git init Initialized empty Git repository in /home/cloudor/.

关于在ubuntu下将vim配置成source insight

第一次开通博客,这里只是记录自己在技术学习的道路上一些心得体会,并且最重要的是能和大家交流一下经验. 具体的手顺可参照网址 (1)http://www.cnblogs.com/ma6174/archive/2011/12/10/2283393.html (2)http://blog.csdn.net/t_arm/article/details/8521200 上述中(1)中 看到“下面是精简的,没有插件的vim配置文件,保存到自己的.vimrc文件就能使用.”这一行,把下面的内容复制下来,然后在

在linux ubuntu下搭建深度学习/机器学习开发环境

一.安装Anaconda 1.下载 下载地址为:https://www.anaconda.com/download/#linux 2.安装anaconda,执行命令: bash ~/Downloads/Anaconda3-5.1.0-Linux-x86_64.sh 3.在安装过程中会显示配置路径 Prefix=/home/jsy/anaconda2/ 4.安装完之后,运行python,仍是ubuntu自带的python信息,需自己设置下环境变量 5.在终端输入$sudo gedit /etc/p

ubuntu下的vim与ctags

先安装ctags #sudo apt-get install  exuberant-ctags 在自己的用户目录下新建一个.vim的目录 将从下载好的taglist_46,解压到.vim下 http://www.cnblogs.com/zhangsf/archive/2013/06/13/3134409.html

虚拟机中Ubuntu下安装vim及配置文件和插件之菜鸟初体验

因为Linux老师布置的作业,于是乎打算花点时间把自己安装的过程记在博客园上,方便自己以后查阅   (高手绕道) the first : vim 安装:打开vim的终端 在命令行敲入“vi”后按"tab"键,可以看到目前系统中只安装了vi和vim.tiny. vim是从VI发展而来的一个文本编辑器,功能更强大.而vim.tiny是vim的精简版,所以,安装vim势在必行.   the second:输入命令:sudo apt-get install vim-gtk the last:之

Ubuntu下对Vim的配置修改

在UBUNTU中vim的配置文件存放在/etc/vim目录中,配置文件名为vimrc 显示行号 语法高亮 自动缩进 显示文本中的命令 显示最近的括号匹配 智能匹配 智能提示和搜索 " The following are commented out as they cause vim to behave a lot " differently from regular Vi. They are highly recommended though. "set showcmd &q