June 21, 2010秀一下我的gVim

Author : Kunn | Views : 1,028 | No Comments

Category: 常用工具 | Tages:

gVim 不愧为编辑器之神. 自从用了gVim 后, 越来越习惯了, 开始慢慢代替 UltraEdit. 呵呵. 废话少说, 附上我的配置文件, 综合了n家之长, 终于让自己满意了, 有点乱, 删除一些对我没有功能 (ctags…)

if (has(“gui_running”))
” 图形界面下的设置
“set nowrap
“set guioptions+=b
“colo tango2
colo oceandeep
“colo slate
“colo darkblue2

else
” 字符界面下的设置
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
endif

set 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
endfunction

call 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
endfunction

if 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
inoremap pumvisible() ? “\” : “\u\
inoremap pumvisible() ? “\” : “\\=pumvisible() ? \”\\\” : \”\\\”"
inoremap pumvisible() ? “\” : “\\\\\=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
map gj
map gk
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!

Add your comment below, or trackback from your own site. You can also subscribe to these comments via RSS.

Be nice. Keep it clean. Stay on topic. No spam.

You can use these tags:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

This is a Gravatar-enabled weblog. To get your own globally-recognized-avatar, please register at Gravatar.