if &compatible set nocompatible set modelines=1 endif call plug#begin('~/.vim/bundle') Plug 'svermeulen/vim-yoink' Plug 'will133/vim-dirdiff' Plug 'jaredgorski/spacecamp' call plug#end() " required set tabstop=4 set shiftwidth=4 set softtabstop=4 set expandtab set encoding=utf-8 set scrolloff=10 set autoindent set cino=l1,:0 set showmode set showcmd " do not force write on buffer switch set hidden " set visualbell set nowrapscan set cursorline set ttyfast set lazyredraw set ruler set backspace=eol,indent,start " statusline {{{ set statusline=%<%f%h%m%r%=%b\ 0x%B\ \ %l,%c%V\ %P set laststatus=2 set statusline+=\ "comment to remove trailing space set number set relativenumber " Make Vim to handle long lines nicely. set wrap set textwidth=79 set formatoptions=cqrnb1j syntax on set showmatch "set matchtime=3 "Control it with %/s///i - ignore and I - sens set ignorecase set smartcase " %s///g not needed set gdefault set hlsearch set incsearch set shell=/bin/bash set path+=** set updatetime=100 set nospell set spelllang=en " Dictionary path, from which the words are being looked up. set dictionary+=/usr/share/dict/words set clipboard=unnamed "set exrc if exists("+undofile") if isdirectory($HOME . '/.vim/undo') == 0 :silent !mkdir -p ~/.vim/undo > /dev/null 2>&1 endif set undodir=~/.vim/undo/ set undofile endif let mapleader = "\\" "nnoremap j gj "nnoremap k gk " Get Rid of stupid Goddamned help keys inoremap nnoremap vnoremap " jj For Quicker Escaping between normal and editing mode inoremap jj inoremap jk inoremap :w :wi " space one line, home,end globally increase/decrease nnoremap zc nnoremap zo " Map : to ; also in command mode "nnoremap ; : " Reselect visual block after incrementing/decrementing vnoremap gv vnoremap gv nnoremap 2 :set tabstop=2 softtabstop=2 shiftwidth=2 nnoremap 4 :set tabstop=4 softtabstop=4 shiftwidth=4 nnoremap 8 :set tabstop=8 softtabstop=8 shiftwidth=8 map :colorscheme random nnoremap S :%s//g xnoremap S :s//g xmap x " Make pasting done without any indentation break set pastetoggle= " leader Command to remove white space from a file ""nnoremap W :%s/\s\+$//:let @/='' " This causes issues with FZF "tnoremap nnoremap :nohlsearch " yoink configuration nmap yp (YoinkPostPasteSwapBack) nmap yn (YoinkPostPasteSwapForward) nmap p (YoinkPaste_p) nmap P (YoinkPaste_P) " Wildmenu completion {{{ set wildmenu set wildmode=list:longest set wildignore+=.hg,.git,.svn " Version Controls" set wildignore+=*.aux,*.out,*.toc "Latex Indermediate files" set wildignore+=*.jpg,*.bmp,*.gif,*.png,*.jpeg "Binary Imgs" set wildignore+=*.o,*.obj,*.exe,*.dll,*.manifest "Compiled Object files" set wildignore+=*.spl "Compiled spelling world list" set wildignore+=*.sw? "Vim swap files" set wildignore+=*.DS_Store "OSX SHIT" set wildignore+=*.luac "Lua byte code" set wildignore+=migrations "Django migrations" set wildignore+=*.pyc "Python Object codes" set wildignore+=*.orig "Merge resolution files" " }}} match Error /\s\+$\|DU\cPA/ " Removing scrollbars if !has("gui_running") set background=dark colorscheme spacecamp " To show special characters in Vim set listchars=tab:▸\ ,trail:¬ set list hi clear SpellBad hi SpellBad cterm=underline "hi Normal ctermbg=None endif if &term =~ '256color' " Disable Background Color Erase (BCE) so that color schemes " work properly when Vim is used inside tmux and GNU screen. " set t_ut= endif if has("autocmd") "restore cursor position autocmd BufReadPost * if line("'\"") > 0|if line("'\"") <= line("$")|exe("norm '\"")|else|exe "norm $"|endif|endif autocmd FileType helpfile set nonumber autocmd WinLeave * set nocursorline autocmd WinEnter * set cursorline " Set vim to save the file on focus out "au FocusLost * :wa " Resize Split When the window is resized au VimResized * :wincmd = endif set foldenable set foldlevelstart=999 set foldnestmax=5 set foldtext=FoldFormat() set fillchars=fold:\ " comment just to remove trailing set foldmethod=syntax if has('folding') setglobal foldopen+=jump endif function! FindAlternate() let l:ext = 'h' let l:curr_ext = expand('%:e') if (l:curr_ext == 'c') let l:ext = 'h' elseif (l:curr_ext == 'cpp') let l:ext = 'h' elseif (l:curr_ext == 'h') let l:ext = 'c' elseif (l:curr_ext == 'hpp') let l:ext = 'cpp' endif let l:file = expand('%:t:r') . '.' . l:ext :exec 'find ' . l:file endfunction nnoremap :call FindAlternate() setglobal complete-=i setglobal virtualedit=block setglobal shiftround set shortmess+=c set signcolumn=yes set cmdheight=2 function! s:check_back_space() abort let col = col('.') - 1 return !col || getline('.')[col - 1] =~# '\s' endfunction "hi None ctermbg=None ctermfg=None let g:vim_search_pulse_mode = 'pattern' let g:vim_search_pulse_duration = 400 "Taken from 256_noir readme: set cursorline highlight CursorLine cterm=NONE ctermfg=NONE ctermbg=233 guifg=NONE guibg=#121212 autocmd InsertEnter * highlight CursorLine cterm=NONE ctermfg=NONE ctermbg=234 guifg=NONE guibg=#1c1c1c autocmd InsertLeave * highlight CursorLine cterm=NONE ctermfg=NONE ctermbg=233 guifg=NONE guibg=#121212