insertyou 发表于 2013-1-15 08:00:34

使用VIM开发软件项目

最近大病一场,还是身体最重要啊!
几周没写文章了,实在是太懒了。今天把自己的vimrc贴出来,希望对大家有所启发。
我的vimrc也是在别人的基础上进行了自己的修改。对vimrc,是不能直接拷贝使用的,不然会有严重的不适。所以还是自己理解了之后,再形成自己的vimrc较好。
此vimrc是用在windows上的,如果在linux上使用,把MySys()的返回值改为"linux"。

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

" This vimrc is based on the vimrc by Amix, URL:

" http://www.amix.dk/vim/vimrc.html

" Maintainer: Easwy

" Version: 0.1

" Last Change: 31/05/07 09:17:57

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""



"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

" General

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

"Get out of VI's compatible mode..

set nocompatible



" Platform

function! MySys()

return "windows"

endfunction



"Sets how many lines of history VIM har to remember

set history=400



" Chinese

if MySys() == "windows"

set encoding=utf-8

set langmenu=zh_CN.UTF-8

language message zh_CN.UTF-8

set fileencodings=ucs-bom,utf-8,gb18030,cp936,big5,euc-jp,euc-kr,latin1

endif



"Enable filetype plugin

filetype plugin on

filetype indent on



"Set to auto read when a file is changed from the outside

set autoread



"Have the mouse enabled all the time:

set mouse=a



"Set mapleader

let mapleader = ","

let g:mapleader = ","



"Fast saving

nmap <silent> <leader>ww :w<cr>

nmap <silent> <leader>wf :w!<cr>



"Fast quiting

nmap <silent> <leader>qw :wq<cr>

nmap <silent> <leader>qf :q!<cr>

nmap <silent> <leader>qq :q<cr>

nmap <silent> <leader>qa :qa<cr>



"Fast remove highlight search

nmap <silent> <leader><cr> :noh<cr>



"Fast redraw

nmap <silent> <leader>rr :redraw!<cr>



" Switch to buffer according to file name

function! SwitchToBuf(filename)

"let fullfn = substitute(a:filename, "^\\~/", $HOME . "/", "")

" find in current tab

let bufwinnr = bufwinnr(a:filename)

if bufwinnr != -1

exec bufwinnr . "wincmd w"

return

else

" find in each tab

tabfirst

let tab = 1

while tab <= tabpagenr("$")

let bufwinnr = bufwinnr(a:filename)

if bufwinnr != -1

exec "normal " . tab . "gt"

exec bufwinnr . "wincmd w"

return

endif

tabnext

let tab = tab + 1

endwhile

" not exist, new tab

exec "tabnew " . a:filename

endif

endfunction



"Fast edit vimrc

if MySys() == 'linux'

"Fast reloading of the .vimrc

map <silent> <leader>ss :source ~/.vimrc<cr>

"Fast editing of .vimrc

map <silent> <leader>ee :call SwitchToBuf("~/.vimrc")<cr>

"When .vimrc is edited, reload it

autocmd! bufwritepost .vimrc source ~/.vimrc

elseif MySys() == 'windows'

" Set helplang

set helplang=cn

"Fast reloading of the _vimrc

map <silent> <leader>ss :source ~/_vimrc<cr>

"Fast editing of _vimrc

map <silent> <leader>ee :call SwitchToBuf("~/_vimrc")<cr>

"When _vimrc is edited, reload it

autocmd! bufwritepost _vimrc source ~/_vimrc

endif



" For windows version

if MySys() == 'windows'

source $VIMRUNTIME/mswin.vim

behave mswin



set diffexpr=MyDiff()

function! MyDiff()

let opt = '-a --binary '

if &diffopt =~ 'icase' | let opt = opt . '-i ' | endif

if &diffopt =~ 'iwhite' | let opt = opt . '-b ' | endif

let arg1 = v:fname_in

if arg1 =~ ' ' | let arg1 = '"' . arg1 . '"' | endif

let arg2 = v:fname_new

if arg2 =~ ' ' | let arg2 = '"' . arg2 . '"' | endif

let arg3 = v:fname_out

if arg3 =~ ' ' | let arg3 = '"' . arg3 . '"' | endif

let eq = ''

if $VIMRUNTIME =~ ' '

if &sh =~ '\<cmd'

let cmd = '""' . $VIMRUNTIME . '\diff"'

let eq = '"'

else

let cmd = substitute($VIMRUNTIME, ' ', '" ', '') . '\diff"'

endif

else

let cmd = $VIMRUNTIME . '\diff'

endif

silent execute '!' . cmd . ' ' . opt . arg1 . ' ' . arg2 . ' > ' . arg3 . eq

endfunction

endif



"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

" Colors and Fonts

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""



"Set font

"if MySys() == "linux"

" set gfn=Monospace\ 11

"endif



" Avoid clearing hilight definition in plugins

if !exists("g:vimrc_loaded")

"Enable syntax hl

syntax enable



" color scheme

if has("gui_running")

set guioptions-=T

set guioptions-=m

set guioptions-=L

set guioptions-=r

colorscheme darkblue_my

"hi normal guibg=#294d4a

else

colorscheme desert_my

endif " has

endif " exists(...)



"Some nice mapping to switch syntax (useful if one mixes different languages in one file)

map <leader>$ :syntax sync fromstart<cr>



autocmd BufEnter * :syntax sync fromstart



"Highlight current

"if has("gui_running")

" set cursorline

" hi cursorline guibg=#333333

" hi CursorColumn guibg=#333333

"endif



"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

" Fileformats

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

"Favorite filetypes

set ffs=unix,dos



nmap <leader>fd :se ff=dos<cr>

nmap <leader>fu :se ff=unix<cr>



"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

" VIM userinterface

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

"Set 7 lines to the curors - when moving vertical..

"set so=7



" Maximum window when GUI running

if has("gui_running")

set lines=9999

set columns=9999

endif



"Turn on WiLd menu

set wildmenu



"Always show current position

set ruler



"The commandbar is 2 high

set cmdheight=2



"Show line number

set nu



"Do not redraw, when running macros.. lazyredraw

set lz



"Change buffer - without saving

"set hid



"Set backspace

set backspace=eol,start,indent



"Bbackspace and cursor keys wrap to

"set whichwrap+=<,>,h,l

set whichwrap+=<,>



"Ignore case when searching

"set ignorecase



"Include search

set incsearch



"Highlight search things

set hlsearch



"Set magic on

set magic



"No sound on errors.

set noerrorbells

set novisualbell

set t_vb=



"show matching bracets

"set showmatch



"How many tenths of a second to blink

"set mat=2



""""""""""""""""""""""""""""""

" Statusline

""""""""""""""""""""""""""""""

"Always hide the statusline

set laststatus=2



function! CurDir()

let curdir = substitute(getcwd(), '/home/easwy/', "~/", "g")

return curdir

endfunction



"Format the statusline

"set statusline=\ %F%m%r%h\ %w\ \ CWD:\ %r%{CurDir()}%h\ \ \ Line:\ %l/%L:%c






<span style="">
</
页: [1]
查看完整版本: 使用VIM开发软件项目