" " Begin Vundle config " https://github.com/VundleVim/Vundle.vim " set nocompatible filetype off " set the runtime path to include Vundle and initialize set rtp+=~/.vim/bundle/Vundle.vim call vundle#begin() " alternatively, pass a path where Vundle should install plugins "call vundle#begin('~/some/path/here') " let Vundle manage Vundle, required Plugin 'VundleVim/Vundle.vim' " plugin for running make asynchronously Plugin 'https://github.com/skywind3000/asyncrun.vim.git' " All of your Plugins must be added before the following line call vundle#end() " required filetype plugin indent on " required " " End Vundle config " "filetype plugin indent on syntax on colorscheme deus set hlsearch " don't clutter directories with backup files set nobackup set nowritebackup set tabstop=4 set shiftwidth=4 " set to same as tabstop for auto-indent set clipboard=unnamedplus " folding set foldmethod=syntax set foldnestmax=1 set foldlevelstart=20 set foldcolumn=2 set autoindent " filename auto-completion set wildmode=longest,list,full set wildmenu " attempts to fix delay when mode switch, also need tmux option "set -s escape-time 0" set ttimeoutlen=10 " line numbering gutter set number set numberwidth=3 set cpoptions+=n " use gutter for wrapped lines highlight LineNr term=bold cterm=NONE ctermfg=DarkGrey ctermbg=NONE gui=NONE guifg=DarkGrey guibg=NONE " airline plugin stuffs set laststatus=2 let g:airline#extensions#tabline#enabled = 1 let g:airline#extensions#tabline#formatter = 'default' let g:airline_theme='bubblegum' let g:airline_left_sep = '' let g:airline_left_alt_sep = '' let g:airline_right_sep = '' let g:airline_right_altsep = '' let g:airline_section_c = '%{getcwd()}' let g:airline_section_warning = '' " disable whitespace warnings " custom keybinds " C-PageUp/Down conflicts with xfce-terminal, so there is a trick to fixing " https://unix.stackexchange.com/questions/159979/xfce4-terminal-disable-individual-shortcut map :bnext map :bprev nnoremap nnoremap nnoremap nnoremap "map :make map :ccl map :cn map :AsyncRun -save=2 make augroup vimrc " remove all vimrc autocommands autocmd! autocmd QuickFixCmdPost * copen 8 " Don't screw up folds when inserting text that might affect them, until " " leaving insert mode. Foldmethod is local to the window. Protect against " " screwing up folding when switching between windows. autocmd InsertEnter * if !exists('w:last_fdm') | let w:last_fdm=&foldmethod | setlocal foldmethod=manual | endif autocmd InsertLeave,WinLeave * if exists('w:last_fdm') | let &l:foldmethod=w:last_fdm | unlet w:last_fdm | endif " save folds/cursor positions of buffers autocmd BufWinLeave *.* mkview autocmd BufWinEnter *.* silent loadview " Automatically open, but do not go to (if there are errors) the quickfix / " location list window, or close it when is has become empty. " " Note: Must allow nesting of autocmds to enable any customizations for quickfix " buffers. " Note: Normally, :cwindow jumps to the quickfix window if the command opens it " (but not if it's already open). However, as part of the autocmd, this doesn't " seem to happen. "autocmd QuickFixCmdPost [^l]* nested cwindow "autocmd QuickFixCmdPost l* nested lwindow augroup END " fix keycodes when running inside tmux " http://tmux-users.narkive.com/M9tIqoa0/c-pageup-and-c-pagedown-seems-not-to-work-in-tmux if &term =~ '^screen' && exists('$TMUX') " Mouse mode set mouse+=a set ttymouse=xterm2 " tmux sends xterm-style keys when xterm-keys option is on execute "set =\e[1;*A" execute "set =\e[1;*B" execute "set =\e[1;*C" execute "set =\e[1;*D" execute "set =\e[1;*H" execute "set =\e[1;*F" execute "set =\e[2;*~" execute "set =\e[3;*~" execute "set =\e[5;*~" execute "set =\e[6;*~" execute "set =\e[1;*P" execute "set =\e[1;*Q" execute "set =\e[1;*R" execute "set =\e[1;*S" execute "set =\e[15;*~" execute "set =\e[17;*~" execute "set =\e[18;*~" execute "set =\e[19;*~" execute "set =\e[20;*~" execute "set =\e[21;*~" execute "set =\e[23;*~" execute "set =\e[24;*~" endif