标签:des style blog color io os ar java for
" -------------------- Copyright Header Begin ---------------------------------
" Description : Facilitates vim settings
" Version : 2.0.1
" Author : RollStone,jealdean@outlook.com
" Copyright : RollStone (2007-2014).
" LastChanged : 2014-10-14 00:45:09
" -------------------- Copyright Header End -----------------------------------
" Overview for maintainers :
" The file is divided into following sections. You may add yours or update these
" if/when you choose to enhance this setting file.
"
" + General Settings
" + Tips(just need to how use these functions)
" + Autocmds
" + Plugins
" + Mappings
"{{{ ---------------- General Settings Begin ---------------------------------
"MC: My Contaction
"abbr mc RollStone,jealdean@outlook.com
"Leader
let g:mapleader=‘,‘
"Just more like vim,less vi
set nocompatible
"backup
set nobackup
"colorscheme
set t_Co=256
colorscheme peaksea
if &diff
colorscheme peaksea
endif
"dirs
set autochdir
set autoread
set autowrite
"complete
set complete+=k
"set wildmenu
set completeopt=longest,menu
set formatoptions+=mM
set cinoptions=:0,l1,t0,g0
set nosmd
set nosc
"encodings
set fileencodings=utf-8,gbk,gb18030,chinese
"indent
set autoindent
set smartindent
set noexpandtab
set tabstop=4
set shiftwidth=4
"search
set incsearch
set hlsearch
set ignorecase
"statusline
set laststatus=2
"tabulation
set ruler
set number
set list lcs=tab:\¦\
"wrap
set nowrap
set nowrapscan
"others
set backspace=indent,eol,start
set wildignore=*.bak,*.o,*.e,*~
set browsedir=current
set sessionoptions-=curdir
set ttimeoutlen=100
set vb t_vb=
"some common gates
syntax on
filetype plugin indent on
"}}} ---------------- General Settings End -----------------------------------
" Tips {{{1
"notice: n just be in normal mode
"tip1. match ()/{}/[]
"n: % (first chang into normal mode,and press shift + 5)
"tip2. find the manual content
"n: K (first chang into normal mode,and press shift + K)
"tip3. return prev window after ‘gf‘
"n:<ctrl-o>
"tip4. check what options
"c: set [all]
" Autocmds {{{1
if has("autocmd")
"when modifies vimrc or .vimrc reload it
au BufWritePost [ _.]vimrc source ~/.vimrc
"auto chdir to curdir
au BufEnter * :lchdir %:p:h
"change to the lastest cursor position
au BufReadPost * if line("‘\"") > 0 && line("‘\"") <= line("$") | exe "normal! g`\"" | endif
endif " has (autocmd)"
" Plugins {{{1
"c.vim(c-support)
let g:C_MapLeader=‘;‘
"powerline
let g:Powerline_cache_dir=simplify(expand(‘%:p:h‘))
let g:Powerline_cache_enabled=0
"let g:Powerline_dividers_override = [‘>>‘, ‘>‘, ‘<<‘, ‘<‘]
"overrid mode_name"
let g:Powerline_mode_n=‘n‘
let g:Powerline_mode_i=‘i‘
let g:Powerline_mode_v=‘V‘
let g:Powerline_mode_R=‘R‘
let g:Powerline_stl_path_style=‘full‘
"taglist
let Tlist_Auto_Open=0
let Tlist_WinWidth=38
let Tlist_Exit_OnlyWindow=1
let Tlist_Use_Right_Window=0
let Tlist_Close_On_Select=1
let Tlist_File_Fold_Auto_Close = 0
let Tlist_GainFocus_On_ToggleOpen=1
let Tlist_Display_Prototype = 1
"windowmanager
let g:winManagerWidth=g:Tlist_WinWidth
let g:winManagerWindowLayout=‘TagList|FileExplorer‘
let g:wiw=60
nmap wm :WMToggle<cr>
""}}} ----------------- Plugins End --------------------------------------------
"---------------- Mappings Begin -----------------------------------------{{{1
"F1 - overrule Linux F1
map <silent> <F1> <esc>:exec "help ".expand("<cword>")<cr>
"F2 - call file explorer Ex
map <silent> <F2> :Explorer
imap <silent> <F2> <esc>:Explorer
"F3 - remove trail white-space
map <silent> <F3> :%s/[ \t\r]\+$//g<cr>
imap <silent> <F3> <esc>:%s/[ \t\r]\+$//g<cr>
"F5-F8 :quickfix :open/close error windows,display prev/next error
map <silent> <F5> :copen<cr>
map <silent> <F6> :cclose<cr>
map <silent> <F7> :cp<cr>
map <silent> <F8> :cn<cr>
imap <silent> <F5> <esc>:copen<cr>
imap <silent> <F6> <esc>:cclose<cr>
imap <silent> <F7> <esc>:cp<cr>
imap <silent> <F8> <esc>:cn<cr>
"autocomplete parenthesis, brackets and braces
inoremap ( ()<Left>
inoremap [ []<Left>
inoremap { {}<Left>
vnoremap ( s()<Esc>P<Right>%
vnoremap [ s[]<Esc>P<Right>%
vnoremap { s{}<Esc>P<Right>%
inoremap , ,
"Open includes files in a new split window
set path=.,include,../include,/usr/include,/usr/local/include
"nmap gf <c-w><c-f>
"{{User defines functions and its‘ map
"Format C/CPP codes,and return current line
function! UDFormatCppCode()
silent exec "ks| normal gg=G|‘s"
endfunc
nmap fmt :call UDFormatCppCode()<cr>
imap fmt <esc>:call UDFormatCppCode()<cr>o
au BufWritePre,FileWritePre *.c,*.cpp,*.h,*.hpp,*.java :call UDFormatCppCode()
"Author Info Adder
function! UDAuthorInfoAdd()
let aid_author=‘RollStone‘
let aid_email=‘jealdean@outlook.com‘
let fts=expand(‘%:p:e‘)
if fts == ‘sh‘ || fts == ‘pl‘
"script file
call setline(1,[‘#=============================================================‘
\,‘# Filename: ‘.expand(‘%:t‘)
\,‘# Brief: TODO ‘
\,‘# Author: ‘.aid_author
\,‘# Email: ‘.aid_email
\,‘# LastChange: ‘.strftime(‘%F %T‘)
\,‘# Revision: ‘
\,‘#=============================================================‘])
"add FileHeader first line
let line=getline(0)
if line !~ ‘^\#\!\/bin\/.*$‘
let lstr=expand(‘%:p:e‘)
if lstr == ‘sh‘
let newline= ‘#!/bin/bash‘
elseif lstr == ‘pl‘
let newline= ‘#!/bin/perl‘
endif
call append(0,newline)
endif
else
"elseif fts == ‘c‘ || fts ==‘h‘ || fts =~ ‘\*pp‘ || fts == ‘java‘
"program files
let line=getline(0)
if line !~ ‘^\/\*.*$‘
call append(0,[‘/*‘
\,‘*==============================================================================‘
\,‘* Filename: ‘.expand(‘%:t‘)
\,‘* Brief: TODO ‘
\,‘* Author: ‘.aid_author
\,‘* Email: ‘.aid_email
\,‘* LastChange: ‘.strftime(‘%F %T‘)
\,‘* Revision: ‘
\,‘*==============================================================================‘
\,‘*/‘])
endif
endif
echohl WarningMsg | echo "Success to add FileHeader" | echohl None
endfunc
"Author Info Detect
function! UDAuthorInfoDetect()
let n=1
let updated=0
while n<20
let line=getline(n)
if line =~ ‘^.*ile.ame.*:*.*$‘
let newline=substitute(line,‘:.*$‘,‘: ‘.expand(‘%:t‘),‘g‘)
call setline(n,newline)
let updated = 1
elseif line =~ ‘^.*hange.*:\S*.*$‘
let newline=substitute(line,‘:.*$‘,‘: ‘.strftime("%Y-%m-%d %H:%M:%S"),‘g‘)
call setline(n,newline)
let updated = 1
endif
let n+=1
endwhile
"
if updated == 1
echohl WarningMsg | echo "Success to update FileHeader." | echohl None
else
call UDAuthorInfoAdd()
endif
endfunc
nmap udaid :call UDAuthorInfoAdd()<cr>
imap udaid <esc>:call UDAuthorInfoAdd()<cr>$a
"update last modified changes
au BufNewFile *.sh,*.pl,*.txt,*.java,*.go :call UDAuthorInfoAdd()
au BufWrite,FileWritePre,FileAppendPre *vimrc,*.sh,*.pl,*.h,*.c,*.*pp :call UDAuthorInfoDetect()
标签:des style blog color io os ar java for
原文地址:http://www.cnblogs.com/jealdean/p/4023572.html