From 6d26e2673524da9dd29510b296c29982a5014a86 Mon Sep 17 00:00:00 2001 From: "Harish.K" Date: Sat, 25 Apr 2015 18:39:39 +0530 Subject: [PATCH] Update vimrc * with support for source browsing with gtags ( Gnu-global ) * Documentation --- home/.vimrc | 534 ++++++++++++++++++++++++++++++---------------------- 1 file changed, 310 insertions(+), 224 deletions(-) mode change 100755 => 100644 home/.vimrc diff --git a/home/.vimrc b/home/.vimrc old mode 100755 new mode 100644 index 7ade8c5..4514e78 --- a/home/.vimrc +++ b/home/.vimrc @@ -1,274 +1,360 @@ " This file is inspired by spf13's vimrc -" keyboard { - nmap :w - vmap gv - imap - map :TlistToggle - nmap :waexe "mksession! " . v:this_session - set mouse=a - " cmap cwd lcd %:p:h - " cmap cd. lcd %:p:h - set timeout timeoutlen=1000 ttimeoutlen=100 -: " } +set t_Co=256 +" Ctrl-S to save file { +nmap :w +vmap gv +imap +" } +" map :TagbarToggle +nmap :waexe "mksession! " . v:this_session +" \\es Open vimrc in a new tab +nmap es :tabedit ~/.vimrc +" \\en Open current file's snippets file in a new tab +nmap en :execute 'OpenSnippets' +" for moving tab { +" Ctrl-Shift + Page-Up/Down to rearrange tab { +nmap :execute 'tabmove ' . (tabpagenr()-2 ) +nmap :execute 'tabmove ' . tabpagenr() +" } +" Ctrl-Shift + j/k to move current window in to another tab{ +nmap :execute 'Mt' . (tabpagenr() -1) +nmap :execute 'Mt' . (tabpagenr() +1) +" } -" My settings { - filetype on " required! - set clipboard=unnamedplus - set history=1000 " Store a ton of history (default is 20) - set spell " Spell checking on - set hidden " Allow buffer switching without saving - set directory=~/.vim/swap/ - filetype plugin indent on " Automatically detect file types. - let NERDSpaceDelims=1 - set listchars=tab:»\ ,eol:¶,trail:·,precedes:…,extends:… - " let g:xml_syntax_folding=1 - au FileType xml setlocal foldmethod=syntax - set path=., - let javaScript_fold=1 " JavaScript - let perl_fold=1 " Perl - " let php_folding=1 " PHP - let r_syntax_folding=1 " R - let ruby_fold=1 " Ruby - let sh_fold_enabled=1 " sh - let vimsyn_folding='af' " Vim script - let xml_syntax_folding=1 " XML - autocmd FileType java set foldmethod=syntax - nmap es :tabedit ~/.vimrc - " Open current file's snippets file in a new tab - nmap en :execute 'OpenSnippets' + " \tt Toggle tab and spaces +nmap tt :let &expandtab=!&expandtab + " \tj Incraese additional two spaces width for tab +nmap tj :let &shiftwidth=&shiftwidth-2\|let &tabstop=&tabstop-2\|let &softtabstop=&softtabstop-2\|echo 'tabstop=' &tabstop + " \tj Decreases two spaces width for tab +nmap tk :let &shiftwidth=&shiftwidth+2\|let &tabstop=&tabstop+2\|let &softtabstop=&softtabstop+2\|echo 'tabstop=' &tabstop +" } +" Session handling { +nmap sl :SessionList +nmap sc :SessionClose " } -" for moving tab { - nmap :execute 'tabmove ' . (tabpagenr()-2 ) - nmap :execute 'tabmove ' . tabpagenr() - nmap :execute 'Mt' . (tabpagenr() -1) - nmap :execute 'Mt' . (tabpagenr() +1) +" Ctrl-Enter in insert mode will append ';' to the line and insert a new line +imap A; + +" Ctrl-Enter in normal mode will jump to tag definition using cscope +nmap :vert scs f g +" Ctrl-? in normal mode will jump to tag references using cscope +nmap :vert scs f t + +" Alt + Arrows to Moving cursor to different windows { +nmap k +nmap j +nmap l +nmap h " } -" for formating { - " set nowrap " Wrap long lines - set autoindent " Indent at the same level of the previous line - set shiftwidth=4 " Use indents of 4 spaces - set expandtab " Tabs are spaces, not tabs - set tabstop=4 " An indentation every four columns - set softtabstop=4 " Let backspace delete indent - nmap tt :let &expandtab=!&expandtab - nmap tj :let &shiftwidth=&shiftwidth-2\|let &tabstop=&tabstop-2\|let &softtabstop=&softtabstop-2\|echo 'tabstop=' &tabstop - nmap tk :let &shiftwidth=&shiftwidth+2\|let &tabstop=&tabstop+2\|let &softtabstop=&softtabstop+2\|echo 'tabstop=' &tabstop +"for easy quote/unquote { +" \\ + a[add] / d[delete] + q[single quote] / Q [Double quote] +" \\dQ remove double quote +nmap dQ ds" +" \\dQ add double quote +nmap aQ ysiw" +" \\dQ remove single quote +nmap dq ds' +" \\dQ remove double quote +nmap aq ysiw' +" } +" format JSON { +nmap jt :%!python -m json.tool:set filetype=json " } +" Alt + [1-8] to Switch tabs { +map 1 1gt +map 2 2gt +map 3 3gt +map 4 4gt +map 5 5gt +map 6 6gt +map 7 7gt +map 8 8gt +" } + + set mouse=a + " cmap cwd lcd %:p:h + " cmap cd. lcd %:p:h + set timeout timeoutlen=1000 ttimeoutlen=100 + +" My settings { +filetype on " required! +set clipboard=unnamedplus +set history=1000 " Store a ton of history (default is 20) +set spell " Spell checking on +set hidden " Allow buffer switching without saving +set directory=~/.vim/swap/ +filetype plugin indent on " Automatically detect file types. +let NERDSpaceDelims=1 +set listchars=tab:»\ ,eol:¶,trail:·,precedes:…,extends:… +" let g:xml_syntax_folding=1 +au FileType xml setlocal foldmethod=indent +set path=., +let javaScript_fold=1 " JavaScript +let perl_fold=1 " Perl +" let php_folding=1 " PHP +let r_syntax_folding=1 " R +let ruby_fold=1 " Ruby +let sh_fold_enabled=1 " sh +let vimsyn_folding='af' " Vim script +let xml_syntax_folding=1 " XML +autocmd FileType java set foldmethod=indent +autocmd FileType java set foldmethod=indent +autocmd FileType html set foldmethod=indent +autocmd FileType javascript set foldmethod=indent +set noswapfile +" } + + +" for formating { +" set nowrap " Wrap long lines +set autoindent " Indent at the same level of the previous line +set shiftwidth=2 " Use indents of 4 spaces +set expandtab " Tabs are spaces, not tabs +set tabstop=2 " An indentation every four columns +set softtabstop=2 " Let backspace delete indent + " for java { - autocmd BufRead *.java set include=^#\s*import - autocmd BufRead *.java set includeexpr=substitute(v:fname,'\\.','/','g') - autocmd BufRead *.java set suffixesadd=.java,.xml - " } +autocmd BufRead *.java set include=^#\s*import +autocmd BufRead *.java set includeexpr=substitute(v:fname,'\\.','/','g') +autocmd BufRead *.java set suffixesadd=.java,.xml +autocmd BufRead *.ect set suffixesadd=.ect ft=html.ect +" } " for UI { - set showmode " Display the current mode - if has('statusline') - set laststatus=2 - " Broken down into easily includeable segments - set statusline=%w%h%m%r " Options - " set statusline+=%{fugitive#statusline()} " Git Hotness - " set statusline+=\ [%{&ff}/%Y] " Filetype - set statusline+=\ [%{winnr()}] " Filetype - set statusline+=%<%f\ " Filename - " set statusline+=\ [%{getcwd()}] " Current dir - set statusline+=%=%-14.(%l,%c%V%)\ %p%% " Right aligned file nav info - endif - - set backspace=indent,eol,start " Backspace for dummies - set linespace=0 " No extra spaces between rows - set nu " Line numbers on - set showmatch " Show matching brackets/parenthesis - set hlsearch " Highlight search terms - set winminheight=0 " Windows can be 0 line high - set ignorecase " Case insensitive search - set smartcase " Case sensitive when uc present - set wildmenu " Show list instead of just completing - set wildmode=list:longest,full " Command completion, list matches, then longest common part, then all. - set whichwrap=b,s,h,l,<,>,[,] " Backspace and cursor keys wrap too - set scrolljump=5 " Lines to scroll when cursor leaves screen - set scrolloff=3 " Minimum lines to keep above and below cursor - set list +set showmode " Display the current mode +if has('statusline') + set laststatus=2 + " Broken down into easily includeable segments + set statusline=%w%h%m%r " Options + " set statusline+=%{fugitive#statusline()} " Git Hotness + " set statusline+=\ [%{&ff}/%Y] " Filetype + set statusline+=\ [%n] " Filetype + " set statusline+=\ [%{winnr()}] " Filetype + set statusline+=%<%f\ " Filename + " set statusline+=\ [%{getcwd()}] " Current dir + set statusline+=%=%-14.(%l,%c%V%)\ %p%% " Right aligned file nav info +endif + +set backspace=indent,eol,start " Backspace for dummies +set linespace=0 " No extra spaces between rows +set nu " Line numbers on +set showmatch " Show matching brackets/parenthesis +set hlsearch " Highlight search terms +set winminheight=0 " Windows can be 0 line high +set ignorecase " Case insensitive search +set smartcase " Case sensitive when uc present +set wildmenu " Show list instead of just completing +set wildmode=list:longest,full " Command completion, list matches, then longest common part, then all. +set whichwrap=b,s,h,l,<,>,[,] " Backspace and cursor keys wrap too +set scrolljump=5 " Lines to scroll when cursor leaves screen +set scrolloff=3 " Minimum lines to keep above and below cursor +set list " } "for Ctrl-P{ - let g:ctrlp_user_command = {} - let g:ctrlp_working_path_mode = 0 - let g:ctrlp_show_hidden = 1 - " custom file/folder ignores - let g:ctrlp_custom_ignore = { - \ 'dir': '\v[\/](\.git|\.hg|\.svn|\.ve|node_modules)$', - \ 'file': '\v\.(o|pyc|class)$', - \ 'link': '', - \ } +let g:ctrlp_user_command = {} +let g:ctrlp_working_path_mode = 0 +let g:ctrlp_show_hidden = 1 +" custom file/folder ignores +let g:ctrlp_custom_ignore = { + \ 'dir': '\v[\/](\.git|\.hg|\.svn|\.ve|node_modules)$', + \ 'file': '\v\.(o|pyc|class)$', + \ 'link': '', + \ } "}" -"for Bundle { - set nocompatible " be iMproved - set rtp+=~/.vim/bundle/vundle/ - call vundle#rc() - " let Vundle manage Vundle - " required! - Bundle 'gmarik/vundle' - " My Bundles here: - " - " original repos on github - Bundle 'tpope/vim-fugitive' - Bundle 'Lokaltog/vim-easymotion' - Bundle 'rstacruz/sparkup', {'rtp': 'vim/'} - " vim-scripts repos - Bundle 'L9' - Bundle 'FuzzyFinder' - " non github repos - Bundle 'git://git.wincent.com/command-t.git' - " Bundle 'git://github.com/vim-scripts/YankRing.vim.git' - Bundle 'git://github.com/maxbrunsfeld/vim-yankstack.git' - " Bundle 'vim-scripts/Auto-Pairs' - Bundle 'vim-scripts/DoxygenToolkit.vim' - " Bundle 'Raimondi/delimitMate.git' - Bundle 'bkad/CamelCaseMotion' - " Bundle 'vim-scripts/boxdraw' - - - " Bundle "vim-scripts/Vim-JDE" - " Bundle 'maksimr/vim-jsbeautify' - " Bundle "scrooloose/syntastic" - " Bundle "pangloss/vim-javascript" - Bundle 'scrooloose/nerdcommenter' - Bundle 'garbas/vim-snipmate' - " Bundle 'amiorin/vim-project' - Bundle 'MarcWeber/vim-addon-mw-utils' - Bundle 'tomtom/tlib_vim' - Bundle 'nathanaelkane/vim-indent-guides' - Bundle 'flazz/vim-colorschemes' - Bundle 'vim-scripts/sessionman.vim' - Bundle 'kien/ctrlp.vim' - Bundle 'leshill/vim-json' - Bundle 'godlygeek/tabular' - Bundle 'majutsushi/tagbar' - Bundle 'amirh/HTML-AutoCloseTag' - Bundle 'tpope/vim-surround' - Bundle 'vim-scripts/AutoComplPop' - " Bundle 'Shougo/eocomplcache' - Bundle 'spf13/vim-autoclose' - Bundle 'scrooloose/nerdtree' - Bundle 'harish2704/harish2704-vim' - " Bundle 'Shougo/neocomplcache' - Bundle 'digitaltoad/vim-jade' - Bundle 'mustache/vim-mode' - Bundle 'chrisbra/NrrwRgn' - Bundle 'vim-scripts/JavaScript-Indent' - - - - "Bundle 'git://github.com/vim-scripts/autoload_cscope.vim.git' - Bundle 'harish2704/vim-snippets' - " Bundle 'int3/vim-taglist-plus' - Bundle 'vim-scripts/EasyGrep' - Bundle 'briancollins/vim-jst' - Bundle 'vim-scripts/matchit.zip' - " Bundle 'vim-scripts/adt.vim' - " Bundle 'tpope/eclim' - " Source support_function.vim to support vim-snippets. - if filereadable(expand("~/.vim/bundle/vim-snippets/snippets/support_functions.vim")) - source ~/.vim/bundle/vim-snippets/snippets/support_functions.vim - endif - -" } - " for JS { - let g:html_indent_inctags = "html,body,head,tbody" - let g:html_indent_script1 = "inc" - let g:html_indent_style1 = "inc" +let g:html_indent_inctags = "html,body,head,tbody" +let g:html_indent_script1 = "inc" +let g:html_indent_style1 = "inc" " } " AutoCloseTag { - " Make it so AutoCloseTag works for xml and xhtml files as well - au FileType xhtml,xml ru ftplugin/html/autoclosetag.vim - nmap ac ToggleAutoCloseMappings +" Make it so AutoCloseTag works for xml and xhtml files as well +au FileType xhtml,xml ru ftplugin/html/autoclosetag.vim " } " NerdTree { - map :NERDTreeToggle:NERDTreeMirror - map e :NERDTreeFind - nmap nt :NERDTreeFind - - let NERDTreeShowBookmarks=1 - let NERDTreeIgnore=['\.pyc', '\~$', '\.swo$', '\.swp$', '\.git', '\.hg', '\.svn', '\.bzr'] - let NERDTreeChDirMode=0 - let NERDTreeQuitOnOpen=1 - let NERDTreeMouseMode=2 - let NERDTreeShowHidden=1 - let NERDTreeKeepTreeInNewTab=1 - let g:nerdtree_tabs_open_on_gui_startup=0 +nmap ac ToggleAutoCloseMappings +map :NERDTreeToggle:NERDTreeMirror +map e :NERDTreeFind +nmap nt :NERDTreeFind + +let NERDTreeShowBookmarks=1 +let NERDTreeIgnore=['\.pyc', '\~$', '\.swo$', '\.swp$', '\.git', '\.hg', '\.svn', '\.bzr'] +let NERDTreeChDirMode=0 +let NERDTreeQuitOnOpen=1 +let NERDTreeMouseMode=2 +let NERDTreeShowHidden=1 +let NERDTreeKeepTreeInNewTab=1 +let g:nerdtree_tabs_open_on_gui_startup=0 " } " Tabularize { - nmap a& :Tabularize /& - vmap a& :Tabularize /& - nmap a= :Tabularize /= - vmap a= :Tabularize /= - nmap a: :Tabularize /: - vmap a: :Tabularize /: - nmap a:: :Tabularize /:\zs - vmap a:: :Tabularize /:\zs - nmap a, :Tabularize /, - vmap a, :Tabularize /, - vmap a// :Tabularize /\/\/ - nmap a :Tabularize / - vmap a :Tabularize / +nmap a& :Tabularize /& +vmap a& :Tabularize /& +nmap a= :Tabularize /= +vmap a= :Tabularize /= +nmap a: :Tabularize /: +vmap a: :Tabularize /: +nmap a:: :Tabularize /:\zs +vmap a:: :Tabularize /:\zs +nmap a, :Tabularize /, +vmap a, :Tabularize /, +vmap a// :Tabularize /\/\/ +nmap a :Tabularize / +vmap a :Tabularize / " } " Session List { - set sessionoptions=blank,buffers,curdir,tabpages,winsize,resize,winpos - " nmap c :JavaCorrect - " nmap pt :ProjectsTree - nmap sl :SessionList - nmap sc :SessionClose +set sessionoptions=blank,buffers,curdir,tabpages,winsize,resize,winpos +" nmap c :JavaCorrect +" nmap pt :ProjectsTree " } -" JSON { - nmap jt :%!python -m json.tool:set filetype=json -" } -"for easy quote/unquote { - nmap dQ ds" - nmap aQ ysiw" - nmap dq ds' - nmap aq ysiw' +" for JavaScript syntax checking { +let g:syntastic_javascript_checkers = ['jslint'] " } + " gides { - " let g:indent_guides_start_level = 2 - let g:indent_guides_guide_size = 1 - let g:indent_guides_enable_on_vim_startup = 1 +" let g:indent_guides_start_level = 2 +let g:indent_guides_guide_size = 1 +let g:indent_guides_enable_on_vim_startup = 1 " } " colorscheme colorful256 " colorscheme mrkn256 set wrap -colorscheme desert256 +" colorscheme desert256 +" colorscheme 256-grayvim +colorscheme jellybeans +" colorscheme devbox-dark-256 +" colorscheme lodestone +hi TabLineFill ctermfg=210 +hi TabLineSel ctermbg=50 +hi TabLine ctermbg=60 ctermfg=210 +hi TabLineSel ctermbg=50 ctermfg=90 + +" autocmd VimEnter * :hi IndentGuidesEven ctermbg=240 +" autocmd VimEnter * :hi IndentGuidesOdd ctermbg=235 +let g:indent_guides_auto_colors = 0 +hi IndentGuidesEven ctermbg=240 +hi IndentGuidesOdd ctermbg=235 " set foldmethod=syntax " let javascriptfold=1 +" dont set cursorline for performance imporoovements +" set cursorline " Highlight current line +set listchars=tab:›\ ,trail:•,extends:#,nbsp:. " Highlight problematic whitespace -nmap k -nmap j -nmap l -nmap h -map 1 1gt -map 2 2gt -map 3 3gt -map 4 4gt -map 5 5gt -map 6 6gt -map 7 7gt -map 8 8gt +" let Gtags_Auto_Map = 1 +let Gtags_VerticalWindow = 1 +let Gtags_Auto_Update = 1 +let GtagsCscope_Auto_Load = 1 + + +" set lazyredraw +" set ttyfast +let g:sparkupNextMapping = '' + + +" for taggatron. +" let g:tagcommands = { +" \ "php" : { +" \ "tagfile" : ".php.tags", +" \ "args" : "-R --langmap=PHP:+.mod" +" \ } +" \} + + +"for Bundle { +set nocompatible " be iMproved +set rtp+=~/.vim/bundle/vundle/ +call vundle#rc() +" let Vundle manage Vundle +" required! +Bundle 'gmarik/vundle' +" My Bundles here: +" +" original repos on github +" Bundle 'tpope/vim-fugitive' +Bundle 'Lokaltog/vim-easymotion' +Bundle 'rstacruz/sparkup', {'rtp': 'vim/'} +" vim-scripts repos +Bundle 'L9' +Bundle 'FuzzyFinder' +" non github repos +" Bundle 'git://git.wincent.com/command-t.git' +" Bundle 'git://github.com/vim-scripts/YankRing.vim.git' +Bundle 'git://github.com/maxbrunsfeld/vim-yankstack.git' +" Bundle 'vim-scripts/Auto-Pairs' +Bundle 'vim-scripts/DoxygenToolkit.vim' +" Bundle 'Raimondi/delimitMate.git' +" Bundle 'bkad/CamelCaseMotion' +" Bundle 'vim-scripts/boxdraw' + + +" Bundle 'vim-scripts/Vim-JDE' +" Bundle 'maksimr/vim-jsbeautify' +Bundle 'scrooloose/syntastic' +" Bundle 'pangloss/vim-javascript' +Bundle 'scrooloose/nerdcommenter' +Bundle 'garbas/vim-snipmate' +" Bundle 'amiorin/vim-project' +Bundle 'MarcWeber/vim-addon-mw-utils' +Bundle 'tomtom/tlib_vim' +Bundle 'nathanaelkane/vim-indent-guides' +" Bundle 'flazz/vim-colorschemes' +Bundle 'vim-scripts/sessionman.vim' +Bundle 'kien/ctrlp.vim' +" Bundle 'leshill/vim-json' +Bundle 'godlygeek/tabular' +Bundle 'majutsushi/tagbar' +" Bundle 'amirh/HTML-AutoCloseTag' +Bundle 'tpope/vim-surround' +Bundle 'vim-scripts/AutoComplPop' +" Bundle 'Shougo/eocomplcache' +Bundle 'spf13/vim-autoclose' +Bundle 'scrooloose/nerdtree' +Bundle 'harish2704/harish2704-vim' +" Bundle 'Shougo/neocomplcache' +Bundle 'kchmck/vim-coffee-script' +Bundle 'digitaltoad/vim-jade' +Bundle 'AndrewRadev/vim-eco' +Bundle 'mustache/vim-mode' +Bundle 'chrisbra/NrrwRgn' +Bundle 'heavenshell/vim-jsdoc' +Bundle 'vim-scripts/JavaScript-Indent' +Bundle 'spf13/PIV' +" Bundle 'joonty/vim-taggatron' + +"Bundle 'git://github.com/vim-scripts/autoload_cscope.vim.git' +" Bundle 'int3/vim-taglist-plus' +" Bundle 'vim-scripts/EasyGrep' +Bundle 'briancollins/vim-jst' +Bundle 'vim-scripts/matchit.zip' +Bundle 'harish2704/vim-snippets' +Bundle 'vim-scripts/SyntaxRange' +Bundle 'harish2704/gtags.vim' +" Bundle 'vim-scripts/guicolorscheme.vim' +" Bundle 'vim-scripts/CSApprox' +" Bundle 'vim-scripts/adt.vim' +" Bundle 'tpope/eclim' + +" Source support_function.vim to support vim-snippets. +if filereadable(expand("~/.vim/bundle/vim-snippets/snippets/support_functions.vim")) + source ~/.vim/bundle/vim-snippets/snippets/support_functions.vim +endif + +" }