使用VIM开发软件项目 - (13) 我的vimrc (一)

最近大病一场,还是身体最重要啊!
几周没写文章了,实在是太懒了。今天把自己的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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值