diff options
Diffstat (limited to '.vimrc')
-rw-r--r-- | .vimrc | 309 |
1 files changed, 0 insertions, 309 deletions
@@ -1,309 +0,0 @@ -" dotfiles -- .vimrc -" author: johannst - -set nocompatible " make vim less vi - -"{{{ Vundle - - " to install plugins open vim and run :PluginInstall from within vim OR - " vim +PluginInstall +qall from cmd line - - filetype off " necessary for vundle!!! - set rtp+=~/.vim/bundle/Vundle.vim - - call vundle#begin() - Plugin 'VundleVim/Vundle.vim' - Plugin 'jlanzarotta/bufexplorer' - Plugin 'ap/vim-buftabline' -" Plugin 'vim-airline/vim-airline' -" Plugin 'vim-airline/vim-airline-themes' - Plugin 'majutsushi/tagbar' - Plugin 'kien/ctrlp.vim' - " c++ modifief headers: http://www.vim.org/scripts/script.php?script_id=2358 - "Plugin 'vim-scripts/OmniCppComplete' - call vundle#end() - -"}}} -"{{{ Plugin Config - - " powerline - let g:airline#extensions#tabline#enabled = 1 - let g:airline#extensions#tabline#fnamemod = ':t' - let g:airline_powerline_fonts = 1 - if !exists('g:airline_symbols') - let g:airline_symbols = {} - endif - - " tagbar - let g:tagbar_ctags_bin='~/.vim/bin/ctags' - - " CtrlP - let g:ctrlp_buftag_ctags_bin='~/.vim/bin/ctags' - let g:ctrlp_extensions = ['buffertag', 'line', 'changes', 'mixed'] - - " buftabline - let g:buftabline_indicators = 1 - - " omni complete - " add tags - " set tags+=~/.vim/tags/cpp_tags - "let OmniCpp_NamespaceSearch = 1 - "let OmniCpp_GlobalScopeSearch = 1 - "let OmniCpp_ShowAccess = 1 - "let OmniCpp_ShowPrototypeInAbbr = 1 " show function parameters - "let OmniCpp_MayCompleteDot = 1 " autocomplete after . - "let OmniCpp_MayCompleteArrow = 1 " autocomplete after -> - "let OmniCpp_MayCompleteScope = 1 " autocomplete after :: - "let OmniCpp_DefaultNamespaces = ["std", "_GLIBCXX_STD"] - "" automatically open and close the popup menu / preview window - "au CursorMovedI,InsertLeave * if pumvisible() == 0|silent! pclose|endif - "set completeopt=menuone,menu,longest,preview - -"}}} - -augroup aug:AutoSaveResore - autocmd! - "autocmd VimEnter * silent! source .vim_last_session - autocmd QuitPre * mksession! .vim_last_session -augroup end - - -function! TriggerSCons(arg_string) - let base_cmd = "scons -u " - let &makeprg=base_cmd.a:arg_string - make -endfunction -" use like :SCons -j20 ... -command! -nargs=1 SCons call TriggerSCons(<f-args>) - -" +----------------------------+ -" | Color Settings | -" +----------------------------+ -syntax on -set background=dark -colorscheme buddy - -" +----------------------------+ -" | Basic Settings | -" +----------------------------+ -set timeoutlen=1000 " time in ms until keymap interpreted -set ttimeoutlen=100 " time in ms for key code delay, NEVER USE 0 again!!! if random numbers/letters occur, maybe change this value - -filetype plugin indent on " enable loading indent file for filetype -set ffs=unix,dos,mac " try recognizing dos, unix, and mac line endings. -set encoding=utf-8 " set default encoding to UTF-8. - -" Basic settings -set title " show title in console title bar -set confirm " prompt if closing with unsaved changes. -set laststatus=2 " always show status line -set shortmess+=a " Use [+]/[RO]/[w] for modified/readonly/written. -set showcmd " show command in status line. -set mouse=a " enable mouse usage (all modes) -set history=1000 " sets how many lines of history VIM has to remember -set tabpagemax=100 " sets how many tabs will be opened -set scrolloff=3 " set vertical scroll distance to 7 lines -set backspace=2 " had some issues with BS on empty line didn't deleted line -set noautowrite " never write a file unless I request it. -set noautowriteall " NEVER. -set noautoread " don't automatically re-read changed files. -set nowrap - -" Line/Column settings -set number " Display line numbers -set relativenumber " Display relative line numbers -set ruler " display cursor position -set cursorline " cursor line highlighting -set cursorcolumn " cursor column highlighting - -" buffer settings -set hidden " do not unload abandoned buffers - -" Tab settings -set expandtab " expand tabs to spaces -set tabstop=8 " number of columns a tab counts -set shiftwidth=3 " number of columns text is indented -set softtabstop=3 " number of columns tab counts in insert mode -set shiftround " rounds indent to a multiple of shiftwidth -"set smarttab " Handle tabs more intelligently - -" Fold settings -set foldmethod=marker " set fold method - -" Indentation settings -set autoindent " copy indent from current line when starting a new line -set smartindent " use smart indent if there is no indent file - -augroup aug:CLangStyle - autocmd! - autocmd BufRead,BufNewFile *.h,*.hh,*.hpp,*.c,*.cc,*.cpp set cinoptions=:1,=2,g1,h2 " switch-case/class-lable indentation - autocmd BufRead,BufNewFile * setlocal formatoptions-=cro " disable auto-comment -augroup end - -" Invisible character settings -"set list " show invisible character -set listchars=tab:>-,eol:$,trail:-,precedes:<,extends:> - -" Search settings -set ignorecase " case insensitive matching -set incsearch " incremental search -set hlsearch " highlight search results -set smartcase " overwrite ignorecase if pattern contains capital letters -set showmatch " show matching brackets. -set matchtime=2 " how many tenths of a second to blink when matching brackets -set matchpairs+=<:> " show matching <> as well -set magic " for regular expressions turn magic on - -" Vim command completion settings -set wildmenu " turn on the wild menu -set wildmode=longest:full " <Tab> cycles between all matching choices. -set wildignore+=*.o,*.obj,.git,*.pyc,*~ " Ignore these files when completing - -" No annoying sound on errors -set noerrorbells -set novisualbell - -" automatically open Quickfix -augroup aug:QuickFixConfig - autocmd! - autocmd QuickFixCmdPost [^l]* nested botright cwindow - autocmd QuickFixCmdPost l* nested botright lwindow -augroup end - -"{{{ Keymaps - - " unset . -" noremap . <nop> - " set leader key - "execute "set <M-s>=\es" - let mapleader=";" - - " re-source .vimrc - nnoremap <leader>v :source ~/.vimrc<CR> - - "remap esc button -" inoremap <Esc> <nop> - inoremap jj <Esc> - - " quit buffer - noremap <leader>q :bd - - " re-adjust indentation - nnoremap <leader>f mzgg=G`z - - " navigate between different splits - nnoremap <C-Down> <C-w>j - nnoremap <C-Up> <C-w>k - nnoremap <C-Right> <C-w>l - nnoremap <C-Left> <C-w>h - nnoremap <C-j> <C-w>j - nnoremap <C-k> <C-w>k - nnoremap <C-l> <C-w>l - nnoremap <C-h> <C-w>h - - " resize splits - "map <C-j> <C-w>5- - "map <C-k> <C-w>5+ - "map <C-l> <C-w>5< - "map <C-h> <C-w>5> - - " navigate between different buffers - nnoremap <S-Left> :bprevious<CR> - nnoremap <S-Right> :bnext<CR> - nnoremap <S-h> :bprevious<CR> - nnoremap <S-l> :bnext<CR> - - " ctrl-ae jump to line start/end - nnoremap <C-a> 0 - nnoremap <C-e> $ - inoremap <C-a> <C-o>0 - inoremap <C-e> <C-o>$ - vnoremap <C-a> 0 - vnoremap <C-e> $ - cnoremap <C-a> <Home> - cnoremap <C-e> <End> - - " Shortcut to toggle relative numbering mode - nnoremap <C-n> :call ToggleRelativeNumber()<CR> - - " add a marker fold snippet (for C/C++) - nnoremap <C-f> o//{{{ <Esc>o//}}}<Esc><Up>A - inoremap <C-f> <ESC>o//{{{ <Esc>o//}}}<Esc><Up>A - " only works with v-block (not v-line) - vnoremap <C-f> VV'<O//{{{<Esc>'>o//}}}<Esc>'<<ESC><Up>A - - " substitute selection - vnoremap <C-r> "hy:%s/<C-r>h/<C-r>h/gc<left><left><left> - - " yank/paste into/from register - vnoremap <C-c> "ay - inoremap <C-v> <C-r>a - cnoremap <C-v> <C-r>a - - " +-----------------+ - " | Plugin specific | - " +-----------------+ - " Open BufferExplorer - nnoremap <C-b> :call BufExplorer()<CR> - - " Toggle Tagbar - nnoremap <leader>t :TagbarToggle<CR> - - " build tags of your own project with Ctrl-F12 - map <C-t> :!ctags -R --sort=yes --c++-kinds=+pl --fields=+iaS --extra=+q --language-force=C++ .<CR> - -"}}} -"{{{ Global Highlighting - - " hi clear CursorLine - " augroup aug:CLClear - " autocmd! ColorScheme * hi clear CursorLine - " augroup end - - "hi LineNr ctermfg=208 - - " Highlight color of current line - hi CursorLineNR cterm=bold ctermfg=255 ctermbg=208 - "hi CursorLineNR cterm=bold ctermfg=226 - augroup aug:CLNRSet - autocmd! ColorScheme * hi CursorLineNR cterm=bold ctermfg=255 ctermbg=208 - "autocmd! ColorScheme * hi CursorLineNR cterm=bold ctermfg=226 - augroup end - - " matching brackets - "hi MatchParen cterm=underline ctermbg=141 ctermfg=yellow - hi MatchParen cterm=underline ctermbg=89 ctermfg=208 - "hi MatchParen cterm=underline ctermbg=DarkMagenta ctermfg=12 - -"}}} -"{{{ Functions - " Split Window and scroll down - function! SplitScroll() - :wincmd v - :wincmd w - execute "normal! \<C-d>" - :set scrollbind - :wincmd w - :set scrollbind - endfunc - - " toggle relative line number mode - function! ToggleRelativeNumber() - if(&relativenumber == 1) - set norelativenumber - else - set relativenumber - endif - endfunc -"}}} - -" +----------------------------+ -" | Tmux specific settings | -" +----------------------------+ -" tmux will send xterm-style keys when its xterm-keys option is on -if &term =~ '^screen' - execute "set <xUp>=\e[1;*A" - execute "set <xDown>=\e[1;*B" - execute "set <xRight>=\e[1;*C" - execute "set <xLeft>=\e[1;*D" -endif |