Gvim 配置

749 查看

set ignorecase smartcase    " 搜索时忽略大小写,但在有一个或以上大写字母时仍保持对大小写敏感

set nu              " 显示行号
"Toggle Menu and Toolbar
set guioptions-=m
set guioptions-=T
set guifont=Source_Code_Pro:h11:cANSI
set ruler
set rulerformat=%55(%{strftime('%a\ %b\ %e\ %I:%M\ %p')}\ %5l,%-6(%c%V%)\ %P%)
set guioptions+=b
set guioptions-=T
set nobackup
set paste
set clipboard=unnamed      " 让Vim和Win共用剪贴板
"tab 设置
:set ts=4
:set expandtab
:%retab!
"设置下一行保持缩进
:set autoindent

set cursorline cursorcolumn

syntax enable           " 打开语法高亮
syntax on           " 允许按指定主题进行语法高亮,而非默认高亮主题
colorscheme github" 指定配色方案

set showcmd         " 在命令行显示当前输入的命令

set langmenu=en_US      " 将菜单和信息设置为英文
let $LANG = 'en_US'
source $VIMRUNTIME/delmenu.vim
source $VIMRUNTIME/menu.vim

set fileencoding=utf-8      " 设置多编码处理
set encoding=utf-8
set tenc=utf-8
set fileencodings=ucs-bom,utf-8,cp936,gb18030,big5,euc-jp,euc-kr,latin1
"language message zh_CN.UTF-8

filetype on         " 开启文件类型侦测
filetype plugin on      " 根据侦测到的不同类型加载对应的插件


if has("autocmd") && exists("+omnifunc")
autocmd Filetype *
\ if &omnifunc == "" |
\ setlocal omnifunc=syntaxcomplete#Complete |
\ endif
endif

set laststatus=2        " 设置状态栏
set statusline=%2*%n%m%r%h%w%*\ %F\ %1*[FORMAT=%2*%{&ff}:%{&fenc!=''?&fenc:&enc}%1*]\ [TYPE=%2*%Y%1*]\ [COL=%2*%03v%1*]\ [ROW=%2*%03l%1*/%3*%L(%p%%)%1*]\ [DATE=%2*%{strftime(\"%c\",getftime(expand(\"%%\")))}%1*]   
"set statusline=%F%m%r%h%w\ [FORMAT=%{&ff}]\ [TYPE=%Y]\ [ASCII=\%03.3b]\ [HEX=\%02.2B]\ [POS=%04l,%04v][%p%%]\ [LEN=%L]

function! InsertStatuslineColor(mode)
  if a:mode == 'i'
    hi statusline guibg=peru
  elseif a:mode == 'r'
    hi statusline guibg=blue
  else
    hi statusline guibg=black
  endif
endfunction

au InsertEnter * call InsertStatuslineColor(v:insertmode)
au InsertLeave * hi statusline guibg=orange guifg=white
hi statusline guibg=black

hi User1 guifg=gray
hi User2 guifg=red
hi User3 guifg=white

set winaltkeys=no

" map
nmap <tab> V>
nmap <s-tab> V<
vmap <tab> >gv
vmap <s-tab> <gv
" 打开另存为对话框
map <F2> <Esc>:browse saveas<CR>
" 使用NERDTree插件查看工程文件
nmap <F3> :NERDTreeToggle planning<CR>
" 启用/禁止折行
nmap <silent> <F5> <Esc>:call ToggleWrap()<CR>
" 显示/禁止行列光标
nmap <silent> <F6> <Esc>:call ToggleCursor()<CR>
" 新建标签页
map <F10> <Esc>:tabnew<CR>
" 显示/禁止查找高亮度
nmap <silent> <A-f> <Esc>:call ToggleHLSearch()<CR>

function! ToggleWrap()
     if &wrap
          set nowrap
     else
          set wrap
     endif
endfunction

function! ToggleHLSearch()
     if &hls
          set nohls
     else
          set hls
     endif
endfunction

function! ToggleCursor()
     if &cursorcolumn
          set nocursorline nocursorcolumn
     else
          set cursorline cursorcolumn
     endif
endfunction


let mapleader=";"       " 定义快捷键的前缀,即<Leader>
nmap <leader>v :tabedit $MYVIMRC<CR>

" 配置文件
autocmd bufwritepost _vimrc source $MYVIMRC

" 设置文件格式
set fileformats=unix,dos,mac

" Template
autocmd! BufNewFile * silent! 0r $VIM/vimfiles/skel/Template.%:e

" 取消代码自动折叠
autocmd! BufNewFile,BufRead * setlocal nofoldenable
" 打开/关闭代码折叠
nnoremap <space> za

" 优化大文件编辑
let g:LargeFile=10

" 自动加载文件
set autoread
set list!
set listchars=nbsp:¬,precedes:«,extends:»
hi NonText      ctermfg=247 guifg=#a73111 cterm=bold gui=bold
hi SpecialKey   ctermfg=77  guifg=#654321

augroup filetypedetect
   au BufNewFile,BufRead *.mxl   setf mxl
augroup END