" Filename : vimrc " Description : ViM Configuration File " Last Modified : 09 Aug 2011, 04:41am "=============================== a-z =================================== " FIRST SECTION " "======================================================================= set nocompatible " Bram Moolenaar suggests this as the first line of our vimrc call pathogen#runtime_append_all_bundles() call pathogen#helptags() " Use panthogen easily modify the runtime path to include all plugin " under the ~/.vim/bundle directory " run 'git submodule init && git submodule update' " every time a submodule is added. set cpoptions=aABceFsmq " ||||||||| " ||||||||+-- When joining lines, leave the cursor " ||||||| between joined lines " |||||||+--- When a new match is created (showmatch) " |||||| pause for .5 " ||||||+---- Set buffer options when entering the " ||||| buffer " |||||+----- Write command updates current file name " ||||+------ Automatically add <CR> to the last line " |||| when using :@r " |||+------- Searching continues at the end of the match " ||| at the cursor position " ||+-------- A backslash has no special meaning in mappings " |+--------- :write updates alternative file name " +---------- :read updates alternative file name set encoding=utf-8 " Sets the character encoding used in VIM set fileencodings=utf-8 " Character encoding for the file of this buffer set fileformats=unix,dos,mac " Support all three, in this order set history=200 " Store 200 history (default is 20) set noexrc " Don't use local version of .(g)vimrc, .exrc set termencoding=utf-8 " Encoding used for the terminal set ttyfast " We have a fast terminal connection "=============================== a-z =================================== " GENERAL SETTING " "======================================================================= autocmd BufWinEnter *.* silent loadview " Make VIM load view (state) (folds, cursor, etc) autocmd BufWinLeave *.* mkview " Make VIM save view (state) (folds, cursor, etc) filetype plugin indent on " Load filetype plugins/indent settings set autochdir " Always switch to the current file directory set backspace=indent,eol,start " Make backspace more flexible set nobackup " No backup files, use modern ways set clipboard+=unnamed " Share windows clipboard set hidden " We can change buffers without saving set iskeyword+=_,$,@,%,# " None of these are word dividers set mouse=a " Use mouse everywhere set noerrorbells " Silent please :) set noswapfile " Do not write annoying swap files set whichwrap=b,s,<,>,~,[,] " Everything wraps " | | | | | | | " | | | | | | +-- "]" Insert and Replace " | | | | | +---- "[" Insert and Replace " | | | | +------ "~" Normal " | | | +-------- <Right> Normal and Visual " | | +---------- <Left> Normal and Visual " | +------------ <Space> Normal and Visual " +-------------- <BS> Normal and Visual set wildmenu " Turn on command line completion wild style set wildignore=*.dll,*.o,*.obj,*.bak,*.exe,*.pyc,*.swp \*.jpg,*.gif,*.png " Ignore these list file extensions set wildmode=list:longest " Turn on wild mode huge list set winaltkeys=no " ALT key combination can be mapped "=============================== a-z =================================== " USER INTERFACE " "======================================================================= colorscheme wombat256 set background=dark " Assume a dark background set completeopt=longest,menuone set cmdheight=1 " Number of screen lines to use for the command-line set cursorcolumn " Highlight the current column set cursorline " Highlight current line set number " Turn on line numbers set incsearch " Highlight as we type our search phrase set laststatus=2 " Always show the status line set lazyredraw " Do not redraw while running macros set linespace=0 " Don't insert any extra pixel lines betweens characters set listchars=tab:\|\ ,trail:.,extends:>,precedes:<,eol:$ " Display unprintable characters when we hit :set list set matchtime=5 " How many tenths of a second to blink matching brackets for set nohlsearch " Do not highlight searched for phrases set nostartofline " Leave my cursor where it was set novisualbell " Don't blink for error messages set report=0 " Message will be given for most ":" commands set ruler " Always show current positions along the bottom set scrolloff=5 " Keep 5 lines (top/bottom) for scope set sessionoptions=resize,winpos,winsize,buffers,tabpages,folds,curdir,help set shortmess=aOstT " Shortens messages to avoid all the hit-enter prompts set showcmd " Show the command being typed set showmatch " Show matching brackets set showmode " Display the current mode set t_Co=256 " ViM can use 256 colors inside Gnome Terminal set statusline=%1*%m%*%r%h%w%f\[%n]\ [mode:%{&ff}]\ [filetype:%Y]\ %{'['.(&fenc!=''?&fenc:&enc).']'}\ [line:%l/%L]\ [col:%v]\ [%p%%] hi User1 term=inverse,bold cterm=inverse,bold ctermfg=red " highlight modified flag in red set viewoptions=folds,options,cursor,unix,slash " Changes the effect of the :mkview commands, better unix / windows compatibility. syntax on " Syntax highlighting on "=============================== a-z =================================== " TEXT FORMATTING " "======================================================================= set expandtab " No real tabs please! set formatoptions=tcrqn " How automatic formatting is to be done " ||||| " ||||+- Recon numbered lists " |||+-- gq formats comments (?) " ||+--- Insert comment leader (?)) on <CR> " |+---- Autowrap COMMENTS using textwidth " +----- Autowrap TEXT using textwidth set ignorecase " Case insensitive by default set infercase " Case inferred by default set nowrap " Do not wrap line set shiftround " When at 3 spaces, and I hit > ... go to 4, not 5 set shiftwidth=4 " Auto-indent amount when using cindent set smartcase " If there are caps, go case-sensitive set softtabstop=4 " When hitting tab or backspace, how many spaces "should a tab be set tabstop=8 " Real tabs should be 8, and they will show with set list on " session settings set textwidth=80 " line length above which to break a line set wrapmargin=4 " Margin from the right in which to break a line " reading Ms-Word documents, requires antiword autocmd BufReadPre *.doc set ro autocmd BufReadPre *.doc set hlsearch! autocmd BufReadPost *.doc %!antiword "%" "=============================== a-z =================================== " FOLDING " "======================================================================= set foldenable " Turn on folding set foldlevel=50 " Don't autofold anything set foldmarker={,} " Fold C style code (only use this as default " if you use a high foldlevel) set foldmethod=manual " Fold manually set foldopen=block,hor,mark,percent,quickfix,tag " What movements open folds "=============================== a-z =================================== " COMPLETION " "======================================================================= autocmd FileType c set omnifunc=ccomplete#Complete autocmd FileType css set omnifunc=csscomplete#CompleteCSS autocmd FileType html set omnifunc=htmlcomplete#CompleteTags autocmd FileType java setlocal completefunc=javacomplete#Complete autocmd FileType java setlocal omnifunc=javacomplete#Complete autocmd FileType javascript set omnifunc=javascriptcomplete#CompleteJS autocmd FileType python set omnifunc=pythoncomplete#Complete autocmd FileType php set omnifunc=phpcomplete#CompletePHP autocmd FileType xml set omnifunc=xmlcomplete#CompleteTags set complete=.,w,b,u,t,i " Automatically complete any class, method, or field name setlocal omnifunc=syntaxcomplete#Complete "=============================== a-z =================================== " JAVA " "======================================================================= autocmd FileType java runtime! autoload/javacomplete.vim let java_allow_cpp_keywords=1 let java_comment_strings=1 let java_highlight_all=1 let java_highlight_debug=1 let java_highlight_functions="style" let java_highlight_java_lang_ids=1 let java_ignore_javadoc=1 let java_mark_braces_in_parens_as_errors=1 "-------------------------------" " COMPILE - FIX ERRORS AND RUN " "-------------------------------" autocmd Filetype java set makeprg=javac\ % set errorformat=%A%f:%l:\ %m,%-Z%p^,%-C%.%# map <F5> :w<CR>:make<CR>:copen<CR> map <F6> :cprevious<CR> map <F7> :cnext<CR> map <F8> :call RunClass()<CR> func! RunClass() :!java -cp "%:p:h" "%:t:r" endfunc "=============================== a-z =================================== " MAPPING " "======================================================================= let mapleader = "," nnoremap ; : nmap <C-a> ggVG " Select all nmap <C-n> :tabnew<CR> " Open a new tab imap <C-s> :w<CR> " Control-s be 'save' as it is in most other editors map bn :bn<CR> " Move to next buffer map bp :bp<CR> " Move to previous buffer map bd :bd<CR> " Delete current buffer map qq :close<CR> " Close VIM map QQ :q!<CR> " Force quit VIM map FF zf9j " Fold 10 lines down map J <C-f> " Page down map K <C-b> " Page up map S :w<CR> " Save map Q :q<CR> " Quit "--------------------" " Interact with UNIX " "--------------------" map ,e :e ~/.vimrc<CR> " Open vimrc for modify settings map <F2> :so $HOME/.vimrc<CR> " Reload .vimrc map <F3> :!ctags -R --c++-kinds=+p --fields=+iaS --extra=+q .<CR> " Rebuild ctags database map <F4> :shell<CR> " Execute a shell map ,cd :lcd %:p:h<CR> " cd to current file directory "-----------------------------------" " Copy-Paste & Paragraph Formatting " "-----------------------------------" vmap ,c "+y " Copy to other text editors vmap ,x "+x " Cut to other text editors cmap ,v "+gP nmap ,v "+gP imap ,v <Esc>"+gPa map ,lc :%s/\<./\l&/g<CR> " 1st letter of each word lowercase map ,uc :%s/\<./\u&/g<CR> " 1st letter of each word uppercase map ,lf :%s/.*/\l&<CR> " 1st letter of each line lowercase map ,uf :%s/.*/\u&<CR> " 1st letter of each line uppercase " ---------------" " Plugin Mapping " " ---------------" nmap nt :NERDTreeToggle<CR> " Toggle nerd tree file explorer nmap tt :TagbarToggle<CR> " Tagbar source code browser nmap TT :TlistToggle<CR> " View Taglist, source code browser nmap <silent> <leader>c :Calendar<CR> " Open the calendar nmap <silent> <Leader>t :CommandT<CR> nmap <silent> <Leader>b :CommandTBuffer<CR> nmap <silent> <Leader>f :CommandTFlush<CR> "-----------------------------" " Moving Through Split Window " "-----------------------------" map <M-Down> <Esc><C-w>j map <M-Up> <Esc><C-w>k map <M-Right> <Esc><C-w>l map <M-Left> <Esc><C-w>h "------------------------ " " Move Split Window to: " "-------------------------" map tj <C-W>J map tk <C-W>K map th <C-W>H map tl <C-W>L "--------------------" " Resize Split Window" "--------------------" nmap <C-Down> <C-W>-<C-W>- nmap <C-Up> <C-W>+<C-W>+ nmap <C-Right> <C-W>><C-W>> nmap <C-Left> <C-W><<C-W>< "=============================== a-z =================================== " ABBREVIATIONS " "======================================================================= iab ddtt <C-R>=strftime("%d %b %Y, %I:%M%P")<CR> " Insert current date & time iab psvm public static void main (String[] args ) { iab sop System.out.println (" "=============================== a-z =================================== " CONFIGURE TAGS " "======================================================================= autocmd FileType java set tags=/home/foss/Workspace/.tags set tags=~/.tags "=============================== a-z =================================== " GUI SETTINGS " "======================================================================= if has("gui_running") "colorscheme candycode set columns=80 "set guifont=Tahoma:h10 "set guioptions-=m "set guioptions-=T set mousehide " Hide the mouse cursor when typing set lines=25 endif "=============================== a-z =================================== " PLUG-IN MANAGEMENT " "======================================================================= "-----------------" " == COMMAND-T == " "-----------------" let g:CommandTMaxFiles=200 let g:CommandTMaxHeight=10 "-----------------------------" " === AUTO-COMPLETE-POPUP === " "-----------------------------" let g:AutoComplPop_CompleteoptPreview=1 let g:AutoComplPop_Behavior = \{ 'python' : [ ['\k\{0,}$', "\<C-x>\<C-o>"], \ ['\k\{0,}$', "\<C-x>\<C-n>"] \ ], \ 'css' : [ ['\k\{0,}$', "\<C-x>\<C-o>"], \ ['\k\{0,}$', "\<C-x>\<C-n>"] \ ], \ 'javascript' : [ ['\k\{0,}$', "\<C-x>\<C-o>"], \ ['\k\{0,}$', "\<C-x>\<C-n>"] \ ], \ 'java' : [ ['\k\{0,}$', "\<C-x>\<C-n>"], \ ['\k\{0,}$', "\<C-x>\<C-u>"] \ ], \ 'xml' : [ ['\k\{0,}$', "\<C-x>\<C-n>"], \ ['\k\{0,}$', "\<C-x>\<C-o>"] \ ], \ 'html' : [ ['\k\{0,}$', "\<C-x>\<C-o>"], \ ['\k\{0,}$', "\<C-x>\<C-n>"] \ ] \ } "----------------------" " === JAVACOMPLETE === " "----------------------" setlocal completefunc=javacomplete#CompleteParamsInfo setlocal omnifunc=javacomplete#Complete inoremap <buffer> <C-X><C-U> <C-X><C-U><C-P> inoremap <buffer> <C-S-Space> <C-X><C-U><C-P> if has("autocmd") autocmd Filetype java setlocal omnifunc=javacomplete#Complete autocmd Filetype java setlocal endif "-------------------" " === SUPER-TAB === " "-------------------" let g:SuperTabContextDefaultCompletionType = "<c-x><c-o>" let g:SuperTabDefaultCompletionType = "context" "--------------" " == TAGBAR == " "--------------" let g:tagbar_userarrows = 1 let g:tagbar_width = 25 "-----------------" " === TAGLIST === " "-----------------" let Tlist_Enable_Fold_Column = 1 " Do show folding tree let Tlist_Show_One_File = 1 "Show tags for the current buffer only let Tlist_Exit_OnlyWindow = 1 " If you are the last, exit ViM let Tlist_File_Fold_Auto_Close = 0 " Fold closed other trees let Tlist_Sort_Type = "name" " Order by name let Tlist_WinWidth = 25 " 25 columns wide set secure " The Vim documentation suggests adding this as the last line of our vimrc "-------------------------- vimrc end here ----------------------------- "=============================== a-z =================================== " PLUGIN LIST " "======================================================================= " Ant_menu : http://www.vim.org/scripts/script.php?script_id=155 " AutoCompletePop : http://vim.sourceforge.net/scripts/script.php?script_id=1879 " BufferExplorer : http://www.vim.org/scripts/script.php?script_id=42 " Calendar : http://vim.sourceforge.net/scripts/script.php?script_id=52 " ColorSamplePack : http://www.vim.org/scripts/script.php?script_id=625 " Command-T : https://wincent.com/products/command-t " CSApprox : http://www.vim.org/scripts/script.php?script_id=2390 " Fugitive : http://www.vim.org/scripts/script.php?script_id=2975 " JavaComplete : http://vim.sourceforge.net/scripts/script.php?script_id=1785 " L9 : http://www.vim.org/scripts/script.php?script_id=3252 " NERDTree : http://www.vim.org/scripts/script.php?script_id=1658 " OmniCppComplete : http://www.vim.org/scripts/script.php?script_id=1520 " Pathogen : http://www.vim.org/scripts/script.php?script_id=2332 " Solarized : http://www.vim.org/scripts/script.php?script_id=3520 " SuperTab : http://www.vim.org/scripts/script.php?script_id=1643 " Tagbar : http://www.vim.org/scripts/script.php?script_id=3465 " Taglist : http://www.vim.org/scripts/script.php?script_id=273 " UpAndDown : http://www.vim.org/scripts/script.php?script_id=2586
August 19, 2011
vimrc
Labels:
VIM
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment