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