您的位置:首页 > 其它

Ubuntu下Vim配置

2014-01-23 15:20 363 查看
这几周突然对linux感兴趣。于是装了Ubuntu的虚拟机。在下边自己配置Vim,走了不少弯路。今天算是终于初步配出来了。现将自己的配置的功能简述如下:

1、实现语法高亮;按照C 语言格式自动缩进;括号匹配;支持鼠标等基本功能;

2、安装TagList插件;

3、自动补全及加速自动补全的插件SuperTab。

注:此过程参考http://blog.csdn.net/wooin/archive/2007/10/31/1858917.aspx

其中ctags-5.8.tar.gz的安装过程如下:

(1)到http://ctags.sourceforge.net/下载ctags源码ctags-5.8.tar.gz

(2)解压并安装

命令行:cd ctags-5.8

命令行:./configure && make &&make install

我的Vimrc文件配置如下:

" Allsystem-wide defaults are set in $VIMRUNTIME/debian.vim (usually just

" /usr/share/vim/vimcurrent/debian.vim) and sourced by the call to:runtime

" you can find below. If you wish to change any of thosesettings, you should

" do it in this file (/etc/vim/vimrc), since debian.vim will beoverwritten

" everytime an upgrade of the vim packages is performed. It isrecommended to

" make changes after sourcing debian.vim since it alters the value ofthe

" 'compatible' option.

" This line should not be removed as it ensures that various optionsare

" properly set to work with the Vim-related packages available inDebian.

runtime! 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 compatible

" Vim5 and later versions support syntax highlighting. Uncommentingthe

" following enables syntax highlighting by default.

if has("syntax")

syntax on

endif

" If using a dark background within the editing area and syntaxhighlighting

" turn on this option as well

set background=dark

" Uncomment the following to have Vim jump to the last position when

" reopening a file

if has("autocmd")

au BufReadPost * if line("'\"") > 1 &&line("'\"") <= line("$") | exe "normal!g'\"" | endif

endif

" Uncomment the following to have Vim load indentation rules andplugins

" according to the detected filetype.

if has("autocmd")

filetype plugin indent on

endif

" The following are commented out as they cause vim to behave a lot

" differently from regular Vi. They are highly recommended though.

set showcmd " Show (partial)command in status line.

set showmatch " Show matchingbrackets.

set ignorecase " Do caseinsensitive matching

set smartcase " Do smart casematching

set incsearch " Incrementalsearch

set autowrite " Automaticallysave before commands like :next and :make

set hidden "Hide buffers when they are abandoned

set mouse=a "Enable mouse usage (all modes)

""""""""""""""""""""""""""""""""""""""

" 语法着色与高亮设置

"""""""""""""""""""""""""""""""""""""""

"

" "开启语法高亮

syntax enable

syntax on

"

" "配色

colorscheme murphy

" "设置高亮搜索

set hlsearch

"

"""""""""""""""""""""""""""""""""""""""

" " 文件设置

"""""""""""""""""""""""""""""""""""""""

"

set encoding=utf-8

set fileencoding=chinese

set fileencodings=ucs-bom,utf-8,chinese

set ambiwidth=double

"

" "检测文件的类型

filetype on

" "默认无备份

set nobackup

set nowritebackup

"

"""""""""""""""""""""""""""""""""""""""

" " 鼠标设置

"""""""""""""""""""""""""""""""""""""""

" "鼠标支持

if has('mouse')

set mouse=a

endif

"

" "使鼠标用起来象微软 Windows,似乎正好解决连续多行缩进问题、退格问题

behave mswin

"

"""""""""""""""""""""""""""""""""""""""

" " 编辑器设置

"""""""""""""""""""""""""""""""""""""""

"

"显示行号

set number

"

"Tab 宽度

set ts=4

"

" "自动缩进

set sw=4

"

" "C/C++ 风格的自动缩进

set cin

" "设定 C/C++ 风格自动缩进的选项

set cino=:0g0t0(sus

"

" "打开普通文件类型的自动缩进

set ai

"

" "在编辑过程中,在右下角显示光标位置的状态行

set ruler

"

" "显示匹配括号

set showmatch

"

" "在insert模式下能用删除键进行删除

set backspace=indent,eol,start

"

" "代码折叠, 命令 za

set foldmethod=syntax

set foldlevel=100 "启动vim时不要自动折叠代码

"

" "设置字体

set guifont=文泉驿等宽微米黑\ 13

"

" "当右键单击窗口的时候,弹出快捷菜单

set mousemodel=popup

"

" "自动换行

if (has("gui_running")) "图形界面下的设置

"

" "指定不折行。如果一行太长,超过屏幕宽度,则向右边延伸到屏幕外面

set nowrap

" "添加水平滚动条。如果你指定了不折行,那为窗口添加一个水平滚动条就非常有必要

" 了

set guioptions+=b

"

" else "字符界面下的设置

set wrap

endif

"

"""""""""""""""""""""""""""""""""""""""

" " 快捷键设置

"""""""""""""""""""""""""""""""""""""""

" "<F1> 菜单栏与工具栏隐藏与显示动态切换

" set guioptions-=m

" set guioptions-=T

" map <silent> <F1> :if &guioptions =~# 'T'<Bar>

" \set guioptions-=T <Bar>

" \set guioptions-=m <bar>

" \else <Bar>

" \set guioptions+=T <Bar>

" \set guioptions+=m <Bar>

" \endif<CR>

"

" "<F2>code_complete.vim插件:函数自动完成

if !exists("g:completekey")

let g:completekey = "<F2>" "hotkey

endif

"

" "<F3><F4>大小写转换

" map <F3> gu

" map <F4> gU

"

" "当前目录生成tags语法文件,用于自动完成,函数提示:code_complete.vim

"OmniCppComplete.vim ...

map <F5> :!ctags -R --c-kinds=+p --fields=+S . <CR>

map <F5> :!ctags -R --c-kinds=+p --c++-kinds=+p --fields=+iaS--extra=+q .

"<CR>

"

" "函数和变量列表

map <F6> :TlistToggle<CR>

"

" "文件浏览器

map <F7> :WMToggle<CR>

let g:winManagerWindowLayout = "FileExplorer"

"

" "文件树状列表

map <F8> :NERDTree<CR>

"

" "映射复制、粘贴、剪贴ctrl+c ctrl+v ctrl+x

map <C-V> "+pa<Esc>

map! <C-V> <Esc>"+pa

map <C-C> "+y

map <C-X> "+x

"

" " 映射全选 ctrl+a

map <C-A> ggVG

map! <C-A> <Esc>ggVG

"

" " 多行缩进

map <Tab> >

map <S-Tab> <

"

"""""""""""""""""""""""""""""""""""""""

" " 插件设置

"""""""""""""""""""""""""""""""""""""""

"

" "开启OmniCppComplete.vim

set nocp

filetype plugin on

"

" "2Html插件,启用XHtml css

" :let html_number_lines=1

" :let html_use_css=1

" :let use_xhtml=1

"

" "fencview.vim 插件设置

let g:fencview_autodetect = 1 "打开文件时自动识别编码

let g:fencview_checklines = 10 "检查前后10行来判断编码

"

"autocomplpop.vim & supertab.vim 插件设置

let g:AutoComplPop_IgnoreCaseOption=1

set ignorecase

"

"""""""""""""""""""""""""""""""""""""""

" " 其他设置

"""""""""""""""""""""""""""""""""""""""

"

" "去掉讨厌的有关vi一致性模式,避免以前版本的一些bug和局限

set nocompatible

"使用taglist

let Tlist_Show_One_File=1

let Tlist_Exit_OnlyWindow=1

"使用C.vim

filetype plugin on

"所有用户使用vim功能一样

set nu

"设置自动补齐

filetype plugin indent on

set completeopt=longest,menu

if has("autocmd") && exists("+omnifunc")

autocmd Filetype *

\ if &omnifunc == "" |

\ setlocal omnifunc=syntaxcomplete#Complete |

\ endif

endif

let g:SuperTabDefaultCompletionType="<C-X><C-]>"

" 设置按下<Tab>后默认的补全方式, 默认是<C-P>,

" 现在改为<C-X><C-L>(其为根据自己定义的结构体自动补齐).

" 关于<C-P>的补全方式,

" 还有其他的补全方式, 你可以看看下面的一些帮助:

" :help ins-completion

" :help compl-omni

let g:SuperTabRetainCompletionType=2

" 0 - 不记录上次的补全方式

" 1 - 记住上次的补全方式,直到用其他的补全命令改变它

" 2 - 记住上次的补全方式,直到按ESC退出插入模式为止

" Source a global configuration file if available

if filereadable("/etc/vim/vimrc.local")

source /etc/vim/vimrc.local

endif
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: