vim的配置文件范例


下面是从网上整理的vim的配置,现在用的也比较顺手了,真是好喜欢vim这款编辑器。

下面是简单的适合初学者的配置文件:

set nu 
set encoding=utf-8 
set fileencodings=utf-8,gb2312,gb18030,gbk,ucs-bom,cp936,latin1 " 如果你要打开的文件编码不在此列,那就添加进去 
set termencoding=utf-8 

set guifont=Courier\ New\ 12,Arial\ 10 "字体大小 
set guioptions-=T "去除工具栏 
set guioptions-=m "去除菜单栏 
set cursorline    "高亮显示当前行 
set autoindent    "设置自动缩进 
set smartindent   "智能缩进? 
set nocompatible 
set magic 
set ru "标尺信息 
set ai 
set sw=4 
set ts=4 
set dy=lastline "显示最多行,不用@@ 
"以上是缩进相关 
set backspace=indent,eol,start 
colo desert256 
sy on 
"set go= 无菜单、工具栏 
set nobackup 
set hlsearch 
set showmatch 
"tab mappings 
map <M-t> :tabnew<CR> 
map <M-w> :tabclose<CR> 
map <M-n> :Ve<CR> 
  
" Use CTRL-S for saving, also in Insert mode 
noremap <C-S> :update<CR> 
vnoremap <C-S> <C-C>:update<CR> 
inoremap <C-S> <C-O>:update<CR>
以下是比较复杂的配置文件:



let mapleader = ";"    " 比较习惯用;作为命令前缀,右手小拇指直接能按到 
nmap <space> :    " 把空格键映射成: 
  
" 快捷打开编辑vimrc文件的键盘绑定 
map <silent> <leader>ee :e $HOME/.vimrc<cr> 
autocmd! bufwritepost *.vimrc source $HOME/.vimrc 
  
inoremap <leader>n <esc> 
  
" 判断操作系统 
if (has("win32") || has("win64") || has("win32unix")) 
    let g:isWin = 1 
else 
    let g:isWin = 0 
endif 
  
" 判断是终端还是gvim 
if has("gui_running") 
    let g:isGUI = 1 
else 
    let g:isGUI = 0 
endif 
  
"====================================================== 
" 基本设置  
" {{{ 
set guifont=Courier:16,Courier\ New\ 12,Arial\ 10 "字体大小 
set nocompatible    " 关闭兼容模式 
set display=lastline 
syntax enable       " 语法高亮 
filetype plugin on  " 文件类型插件 
filetype indent on 
set shortmess=atI   " 去掉欢迎界面 
set autoindent 
autocmd BufEnter * :syntax sync fromstart 
set nu              " 显示行号 
set showcmd         " 显示命令 
set lz              " 当运行宏时,在命令执行完成之前,不重绘屏幕 
set hid             " 可以在没有保存的情况下切换buffer 
set backspace=eol,start,indent  
set whichwrap+=<,>,h,l " 退格键和方向键可以换行 
set incsearch       " 增量式搜索 
set nohlsearch 
"set hlsearch        " 高亮搜索 
set ignorecase      " 搜索时忽略大小写 
set magic           " 额,自己:h magic吧,一行很难解释 
set showmatch       " 显示匹配的括号 
set nobackup        " 关闭备份 
set nowb 
set noswapfile      " 不使用swp文件,注意,错误退出后无法恢复 
set lbr             " 在breakat字符处而不是最后一个字符处断行 
set ai              " 自动缩进 
set si              " 智能缩进 
set cindent         " C/C++风格缩进 
set wildmenu         
set nofen 
set fdl=10 
  
" tab转化为4个字符 
set expandtab 
set smarttab 
set shiftwidth=4 
set tabstop=4 
  
" 不使用beep或flash  
set vb t_vb= 
  
set background=dark 
set t_Co=256 
colorscheme desert256 
  
set history=400  " vim记住的历史操作的数量,默认的是20 
set autoread     " 当文件在外部被修改时,自动重新读取 
set mouse=n     " 在所有模式下都允许使用鼠标,还可以是n,v,i,c等 
  
"}}} 
"======================================================  
  
"在gvim中高亮当前行 
if (g:isGUI) 
    set cursorline 
    colorscheme desert256 
    hi cursorline guibg=#333333 
    hi CursorColumn guibg=#333333 
    set guifont=Consolas\ 16,Arial\ 16 
    set gfn=Ubuntu\ Mono\ 16 
    " 不显示toolbar 
    set guioptions-=T 
    " 不显示菜单栏 
    set guioptions-=m 
    " 关闭左右滚动条 
    set guioptions-=L 
    set guioptions-=r 
endif 
  
"======================================================   
  
" 设置字符集编码,默认使用utf8 
if (g:isWin) 
    let &termencoding=&encoding " 通常win下的encoding为cp936 
    set fileencodings=utf8,cp936,ucs-bom,latin1 
else 
    set encoding=utf8 
    set fileencodings=utf8,gb2312,gb18030,ucs-bom,latin1 
endif 
  
"====================================================== 
  
" 状态栏 
set laststatus=2      " 总是显示状态栏 
highlight StatusLine cterm=bold ctermfg=yellow ctermbg=blue 
" 获取当前路径,将$HOME转化为~ 
function! CurDir() 
    let curdir = substitute(getcwd(), $HOME, "~", "g") 
    return curdir 
endfunction 
set statusline=[%n]\ %f%m%r%h\ \|\ \ pwd:\ %{CurDir()}\ \ \|%=\|\ %l,%c\ %p%%\ \|\ ascii=%b,hex=%b%{((&fenc==\"\")?\"\":\"\ \|\ \".&fenc)}\ \|\ %{$USER}\ @\ %{hostname()}\  
  
"======================================================  
  
" 第80列往后加下划线 
"au BufWinEnter * let w:m2=matchadd('Underlined', '\%>' . 80 . 'v.\+', -1) 
  
" 根据给定方向搜索当前光标下的单词,结合下面两个绑定使用 
function! VisualSearch(direction) range 
    let l:saved_reg = @" 
    execute "normal! vgvy" 
    let l:pattern = escape(@", '\\/.*$^~[]') 
    let l:pattern = substitute(l:pattern, "\n$", "", "") 
    if a:direction == 'b' 
        execute "normal ?" . l:pattern . "<cr>" 
    else 
        execute "normal /" . l:pattern . "<cr>" 
    endif 
    let @/ = l:pattern 
    let @" = l:saved_reg 
endfunction 
" 用 */# 向 前/后 搜索光标下的单词 
vnoremap <silent> * :call VisualSearch('f')<CR> 
vnoremap <silent> # :call VisualSearch('b')<CR> 
  
"====================================================== 
  
  
" 自定义按键 
" {{{ 
  
" 在文件名上按gf时,在新的tab中打开 
"map gf :tabnew <cfile><cr> 
  
" 用c-j,k在buffer之间切换 
nn <C-J> :bn<cr> 
nn <C-K> :bp<cr> 
  
" Bash(Emacs)风格键盘绑定 
imap <C-e> <END> 
imap <C-a> <HOME> 
  
"从系统剪切板中复制,剪切,粘贴 
map <F2> "+y 
map <F3> "+x 
map <F4> "+p 
  
  
" 快捷输入 
" 自动完成括号和引号 
inoremap <leader>1 ()<esc>:let leavechar=")"<cr>i 
inoremap <leader>2 []<esc>:let leavechar="]"<cr>i 
inoremap <leader>3 {}<esc>:let leavechar="}"<cr>i 
inoremap <leader>4 {<esc>o}<esc>:let leavechar="}"<cr>O 
inoremap <leader>q ''<esc>:let leavechar="'"<cr>i 
inoremap <leader>w ""<esc>:let leavechar='"'<cr>i 
  
" c-j自动补全,当补全菜单打开时,c-j,k上下选择 
imap <expr> <c-j>      pumvisible()?"\<C-N>":"\<C-X><C-O>" 
imap <expr> <c-k>      pumvisible()?"\<C-P>":"\<esc>" 
" f:文件名补全,l:行补全,d:字典补全,]:tag补全 
imap <C-]>             <C-X><C-]> 
imap <C-F>             <C-X><C-F> 
imap <C-D>             <C-X><C-D> 
imap <C-L>             <C-X><C-L> 
"}}} 
"======================================================  

  
"====================================================== 
  
" 插件设置 
" {{{ 
  
" 插件窗口的宽度,如TagList,NERD_tree等,自己设置 
let s:PlugWinSize = 25 
  
" autocomplpop.vim  
let g:acp_behaviorKeywordLength = 4 
"======================================================  
  
" ConqueTerm.vim 
let g:ConqueTerm_FastMode = 1        " enable fast mode 
let g:ConqueTerm_Color = 0           " diable terminal colors 
let g:ConqueTerm_CloseOnEnd = 1      " close buffer when program exits 
"======================================================   
  
" tagbar.vim 
" <leader>tb 打开Tagbar窗口 
nmap <silent> <leader>tb :TagbarToggle<CR> 
let g:tagbar_left = 0 
let g:tagbar_width = 25 
"====================================================== 
  
" taglist.vim 
" http://www.vim.org/scripts/script.php?script_id=273 
" <leader>t 打开TagList窗口,窗口在右边 
nmap <silent> <leader>t :TlistToggle<cr> 
"let Tlist_Ctags_Cmd = '/usr/bin/ctags' 
let Tlist_Show_One_File = 0 
let Tlist_Exit_OnlyWindow = 1  
let Tlist_Use_Right_Window = 1 
let Tlist_File_Fold_Auto_Close = 1 
let Tlist_GainFocus_On_ToggleOpen = 0 
let Tlist_WinWidth = s:PlugWinSize 
let Tlist_Auto_Open = 0 
let Tlist_Display_Prototype = 0 
"let Tlist_Close_On_Select = 1 
"======================================================  
  
  
" OmniCppComplete.vim 
" http://www.vim.org/scripts/script.php?script_id=1520 
set completeopt=menu 
let OmniCpp_NamespaceSearch = 1 
let Omnicpp_GlobalScopeSearch = 1 
let OmniCpp_ShowPrototypeInAbbr = 1  
let OmniCpp_DefaultNamespaces = ["std", "_GLIBCXX_STD"]     " 逗号分割的字符串 
let OmniCpp_MayCompleteScope = 1  
let OmniCpp_SelectFirstItem = 2  
"====================================================== 
  
" 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 
  
" 文件类型 
  
au BufNewFile,BufRead *.t2t set ft=txt2tags 
  
"au FileType python set ft=python.django 
"au FileType html set ft=htmldjango.html 
  
autocmd FileType python set omnifunc=pythoncomplete#Complete 
autocmd FileType html set omnifunc=htmlcomplete#CompleteTags 
autocmd FileType ruby,eruby set omnifunc=rubycomplete#Complete 
autocmd FileType javascript set omnifunc=javascriptcomplete#CompleteJS 
autocmd FileType css set omnifunc=csscomplete#CompleteCSS 
autocmd FileType xml set omnifunc=xmlcomplete#CompleteTags 
autocmd FileType java set omnifunc=javacomplete#Complete 
  
"======================================================
附件:
desert256配色方案


转载于:https://my.oschina.net/Sebastian/blog/83803

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值