vim配置入门,到豪华版vim配置
2016-06-05 22:37
330 查看
这几天一直研究vim的配置,许多版本总是不尽如人意,网上确实有许多优秀的文章值得参考,我的博客后面会贴上具有参考价值的博客链接,本文的将手把手教你配置一个功能详尽的vim.
首先你要明白的是linux下一切皆文件的思想,因此vim的配置文件.vimrc中的内容就决定了你的vim的功能。对于新手来说首先你要做的是保证你的linux(或者是centOs)能够连上网。我当时是这样解决的。
流程如下
1)点击 VM->Settings Hardware选项卡下面
2)点击Network Adapter 设置如下图所示,首先我们在虚拟机中将网络配置设置成NAT,
3、进入Windows操作系统,然后右键点击我们的电脑,进入到管理界面 计算机-> 管理->服务和应用程序->服务,找到如下服务进程 VMware DHCP Service, VMware NAT Service。 分别点击右键->启动
二、下载并安装vim。
从官方网站ftp://ftp.vim.org/pub/vim/unix/中选择一个版本下载,我这里使用的是vim-7.4.tar.bz2centos安装vim7.4
系统版本centos6.4;
root权限
su - root
卸载(当然你也可以不用卸载)
$ rpm -qa | grep vim
$ yum remove vim vim-enhanced vim-common vim-minimal
下载、解压
$ wget ftp://ftp.vim.org/pub/vim/unix/vim-7.4.tar.bz2
$ wget ftp://ftp.vim.org/pub/vim/extra/vim-7.2-extra.tar.gz
$ wget ftp://ftp.vim.org/pub/vim/extra/vim-7.2-lang.tar.gz
$
$ tar jxvf vim-7.4.tar.bz2
$ tar zxvf vim-7.2-extra.tar.gz
$ tar zxvf vim-7.2-lang.tar.gz
$
$ mv vim72 vim74
安装编译环境
$ yum install ncurses-devel
$ yum install gcc
编译安装
$ cd vim74/src
$ ./configure --enable-multibyte \--with-features=huge \--disable-selinux
$ make
$ make install
测试
$ vim --version
VIM - Vi IMproved 7.4
三、接下来我们开始配置vim
1.下查看~/目录下有没有一个.vimrc的文件,如果没有自己在当前目录创建一个。
2.需要说明的是在root目录下的.vimrc对所有用户生效。你也可以在每个用户下单独配置个性化.vimrc.
3.以下是我配置的vim截图
4.vim的功能实际上是由配置文件和插件共同决定的,这里我提供一份配置文件源码。大家复制到自己的.vimrc文件中即可。方法是先复制到剪贴板然后打开cd ~/.vimrc,拷贝进去就好了。保存按:
sheft+: w
退出输入:q
5.源码如下:
[cpp] view
plain copy
set helplang=cn
set encoding=utf-8
set cscopequickfix=s-,c-,d-,i-,t-,e-
nmap <C-_>s :cs find s <C-R>=expand("<cword>")<CR><CR>
nmap <C-_>g :cs find g <C-R>=expand("<cword>")<CR><CR>
nmap <C-_>c :cs find c <C-R>=expand("<cword>")<CR><CR>
nmap <C-_>t :cs find t <C-R>=expand("<cword>")<CR><CR>
nmap <C-_>e :cs find e <C-R>=expand("<cword>")<CR><CR>
nmap <C-_>f :cs find f <C-R>=expand("<cfile>")<CR><CR>
nmap <C-_>i :cs find i ^<C-R>=expand("<cfile>")<CR>$<CR>
nmap <C-_>d :cs find d <C-R>=expand("<cword>")<CR><CR>
let g:miniBufExplMapCTabSwitchBufs = 1
let g:miniBufExplMapWindowNavVim = 1
let g:miniBufExplMapWindowNavArrows = 1
nnoremap <silent> <F12> :A<CR>
nnoremap <silent> <F3> :Grep<CR>
let g:SuperTabRetainCompletionType=2
let g:SuperTabDefaultCompletionType="<C-X><C-O>"
" 自动语法高亮
syntax on
" 检测文件类型
filetype on
" 检测文件类型插件
filetype plugin on
" 不设定在插入状态无法用退格键和 Delete 键删除回车符
set backspace=indent,eol,start
set whichwrap+=<,>,h,l
" 显示行号
set number
" 上下可视行数
set scrolloff=6
" replace tab with space
set expandtab
" 设定 tab 长度为 4
set tabstop=4
" 设置按BackSpace的时候可以一次删除掉4个空格
set softtabstop=4
" 设定 << 和 >> 命令移动时的宽度为 4
set shiftwidth=4
set smarttab
set history=1024
" 不突出显示当前行
set nocursorline
" 覆盖文件时不备份
set nobackup
" 自动切换当前目录为当前文件所在的目录
set autochdir
" 搜索时忽略大小写,但在有一个或以上大写字母时仍大小写敏感
set ignorecase
set smartcase
" 搜索到文件两端时不重新搜索
set nowrapscan
" 实时搜索
set incsearch
" 搜索时高亮显示被找到的文本
set hlsearch
" 关闭错误声音
set noerrorbells
set novisualbell
"set t_vb=
" 不自动换行
"set nowrap
"How many tenths of a second to blink
set mat=2
" 允许在有未保存的修改时切换缓冲区,此时的修改由 vim 负责保存
set hidden
" 智能自动缩进
set smartindent
" 设定命令行的行数为 1
set cmdheight=1
" 显示状态栏 (默认值为 1, 无法显示状态栏)
set laststatus=2
"显示括号配对情况
set showmatch
" 解决自动换行格式下, 如高度在折行之后超过窗口高度结果这一行看不到的问题
set display=lastline
" 设定配色方案
colorscheme evening
" 设置在状态行显示的信息
set statusline=\ %<%F[%1*%M%*%n%R%H]%=\ %y\ %0(%{&fileformat}\ [%{(&fenc==\"\"?&enc:&fenc).(&bomb?\",BOM\":\"\")}]\ %c:%l/%L%)
" 显示Tab符
set list
set listchars=tab:\|\ ,trail:.,extends:>,precedes:<
"启动时不显示 捐赠提示
set shortmess=atl
"blank 空白
"buffers 缓冲区
"curdir 当前目录
"folds 折叠
"help 帮助
"options 选项
"tabpages 选项卡
"winsize 窗口大小
"slash 转换文件路径中的\为/以使session文件兼容unix
"unix 设置session文件中的换行模式为unix
set sessionoptions=blank,buffers,curdir,folds,help,options,tabpages,winsize,slash,unix,resize
" 允许backspace和光标键跨越行边界
set whichwrap+=<,>,h,l
" backspace
set backspace=eol,start,indent
" 可以在buffer的任何地方使用鼠标(类似office中在工作区双击鼠标定位)
set mouse=a
set selection=exclusive
set selectmode=mouse,key
" 在被分割的窗口间显示空白,便于阅读
set fillchars=vert:\ ,stl:\ ,stlnc:\
" 高亮显示匹配的括号
set showmatch
" 匹配括号高亮的时间(单位是十分之一秒)
set matchtime=5
"编码设置
set enc=utf-8
set fencs=utf-8,ucs-bom,shift-jis,gb18030,gbk,gb2312,cp936
" set mapleader
let mapleader=","
nmap J 5j
nmap K 5k
" Ctrl+a
nmap <silent> <C-a> ggvG$
" 选中状态下 Ctrl+c 复制
vnoremap <c-c> "+y
" Ctrl+v
nmap <silent> <C-v> "+p
" 窗口切换
nnoremap <c-h> <c-w>h
nnoremap <c-l> <c-w>l
nnoremap <c-j> <c-w>j
nnoremap <c-k> <c-w>k
" 插入模式下上下左右移动光标
inoremap <c-h> <left>
inoremap <c-l> <right>
inoremap <c-j> <c-o>gj
inoremap <c-k> <c-o>gk
" Ctrl+s
" If the current buffer has never been saved, it will have no name,
" call the file browser to save it, otherwise just save it.
"nnoremap <silent> <C-S> :if expand("%") == ""<CR>browse confirm w<CR>else<CR>confirm w<CR>endif<CR>
"imap <c-s> <c-o><c-s><CR>
" Use CTRL-S for saving, also in Insert mode
nmap <C-S> :update<CR>
vmap <C-S> <C-C>:update<CR>
imap <C-S> <C-O>:update<CR>
" C++的编译和运行
"map <F6> :call CompileRunGpp()<CR>
"func! CompileRunGpp()
"exec "w"
"exec "!g++ % -o %<"
"exec "! ./%<"
"endfunc
map <F10> :call RunGpp()<cr>
func! RunGpp()
exec "w"
exec "! ./%<"
endfunc
"vim plugin setting
"======================"
set tags=tags
set tags+=~/.vim/my-tags/tags
set tags+=~/.vim/my-tags/stl-tags
set tags+=~/.vim/my-tags/sys-tags
set autochdir
"Update ctags
map <silent> <F8> :!ctags -R --c++-kinds=+p --fields=+iaS --extra=+q<cr>
""""""""""""""""""""""""""""""
" Tag list (ctags)
""""""""""""""""""""""""""""""
"if MySys() == "windows" "设定windows系统中ctags程序的位置
" let Tlist_Ctags_Cmd = 'ctags'
"elseif MySys() == "linux" "设定Linux系统中ctags程序的位置
let Tlist_Ctags_Cmd = '/home/sphinx/.vim/ctags-5.8/ctags'
"endif
let Tlist_Show_One_File = 1 "不同时显示多个文件的tag,只显示当前文件的
let Tlist_Exit_OnlyWindow = 1 "如果taglist窗口是最后一个窗口,则退出vim
let Tlist_Use_Right_Window = 0 "在右侧窗口中显示taglist窗口
let Tlist_OnlyWindow=1
"let Tlist_Use_Right_Window=0
"let Tlist_Sort_Type='name'
"let Tlist_Show_Menu=1
"let Tlist_Max_Submenu_Items=10
"let Tlist_Max_Tag_length=16 "20
"let Tlist_Use_SingleClick=0
"let Tlist_Auto_Open=0
"let Tlist_Close_On_Select=0
"let Tlist_File_Fold_Auto_Close=1
"let Tlist_GainFocus_On_ToggleOpen=0
"let Tlist_Process_File_Always=1
"let Tlist_WinHeight=10
"let Tlist_WinWidth=18
"let Tlist_Use_Horiz_Window=0
let Tlist_Auto_Highlight_Tag = 1
"let Tlist_Auto_Open = 1
let Tlist_Auto_Update = 1
let Tlist_Close_On_Select = 0
let Tlist_Compact_Format = 0
let Tlist_Display_Prototype = 0
let Tlist_Display_Tag_Scope = 1
let Tlist_Enable_Fold_Column = 0
let Tlist_File_Fold_Auto_Close = 0
let Tlist_GainFocus_On_ToggleOpen = 1
let Tlist_Hightlight_Tag_On_BufEnter = 1
let Tlist_Inc_Winwidth = 0
let Tlist_Max_Submenu_Items = 1
let Tlist_Max_Tag_Length = 30
let Tlist_Process_File_Always = 0
let Tlist_Show_Menu = 0
let Tlist_Sort_Type = "order"
let Tlist_Use_Horiz_Window = 0
let Tlist_WinWidth = 31
map <F12> :TlistOpen<CR>
"OMNI
"omnicppcoplete
"-- omnicppcomplete setting --
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
let OmniCpp_DisplayMode=1
let OmniCpp_DefaultNamespaces=["std"]
set nocp
filetype plugin on
"WinManager
let g:winManagerWindowLayout='FileExplorer|TagList'
"let g:winManagerWindowLayout='FileExplorer|BufExplorer|TagList'
let g:persistentBehaviour=0
let g:winManagerWidth=20
let g:defaultExplorer=1
nmap wm :WMToggle<cr>
"QuickFix
nmap <F6> :cn<cr>
nmap <F7> :cp<cr>
"MiniBufExplorer
"let g:miniBufExplMapWindowNavVim = 1
"let g:miniBufExplMapWindowNavArrows = 1
let g:miniBufExplModSelTarget = 1
let g:miniBufExplorerMoreThanOne = 2
let g:miniBufExplModSelTarget = 0
let g:miniBufExplUseSingleClick = 1
let g:miniBufExplMapWindowNavVim = 1
let g:miniBufExplVSplit = 15 "25
let g:miniBufExplSplitBelow=1
let g:bufExplorerSortBy = "name"
autocmd BufRead,BufNew :call UMiniBufExplorer
map <leader>u :TMiniBufExplorer<cr>
"AutoClose
"let g:AutoClosePairs = {'(': ')', '{': '}', '[': ']', '"': '"', "'": "'"}
let g:AutoClosePairs = {'(': ')', '{': '}', '[': ']', '"': '"', "'": "'"}
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" Maintainer:
" " Geek SphinX
" " topcodersphinx@gmail.com
" "
" " Version:
" " 1.0 - Thu Nov 1 17:21:44 CST 2012
" "
" """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" Sets how many lines of history VIM has to remember
" set history=1024
"
" " Auto syntax highlight
" set syntax=on
"
" " Check file format
" filetype on
"
" " Enable filetype plugins
" filetype plugin on
" filetype indent on
"
" " Sets non VI compatible mode
" set nocompatible
"
" " Set to auto read when a file is changed from the outside
" set autoread
"
" " With a map leader it's possible to do extra key combinations
" " like <leader>w saves the current file
" let mapleader = ","
" let g:mapleader = ","
"
" " Fast saving
" nmap <leader>w :w<cr>
" nmap <leader>q :q<cr>
"
" """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" " => VIM user interface
" """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" " Replace J, K
" nmap J 5j
" nmap K 5k
"
" " Ctrl+A to select all content in visual mode
" nmap <silent> <C-a> ggvG$
"
" " Ctrl+C to copy
" vnoremap <C-c> "+y
"
" " Ctrl+V to paste
" nmap <silent> <C-v> "+p
"
" " Set 7 lines to the cursor - when moving vertically using j/k
" set so=7
"
" " Turn on the Wild menu
" set wildmenu
"
" " Ignore compiled files
" set wildignore=*.o,*~,*.pyc
"
" "Always show current position
" set ruler
"
" " Height of the command bar
" set cmdheight=2
"
" " A buffer becomes hidden when it is abandoned
" set hid
"
" " Configure backspace so it acts as it should act
" set whichwrap+=<,>
" set backspace=indent,eol,start
"
" " Ignore case when searching
" set ignorecase
"
" " When searching try to be smart about cases
" set smartcase
"
" " Highlight search results
" set hlsearch
"
" " Makes search act like search in modern browsers
" set incsearch
"
" " Don't redraw while executing macros (good performance config)
" set lazyredraw
"
" " For regular expressions turn magic on
" set magic
"
" " Show matching brackets when text indicator is over them
" set showmatch
"
" " How many tenths of a second to blink when matching brackets
" set mat=2
"
" " No annoying sound on errors set noerrorbells
" set novisualbell
" set t_vb=
" set tm=500
"
" " Show line number
" set number
"
" " Highlight over 80 columns
" highlight OverLength ctermbg=red ctermfg=white guibg=#592929
" match OverLength /\%81v.\+/
"
" " Show Tab symbol
" set list
" set listchars=tab:\|\ ,trail:.,extends:>,precedes:<
"
" " Switch windows
" nnoremap <C-h> <C-w>h
" nnoremap <C-l> <C-w>l
" nnoremap <C-j> <C-w>j
" nnoremap <C-k> <C-w>k
"
" " Move cursor in insert mode
" inoremap <C-h> <C-o>h
" inoremap <C-l> <C-o>l
" inoremap <C-j> <C-o>j
" inoremap <C-k> <C-o>k
"
"
" """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" " => Colors and Fonts
" """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" " Enable syntax highlighting
" syntax enable
"
" "colorscheme desert
" colorscheme molokai
" set background=dark
"
" " Set extra options when running in GUI mode
" if has("gui_running")
" set guioptions-=T
" set guioptions+=e
" set t_Co=256
" set guitablabel=%M\ %t
" endif
"
" " Set utf8 as standard encoding and en_US as the standard
" language
" set encoding=utf8
"
" " Use Unix as the standard file type
" set ffs=unix,dos,mac
"
" " Use Inconsolata as the gui font
" set guifont=Inconsolata\ 15
"
" """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" => Text, tab and indent related
" """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" " Use spaces instead of tabs
" set expandtab
"
" " Be smart when using tabs ;)
" set smarttab
"
" " 1 tab == 4 spaces
" set shiftwidth=4
" set tabstop=4
"
" " Linebreak on 500 characters
" set lbr
" set tw=500
"
" set ai "Auto indent
" set si "Smart indent
" set wrap "Wrap lines
"
"
" """"""""""""""""""""""""""""""
" " => Status line
" """"""""""""""""""""""""""""""
" " Always show the status line
" set laststatus=2
"
" " Format the status line
" "set statusline=\ %{HasPaste()}%F%m%r%h\ %w\ \ CWD:\ %r%{getcwd()}%h\ \ \
" Line:\ %l
"
"
" """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" " => Mouse
" """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" set mouse=a
" set selection=exclusive
" set selectmode=mouse,key
"
" """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" " => Plugins
" """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
6.插件的下载与安装。
在~/.vim文件下有建一个doc 文件夹和plugin的文件夹。一般指导性的帮助文件会放到doc文件夹。插件的源码等会放到plugin中。
可能用到的插件如下:此链接中有各种有用的插件大家可以看教程操作。
插件下载和配置:http://blog.csdn.net/wooin/article/details/1858917
用到的vim命令:http://www.111cn.net/sys/linux/52704.htm
注意事项:let g:winManagerWindowLayout='FileExplorer|TagList'
nmap wm :WMToggle<cr>
在"wm"和":WMToggle"中间是有一个空格的!
首先你要明白的是linux下一切皆文件的思想,因此vim的配置文件.vimrc中的内容就决定了你的vim的功能。对于新手来说首先你要做的是保证你的linux(或者是centOs)能够连上网。我当时是这样解决的。
流程如下
1)点击 VM->Settings Hardware选项卡下面
2)点击Network Adapter 设置如下图所示,首先我们在虚拟机中将网络配置设置成NAT,
3、进入Windows操作系统,然后右键点击我们的电脑,进入到管理界面 计算机-> 管理->服务和应用程序->服务,找到如下服务进程 VMware DHCP Service, VMware NAT Service。 分别点击右键->启动
二、下载并安装vim。
从官方网站ftp://ftp.vim.org/pub/vim/unix/中选择一个版本下载,我这里使用的是vim-7.4.tar.bz2centos安装vim7.4
系统版本centos6.4;
root权限
su - root
卸载(当然你也可以不用卸载)
$ rpm -qa | grep vim
$ yum remove vim vim-enhanced vim-common vim-minimal
下载、解压
$ wget ftp://ftp.vim.org/pub/vim/unix/vim-7.4.tar.bz2
$ wget ftp://ftp.vim.org/pub/vim/extra/vim-7.2-extra.tar.gz
$ wget ftp://ftp.vim.org/pub/vim/extra/vim-7.2-lang.tar.gz
$
$ tar jxvf vim-7.4.tar.bz2
$ tar zxvf vim-7.2-extra.tar.gz
$ tar zxvf vim-7.2-lang.tar.gz
$
$ mv vim72 vim74
安装编译环境
$ yum install ncurses-devel
$ yum install gcc
编译安装
$ cd vim74/src
$ ./configure --enable-multibyte \--with-features=huge \--disable-selinux
$ make
$ make install
测试
$ vim --version
VIM - Vi IMproved 7.4
三、接下来我们开始配置vim
1.下查看~/目录下有没有一个.vimrc的文件,如果没有自己在当前目录创建一个。
2.需要说明的是在root目录下的.vimrc对所有用户生效。你也可以在每个用户下单独配置个性化.vimrc.
3.以下是我配置的vim截图
4.vim的功能实际上是由配置文件和插件共同决定的,这里我提供一份配置文件源码。大家复制到自己的.vimrc文件中即可。方法是先复制到剪贴板然后打开cd ~/.vimrc,拷贝进去就好了。保存按:
sheft+: w
退出输入:q
5.源码如下:
[cpp] view
plain copy
set helplang=cn
set encoding=utf-8
set cscopequickfix=s-,c-,d-,i-,t-,e-
nmap <C-_>s :cs find s <C-R>=expand("<cword>")<CR><CR>
nmap <C-_>g :cs find g <C-R>=expand("<cword>")<CR><CR>
nmap <C-_>c :cs find c <C-R>=expand("<cword>")<CR><CR>
nmap <C-_>t :cs find t <C-R>=expand("<cword>")<CR><CR>
nmap <C-_>e :cs find e <C-R>=expand("<cword>")<CR><CR>
nmap <C-_>f :cs find f <C-R>=expand("<cfile>")<CR><CR>
nmap <C-_>i :cs find i ^<C-R>=expand("<cfile>")<CR>$<CR>
nmap <C-_>d :cs find d <C-R>=expand("<cword>")<CR><CR>
let g:miniBufExplMapCTabSwitchBufs = 1
let g:miniBufExplMapWindowNavVim = 1
let g:miniBufExplMapWindowNavArrows = 1
nnoremap <silent> <F12> :A<CR>
nnoremap <silent> <F3> :Grep<CR>
let g:SuperTabRetainCompletionType=2
let g:SuperTabDefaultCompletionType="<C-X><C-O>"
" 自动语法高亮
syntax on
" 检测文件类型
filetype on
" 检测文件类型插件
filetype plugin on
" 不设定在插入状态无法用退格键和 Delete 键删除回车符
set backspace=indent,eol,start
set whichwrap+=<,>,h,l
" 显示行号
set number
" 上下可视行数
set scrolloff=6
" replace tab with space
set expandtab
" 设定 tab 长度为 4
set tabstop=4
" 设置按BackSpace的时候可以一次删除掉4个空格
set softtabstop=4
" 设定 << 和 >> 命令移动时的宽度为 4
set shiftwidth=4
set smarttab
set history=1024
" 不突出显示当前行
set nocursorline
" 覆盖文件时不备份
set nobackup
" 自动切换当前目录为当前文件所在的目录
set autochdir
" 搜索时忽略大小写,但在有一个或以上大写字母时仍大小写敏感
set ignorecase
set smartcase
" 搜索到文件两端时不重新搜索
set nowrapscan
" 实时搜索
set incsearch
" 搜索时高亮显示被找到的文本
set hlsearch
" 关闭错误声音
set noerrorbells
set novisualbell
"set t_vb=
" 不自动换行
"set nowrap
"How many tenths of a second to blink
set mat=2
" 允许在有未保存的修改时切换缓冲区,此时的修改由 vim 负责保存
set hidden
" 智能自动缩进
set smartindent
" 设定命令行的行数为 1
set cmdheight=1
" 显示状态栏 (默认值为 1, 无法显示状态栏)
set laststatus=2
"显示括号配对情况
set showmatch
" 解决自动换行格式下, 如高度在折行之后超过窗口高度结果这一行看不到的问题
set display=lastline
" 设定配色方案
colorscheme evening
" 设置在状态行显示的信息
set statusline=\ %<%F[%1*%M%*%n%R%H]%=\ %y\ %0(%{&fileformat}\ [%{(&fenc==\"\"?&enc:&fenc).(&bomb?\",BOM\":\"\")}]\ %c:%l/%L%)
" 显示Tab符
set list
set listchars=tab:\|\ ,trail:.,extends:>,precedes:<
"启动时不显示 捐赠提示
set shortmess=atl
"blank 空白
"buffers 缓冲区
"curdir 当前目录
"folds 折叠
"help 帮助
"options 选项
"tabpages 选项卡
"winsize 窗口大小
"slash 转换文件路径中的\为/以使session文件兼容unix
"unix 设置session文件中的换行模式为unix
set sessionoptions=blank,buffers,curdir,folds,help,options,tabpages,winsize,slash,unix,resize
" 允许backspace和光标键跨越行边界
set whichwrap+=<,>,h,l
" backspace
set backspace=eol,start,indent
" 可以在buffer的任何地方使用鼠标(类似office中在工作区双击鼠标定位)
set mouse=a
set selection=exclusive
set selectmode=mouse,key
" 在被分割的窗口间显示空白,便于阅读
set fillchars=vert:\ ,stl:\ ,stlnc:\
" 高亮显示匹配的括号
set showmatch
" 匹配括号高亮的时间(单位是十分之一秒)
set matchtime=5
"编码设置
set enc=utf-8
set fencs=utf-8,ucs-bom,shift-jis,gb18030,gbk,gb2312,cp936
" set mapleader
let mapleader=","
nmap J 5j
nmap K 5k
" Ctrl+a
nmap <silent> <C-a> ggvG$
" 选中状态下 Ctrl+c 复制
vnoremap <c-c> "+y
" Ctrl+v
nmap <silent> <C-v> "+p
" 窗口切换
nnoremap <c-h> <c-w>h
nnoremap <c-l> <c-w>l
nnoremap <c-j> <c-w>j
nnoremap <c-k> <c-w>k
" 插入模式下上下左右移动光标
inoremap <c-h> <left>
inoremap <c-l> <right>
inoremap <c-j> <c-o>gj
inoremap <c-k> <c-o>gk
" Ctrl+s
" If the current buffer has never been saved, it will have no name,
" call the file browser to save it, otherwise just save it.
"nnoremap <silent> <C-S> :if expand("%") == ""<CR>browse confirm w<CR>else<CR>confirm w<CR>endif<CR>
"imap <c-s> <c-o><c-s><CR>
" Use CTRL-S for saving, also in Insert mode
nmap <C-S> :update<CR>
vmap <C-S> <C-C>:update<CR>
imap <C-S> <C-O>:update<CR>
" C++的编译和运行
"map <F6> :call CompileRunGpp()<CR>
"func! CompileRunGpp()
"exec "w"
"exec "!g++ % -o %<"
"exec "! ./%<"
"endfunc
map <F10> :call RunGpp()<cr>
func! RunGpp()
exec "w"
exec "! ./%<"
endfunc
"vim plugin setting
"======================"
set tags=tags
set tags+=~/.vim/my-tags/tags
set tags+=~/.vim/my-tags/stl-tags
set tags+=~/.vim/my-tags/sys-tags
set autochdir
"Update ctags
map <silent> <F8> :!ctags -R --c++-kinds=+p --fields=+iaS --extra=+q<cr>
""""""""""""""""""""""""""""""
" Tag list (ctags)
""""""""""""""""""""""""""""""
"if MySys() == "windows" "设定windows系统中ctags程序的位置
" let Tlist_Ctags_Cmd = 'ctags'
"elseif MySys() == "linux" "设定Linux系统中ctags程序的位置
let Tlist_Ctags_Cmd = '/home/sphinx/.vim/ctags-5.8/ctags'
"endif
let Tlist_Show_One_File = 1 "不同时显示多个文件的tag,只显示当前文件的
let Tlist_Exit_OnlyWindow = 1 "如果taglist窗口是最后一个窗口,则退出vim
let Tlist_Use_Right_Window = 0 "在右侧窗口中显示taglist窗口
let Tlist_OnlyWindow=1
"let Tlist_Use_Right_Window=0
"let Tlist_Sort_Type='name'
"let Tlist_Show_Menu=1
"let Tlist_Max_Submenu_Items=10
"let Tlist_Max_Tag_length=16 "20
"let Tlist_Use_SingleClick=0
"let Tlist_Auto_Open=0
"let Tlist_Close_On_Select=0
"let Tlist_File_Fold_Auto_Close=1
"let Tlist_GainFocus_On_ToggleOpen=0
"let Tlist_Process_File_Always=1
"let Tlist_WinHeight=10
"let Tlist_WinWidth=18
"let Tlist_Use_Horiz_Window=0
let Tlist_Auto_Highlight_Tag = 1
"let Tlist_Auto_Open = 1
let Tlist_Auto_Update = 1
let Tlist_Close_On_Select = 0
let Tlist_Compact_Format = 0
let Tlist_Display_Prototype = 0
let Tlist_Display_Tag_Scope = 1
let Tlist_Enable_Fold_Column = 0
let Tlist_File_Fold_Auto_Close = 0
let Tlist_GainFocus_On_ToggleOpen = 1
let Tlist_Hightlight_Tag_On_BufEnter = 1
let Tlist_Inc_Winwidth = 0
let Tlist_Max_Submenu_Items = 1
let Tlist_Max_Tag_Length = 30
let Tlist_Process_File_Always = 0
let Tlist_Show_Menu = 0
let Tlist_Sort_Type = "order"
let Tlist_Use_Horiz_Window = 0
let Tlist_WinWidth = 31
map <F12> :TlistOpen<CR>
"OMNI
"omnicppcoplete
"-- omnicppcomplete setting --
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
let OmniCpp_DisplayMode=1
let OmniCpp_DefaultNamespaces=["std"]
set nocp
filetype plugin on
"WinManager
let g:winManagerWindowLayout='FileExplorer|TagList'
"let g:winManagerWindowLayout='FileExplorer|BufExplorer|TagList'
let g:persistentBehaviour=0
let g:winManagerWidth=20
let g:defaultExplorer=1
nmap wm :WMToggle<cr>
"QuickFix
nmap <F6> :cn<cr>
nmap <F7> :cp<cr>
"MiniBufExplorer
"let g:miniBufExplMapWindowNavVim = 1
"let g:miniBufExplMapWindowNavArrows = 1
let g:miniBufExplModSelTarget = 1
let g:miniBufExplorerMoreThanOne = 2
let g:miniBufExplModSelTarget = 0
let g:miniBufExplUseSingleClick = 1
let g:miniBufExplMapWindowNavVim = 1
let g:miniBufExplVSplit = 15 "25
let g:miniBufExplSplitBelow=1
let g:bufExplorerSortBy = "name"
autocmd BufRead,BufNew :call UMiniBufExplorer
map <leader>u :TMiniBufExplorer<cr>
"AutoClose
"let g:AutoClosePairs = {'(': ')', '{': '}', '[': ']', '"': '"', "'": "'"}
let g:AutoClosePairs = {'(': ')', '{': '}', '[': ']', '"': '"', "'": "'"}
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" Maintainer:
" " Geek SphinX
" " topcodersphinx@gmail.com
" "
" " Version:
" " 1.0 - Thu Nov 1 17:21:44 CST 2012
" "
" """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" Sets how many lines of history VIM has to remember
" set history=1024
"
" " Auto syntax highlight
" set syntax=on
"
" " Check file format
" filetype on
"
" " Enable filetype plugins
" filetype plugin on
" filetype indent on
"
" " Sets non VI compatible mode
" set nocompatible
"
" " Set to auto read when a file is changed from the outside
" set autoread
"
" " With a map leader it's possible to do extra key combinations
" " like <leader>w saves the current file
" let mapleader = ","
" let g:mapleader = ","
"
" " Fast saving
" nmap <leader>w :w<cr>
" nmap <leader>q :q<cr>
"
" """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" " => VIM user interface
" """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" " Replace J, K
" nmap J 5j
" nmap K 5k
"
" " Ctrl+A to select all content in visual mode
" nmap <silent> <C-a> ggvG$
"
" " Ctrl+C to copy
" vnoremap <C-c> "+y
"
" " Ctrl+V to paste
" nmap <silent> <C-v> "+p
"
" " Set 7 lines to the cursor - when moving vertically using j/k
" set so=7
"
" " Turn on the Wild menu
" set wildmenu
"
" " Ignore compiled files
" set wildignore=*.o,*~,*.pyc
"
" "Always show current position
" set ruler
"
" " Height of the command bar
" set cmdheight=2
"
" " A buffer becomes hidden when it is abandoned
" set hid
"
" " Configure backspace so it acts as it should act
" set whichwrap+=<,>
" set backspace=indent,eol,start
"
" " Ignore case when searching
" set ignorecase
"
" " When searching try to be smart about cases
" set smartcase
"
" " Highlight search results
" set hlsearch
"
" " Makes search act like search in modern browsers
" set incsearch
"
" " Don't redraw while executing macros (good performance config)
" set lazyredraw
"
" " For regular expressions turn magic on
" set magic
"
" " Show matching brackets when text indicator is over them
" set showmatch
"
" " How many tenths of a second to blink when matching brackets
" set mat=2
"
" " No annoying sound on errors set noerrorbells
" set novisualbell
" set t_vb=
" set tm=500
"
" " Show line number
" set number
"
" " Highlight over 80 columns
" highlight OverLength ctermbg=red ctermfg=white guibg=#592929
" match OverLength /\%81v.\+/
"
" " Show Tab symbol
" set list
" set listchars=tab:\|\ ,trail:.,extends:>,precedes:<
"
" " Switch windows
" nnoremap <C-h> <C-w>h
" nnoremap <C-l> <C-w>l
" nnoremap <C-j> <C-w>j
" nnoremap <C-k> <C-w>k
"
" " Move cursor in insert mode
" inoremap <C-h> <C-o>h
" inoremap <C-l> <C-o>l
" inoremap <C-j> <C-o>j
" inoremap <C-k> <C-o>k
"
"
" """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" " => Colors and Fonts
" """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" " Enable syntax highlighting
" syntax enable
"
" "colorscheme desert
" colorscheme molokai
" set background=dark
"
" " Set extra options when running in GUI mode
" if has("gui_running")
" set guioptions-=T
" set guioptions+=e
" set t_Co=256
" set guitablabel=%M\ %t
" endif
"
" " Set utf8 as standard encoding and en_US as the standard
" language
" set encoding=utf8
"
" " Use Unix as the standard file type
" set ffs=unix,dos,mac
"
" " Use Inconsolata as the gui font
" set guifont=Inconsolata\ 15
"
" """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" => Text, tab and indent related
" """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" " Use spaces instead of tabs
" set expandtab
"
" " Be smart when using tabs ;)
" set smarttab
"
" " 1 tab == 4 spaces
" set shiftwidth=4
" set tabstop=4
"
" " Linebreak on 500 characters
" set lbr
" set tw=500
"
" set ai "Auto indent
" set si "Smart indent
" set wrap "Wrap lines
"
"
" """"""""""""""""""""""""""""""
" " => Status line
" """"""""""""""""""""""""""""""
" " Always show the status line
" set laststatus=2
"
" " Format the status line
" "set statusline=\ %{HasPaste()}%F%m%r%h\ %w\ \ CWD:\ %r%{getcwd()}%h\ \ \
" Line:\ %l
"
"
" """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" " => Mouse
" """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" set mouse=a
" set selection=exclusive
" set selectmode=mouse,key
"
" """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" " => Plugins
" """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
6.插件的下载与安装。
在~/.vim文件下有建一个doc 文件夹和plugin的文件夹。一般指导性的帮助文件会放到doc文件夹。插件的源码等会放到plugin中。
可能用到的插件如下:此链接中有各种有用的插件大家可以看教程操作。
插件下载和配置:http://blog.csdn.net/wooin/article/details/1858917
用到的vim命令:http://www.111cn.net/sys/linux/52704.htm
注意事项:let g:winManagerWindowLayout='FileExplorer|TagList'
nmap wm :WMToggle<cr>
在"wm"和":WMToggle"中间是有一个空格的!
相关文章推荐
- 3374 String Problem
- 1、TCL脚本基本语法(概要)
- 静态库和动态库的区别
- android 界面布局 很好的一篇总结
- Linux下的第一步——进度条(gcc&Makefile)
- C++作业7
- c++作业7
- C/C++值传递,指针传递和引用传递的概念
- vim简易教程
- Exchange 2010 PS之New-SendConnector&get-SendConnector&Set-sendConnector!
- c++拾遗-----内存模型
- Android Studio教程从入门到精通
- Chapter 2. C++程序设计入门
- net core VS goang web
- vue简单使用
- openmp在图像处理上面的运用
- NOSql之redis的学习
- sql语句判断两个时间段是否有交集
- 存储过程、触发器和用户自定义函数实验 (存储过程)
- c++实验7-最大公约数和最小公倍数