2010-01-02

我的vimrc文件

这份是我当前使用的vimrc文件,大部分是从网上东一点西一点抄来的,我已无法一一给出来源。我尽量给每个设定做注释,还有一些命令被我注释掉,因为我觉得这些命令很有用,可暂时又用不着,我怕日后忘了,同时也想把这个vimrc做成个小小的帮助文件。实际使用时可以把注释删掉,这样貌似可以提高一点点启动速度。还有就是我还没测试它在Linux系统的兼容性。此文件更新于2010-01-03

" 希锐亚的_vimrc文件
"2010.01.03

""""""""""""""""""""" 编码设置 """"""""""""""""""""""""""
if has("multi_byte")
  " 可自动识别的文件类型为带 BOM 字符的 Unicode 文件、UTF-8 编码的文件和 GBK 编码的文件。
  "set bomb
  set fileencodings=ucs-bom,utf-8,chinese,taiwan,japan,korea,latin1
  " CJK environment detection and corresponding setting
  if v:lang =~ "^zh_CN"
    " Simplified Chinese, on Unix euc-cn, on MS-Windows cp936
    set encoding=chinese
    set termencoding=chinese
    if &fileencoding == ''
      set fileencoding=chinese
    endif
  elseif v:lang =~ "^zh_TW"
    " Traditional Chinese, on Unix euc-tw, on MS-Windows cp950
    set encoding=taiwan
    set termencoding=taiwan
    if &fileencoding == ''
      set fileencoding=taiwan
    endif
  elseif v:lang =~ "^ja_JP"
    " Japanese, on Unix euc-jp, on MS-Windows cp932
    set encoding=japan
    set termencoding=japan
    if &fileencoding == ''
      set fileencoding=japan
    endif
  elseif v:lang =~ "^ko"
    " Korean on Unix euc-kr, on MS-Windows cp949
    set encoding=korea
    set termencoding=korea
    if &fileencoding == ''
      set fileencoding=korea
    endif
  endif
   " Detect UTF-8 locale, and override CJK setting if needed
  if v:lang =~ "utf8$" || v:lang =~ "UTF-8$"
    set encoding=utf-8
  endif
else
  echoerr 'Sorry, this version of (g)Vim was not compiled with "multi_byte"'
endif

"""""""""""""""""""""" 界面设置 """""""""""""""""""""""""
"语法高亮
syntax on
"根据文件类型高亮
filetype plugin on
"打开自动缩进
set backspace=2
set autoindent
"空格代替tab
set softtabstop=4
set tabstop=4
set cindent shiftwidth=4
"行号
set number
" 搜索急略大小写
set incsearch
" 配色方案
colorscheme desert
"colorscheme desert256
"设置帮助信息
set helplang=cn
"记录历史的行数 
set history=1000
"打开文件时自动回到上次编辑位置
if has("autocmd")
    autocmd BufRead *.txt set tw=78
    autocmd BufReadPost *
        \ if line("'\"") > 0 && line ("'\"") <= line("$") |
        \ exe "normal g'\"" |
        \ endif
endif
"在标签页栏中去除当前所编辑文件的路径信息,只保留文件名。
function ShortTabLabel ()
    let bufnrlist = tabpagebuflist (v:lnum)
    let label = bufname (bufnrlist[tabpagewinnr (v:lnum) -1])
    let filename = fnamemodify (label, ':t')
    return filename
endfunction
set guitablabel=%{ShortTabLabel()}
" 设置windows下的字体、字号;set columns=80 lines=21设置启动时窗口的大小
if has("gui")
   if has("win32")
       set guifont=新宋体:h12
   else
       set guifont=新宋体\ 10
   endif
endif
"设置行距
set linespace=2
"搜索关键字高亮
set hls
"设置备份,我不喜欢生成多余的文件所以第三行设定不保存备份
set backup
set backupext=.bak
set nowritebackup
"不需要保持和 vi 非常兼容
set nocompatible
" 自动换行
set wrap
"正确地处理中文字符的折行和拼接
set formatoptions+=mM
"自动将 Vim 工作目录迁移到所打开文本文件的目录下
autocmd BufEnter * cd %:p:h
"gvim窗口启动的时候可以自动最大化,似乎是Win32版本才用的~
"if has('gui_running') && has("win32")
"    au GUIEnter * simalt ~x
"endif
" 保存文件时强制保存成utf-8格式
set fenc=utf-8

set showcmd

"-----  状态栏设置(1) _BEGIN_ -----
"显示状态栏
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*]\ *^÷^*
"设置状态栏根据不同状态显示不同颜色
function! InsertStatuslineColor(mode)
    if a:mode == 'i'
        hi statusline guibg=peru
    elseif a:mode == 'r'
        hi statusline guibg=blue
    else
        hi statusline guibg=red
    endif
endfunction
au InsertEnter * call InsertStatuslineColor(v:insertmode)
au InsertLeave * hi statusline guibg=orange guifg=white
hi statusline guibg=green

"注:此为状态栏设置的第一部分,第二部分必须放在文件的最后才能生效
"----- 状态栏设置(1)_END_ -----

"""""""""""""""""""""" 按键绑定 """""""""""""""""""""""""
" 允许用户使用 F2 来取消搜索/替换的加亮显示。
nmap <silent> <F2>      :nohlsearch<CR>
imap <silent> <F2> <C-O>:nohlsearch<CR>
" 按,v查看_vimrc
:nmap ,v :e $VIM/_vimrc<cr>
" 按,s更新配置文件
:nmap ,s :source $VIM/_vimrc<cr>
" 按F5显示buffer的文件,并提示输入文件的行号
map <F5> :ls<cr>:e #
"按j移动一行
nmap j gj
nmap k gk
" 按空格向下翻半屏
nmap <Space> <C-d>
" 把所选内容复制到系统粘贴板
vmap ,c "+y<cr>
" 把系统粘贴板的内容粘贴到下一行,也可按shilt+insert
nmap ,p "+p<cr>
"配置<Leader>,默认为\
let mapleader = ","
" F9、F10去除、显示工具、菜单栏
map <F9> <Esc>:set go=<CR>
map <F10> <Esc>:set go=mT<CR>
" F11全屏,F12还原窗口
map <F11> <Esc>:simalt ~x<CR>
map <F12> <Esc>:set columns=80 lines=21<cr>

"""""""""""""""""""""" 插件设置 """""""""""""""""""""""""
" 日历插件calendar的设置:路径、快捷键
let g:calendar_diary="d:/win_home/xxxcjr/My Documents/home/vim_calendar"
let g:calendar_wruler = '日 一 二 三 四 五 六'
let g:calendar_mark = 'left-fit'
let g:calendar_focus_today = 1
map ca :Calendar<cr>

" 树形目录NERDTree的设置
"按F5启动树状目录
nmap <leader>d :NERDTreeToggle<CR>
"按<leader>m启动matrix(!)
nmap <leader>m :Matrix<cr>

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"----- 状态栏设置(2) _BEING_ -----
hi User1 guifg=gray
hi User2 guifg=red
hi User3 guifg=white
"注:这三行设定状态栏的高亮,好像只有放在此文件的最后才能生效
"----- 状态栏设置(2) _END_ -----

图片:vim (我的vim截图)

(完)

没有评论:

留言须知:
0. 你有權保持沉默,但你所說的將作為此BLOG有人訪問的證據。
1. 支持的HTML標籤:<a href="" title=""> <b> <em> <i> <strong>。
2. 留言留名,不然易被无视。(在“评论”中选择“名称/网址”,网址可以不填)。
3. 原則上我不删除留言,除非那則留言侮辱到你。