June 21, 2010秀一下我的gVim
Author : Kunn | Views : 1,028 | No Comments

gVim 不愧为编辑器之神. 自从用了gVim 后, 越来越习惯了, 开始慢慢代替 UltraEdit. 呵呵. 废话少说, 附上我的配置文件, 综合了n家之长, 终于让自己满意了, 有点乱, 删除一些对我没有功能 (ctags…)
if (has(“gui_running”))
” 图形界面下的设置
“set nowrap
“set guioptions+=b
“colo tango2
colo oceandeep
“colo slate
“colo darkblue2else
” 字符界面下的设置
set wrap
colo ron
endif
“set guifont=Monospace\ 9
set mousemodel=popup
set keymodel=startsel,stopsel
set stal=2 “标签设置
“au GUIEnter * simalt ~x
” 进入插入模式时改变状态栏颜色(仅限于Vim 7)
set laststatus=2
“if version >= 700
” au InsertEnter * hi StatusLine guibg=#818D29 guifg=#FCFCFC gui=none
” au InsertLeave * hi StatusLine guibg=#EEEEEE guifg=#363636 gui=none
“endif” 打开自动缩进功能
“set autoindent
“set smartindent
set number
“建目录 C:\Program Files\Vim\swp
set directory=$vim/swp“auto BufEnter * let &titlestring = hostname() . “: ” . expand(“%:p”) . ” [" . &fenc . "][" . &ff . "]”
au BufRead,BufNewFile *.txt setlocal ft=txt
“VIM7.0中CursorLine的支持
if version >= 700
set cursorline
hi CursorLine cterm=bold ctermbg=DarkBlue
endifset backspace=indent,eol,start
set expandtab
set grepprg=grep\ -nH\ $*
“set helplang=CN
set history=50
set ignorecase smartcase
set incsearch
” 不要高亮被搜索的句子(phrases)
set nohlsearch
“set laststatus=2
set linebreak
“set list
set ruler
set sbr=>>
set shellslash
set showcmd
set smartindent
“set viminfo=!,’1000,<100,c,f1,h,s10,rA:,rB:,n~/.viminfo
set wildmenu
syntax enable
"平时光标不闪, 而在插入模式时闪动
set guicursor+=n-v-c:blinkon0
"set mouse=nv " Allow mouse use in normal and visual mode."Customizing some default highlight
function! s:CustomHighlight()
" if !exists("g:colors_name") || g:colors_name == "default"
" highlight LineNr gui=NONE guifg=#666666 guibg=#e8e8e8 cterm=NONE ctermfg=DarkGray ctermbg=LightGray
" Statusline
highlight User1 guifg=#000000 guibg=#c2bfa5 cterm=NONE ctermfg=Black ctermbg=LightGray
highlight User2 guifg=#888888 guibg=#c2bfa5 cterm=NONE ctermfg=DarkGray ctermbg=LightGray
highlight User3 guifg=#0000ff guibg=#c2bfa5 cterm=NONE ctermfg=Blue ctermbg=LightGray
highlight User4 guifg=#ff0000 guibg=#c2bfa5 cterm=NONE ctermfg=Red ctermbg=LightGray
" endif
endfunctioncall s:CustomHighlight()
if has("autocmd")
autocmd CursorHold * call s:CustomHighlight()
autocmd FocusGained * call s:CustomHighlight()
autocmd VimEnter * call s:CustomHighlight()
endif" Customizing status line
function! CustomStatusLineBufSize()
let BufSize = line2byte(line("$") + 1) - 1
if BufSize < 0
let BufSize = 0
endif
" Add commas
let Remain = BufSize
let BufSize = ""
while strlen(Remain) > 3
let BufSize = “,” . strpart(Remain, strlen(Remain) – 3) . BufSize
let Remain = strpart(Remain, 0, strlen(Remain) – 3)
endwhile
let BufSize = Remain . BufSize
let BufSize = BufSize . ‘ byte’
return BufSize
endfunctionif has(“gui_running”)
execute ‘set statusline=%<%1*%f\ %h%m%r%2*\|' .
\ '%3*%{&ff}%2*:%3*%{&fenc}%2*:%3*%{&ft}%2*\|%{CustomStatusLineBufSize()}' .
\ '%=%b\ 0x%B\ \ \|' .
\ '%1*sts%2*:%3*%{&sts}%2*:%1*sw%2*:%3*%{&sw}%2*:' .
\ '%1*ts%2*:%3*%{&ts}%2*:%1*tw%2*:%3*%{&tw}%2*\|' .
\ '%06(%l%),%03(%v%)\ %1*%4.4P'
else
execute 'set statusline=%<%1*%f\ %h%m%r%2*\|' .
\ '%3*%{&ff}%2*:%3*%{&fenc}%2*:%3*%{&ft}%2*\|%{CustomStatusLineBufSize()}' .
\ '%=%b\ 0x%B\ \ ' .
\ '%06(%l%),%03(%v%)\ %1*%4.4P'
endif"
noremap:NERDTree
“设置Tab
if has(“gui_running”) “|| s:useWildMenu
nmap:tabNext
nmap:tabnext
imap:tabNext
imap:tabnext
nmap:tabnew
nmap:q
endif“设置自动补全
set completeopt=longest,menuone
inoremappumvisible() ? “\ ” : “\ u\ ”
inoremappumvisible() ? “\ ” : “\ \ =pumvisible() ? \”\\ \” : \”\\ \”"
inoremappumvisible() ? “\ ” : “\ \ \ \ \ =pumvisible() ? \”\\ \” : \”\\ \”" if has(“win32″)
set encoding=utf-8
set fileencodings=ucs-bom,utf-8,cp936,gb18030,big5,euc-jp,euc-kr,latin1” 解决菜单乱码
source $VIMRUNTIME/delmenu.vim
source $VIMRUNTIME/menu.vim
“set guifont=Arial_monospaced_for_SAP:h9:cANSI
“set guifont=Courier_New:h10:cANSI
set guifont=YaHei\ Consolas\ Hybrid:h9
set guifontwide=Arial:h9” 设置窗口的起始位置和大小
winpos 150 150
set lines=30
set columns=90
” 显示行号
set number
” 换行
set wrap
” 设置跳格距离
set tabstop=4
” 设置自动缩进格数
set shiftwidth=4
” 关闭备份
set nobackup
set nowritebackup
“光标在窗口上下边界时距离边界8行即开始滚屏
set so=2
” 解决中文错位
set ambiwidth=double
” 设置光标-不起作用
“set gcr=i-ci:ver10
“置光标在行首时按退格键,光标会回到上一行行尾
“set backspace=indent,eol,start“自动定位上次文件编辑位置
“autocmd BufReadPost * if line(“‘\”") && line(“‘\”") <= line("$") | exe "normal `\"" | endif
"Set magic on
set magic
"set textwidth=78
set fo+=mM
set display=lastline
imap jj
if &wrap
map j gj
map k gk
mapgj
mapgk
map 0 g0
map $ g$
endif” 移除菜单栏、工具栏和滚动条
set guioptions-=m
set guioptions-=T
set guioptions-=r
set guioptions-=b“设置diary 路径
let g:calendar_diary=”d:\vimsetting\myDiary”
” let NERDTreeWinPos=1
let NERDTreeWinSize=24
let NERDTreeShowBookmarks=1
let NERDTreeMouseMode=2 ” 指定鼠标模式(1.双击打开;2.单目录双文件;3.单击打开)
let NERDChristmasTree=1
let NERDTreeStatusline=0
let NERDTreeAutoCenter=1
let NERDTreeBookmarksFile=’d:\vimsetting\NerdTree\NerdBookmarks.txt’let g:calendar_datetime = ‘statusline’
let MRU_File = ‘d:\vimsetting\mru\vim_mru_files’
let MRU_Max_Entries = 30
“let MRU_Exclude_Files = ‘^d:\\temp\\.*’
map:MRU ” map
:set nowrap
map:set wrap! ” Remove trailing whitespace when writing a buffer, but not for diff files.
” From: Vigil
function RemoveTrailingWhitespace()
if &ft != “diff”
let b:curcol = col(“.”)
let b:curline = line(“.”)
silent! %s/\s\+$//
silent! %s/\(\s*\n\)\+\%$//
call cursor(b:curline, b:curcol)
endif
endfunction
autocmd BufWritePre * call RemoveTrailingWhitespace()” autoload _vimrc
“autocmd! bufwritepost _vimrc source %endif
再贴两个我常用的功能:
:g/^/s//def /g
:g/$/s// ABC/g
在文本每行的头和尾添加字符串
另外, 如何添加到右键:
进入到目录c:\Documents and Settings\用户名\SendTo(该目录默认是隐藏的)下, “鼠标右键”-“新建”-“快捷方式”,然后通过对话框的“浏览”找到gvim安转位置,这样就建立gvim的一个快捷方式,右键单击这个快捷文件-属性 -快捷方式,在“目标(T)”的地址栏写入: “D:\Program Files\Vim\vim72\gvim.exe” -p –remote-tab-silent “%*”










Leave your response!