" Basics " set nocompatible " be iMproved, required let mapleader = "," let g:mapleader = "," let maplocalleader = ";" " Settings " set noerrorbells " No beeps set number " Show line numbers set backspace=indent,eol,start " Makes backspace key more powerful. set showcmd " Show me what I'm typing set noswapfile " Don't use swapfile set nobackup " Don't create annoying backup files set nowritebackup set splitright " Split vertical windows right to the current windows set splitbelow " Split horizontal windows below to the current windows set encoding=utf-8 " Set default encoding to UTF-8 set autowrite " Automatically save before :next, :make etc. set autoread " Automatically reread changed files without asking me anything set laststatus=2 set hidden set ruler " Show the cursor position all the time set fileformats=unix,dos,mac " Prefer Unix over Windows over OS 9 formats set showmatch " Show matching brackets by flickering set showmode " Search Options set incsearch set hlsearch set ignorecase set smartcase " Visual mode pressing * or # searches for the current selection vnoremap # :call VisualSelection('b') " Center search results nnoremap n nzzzv nnoremap N Nzzzv nnoremap :nohlsearch set ttyfast set lazyredraw set nocursorcolumn set nocursorline set synmaxcol=300 set re=1 " open help vertically command! -nargs=* -complete=help Help vertical belowright help " Make Vim to handle long lines nicely. set wrap set textwidth=79 set formatoptions=qrn1 set complete-=i set nrformats-=octal " Time out on key codes but not mappings. " Basically this makes terminal Vim work sanely. set notimeout set ttimeout set ttimeoutlen=10 " Different Cursorshapes for the modes let &t_SI = "\[6 q" let &t_SR = "\[4 q" let &t_EI = "\[2 q" " Better Completion set complete=.,w,b,u,t set completeopt=longest,menuone set history=500 set tabpagemax=50 set scrolloff=7 set sidescrolloff=7 set display+=lastline " CTRL-U in insert mode deletes a lot. Use CTRL-G u to first break undo, " so that you can undo CTRL-U after inserting a line break. inoremap u syntax on syntax sync minlines=256 filetype plugin indent on colorscheme elflord if has('gui_running') "set transparency=3 "fix js regex syntax set regexpengine=1 endif " Toggle line numbers and rulers nmap ll :set number! nmap lr :set relativenumber! nmap cc :set cursorcolumn! nmap cl :set cursorline! " Better split switching map j map k map h map l map j map k map h map l " Center the screen nnoremap zz " Move up and down on splitted lines (on small width screens) map gk map gj map k gk map j gj " Spell checking nnoremap :setlocal spell! spell? map ss :setlocal spell! map sn ]s map sp [s map sa zg map s? z= " trim all whitespaces away nnoremap W :%s/\s\+$//:let @/='' " Do not show stupid q: window map q: :q " dont save .netrwhist history let g:netrw_dirhistmax=0 " Allow saving of files as sudo cmap w!! w !sudo tee > /dev/null % " Paste Mode set pastetoggle= " ----------------------------------------- " " File Type settings " " ----------------------------------------- " set tabstop=4 set shiftwidth=4 set softtabstop=4 set autoindent set smarttab set expandtab set shiftround au BufNewFile,BufRead *.vim setlocal noet ts=4 sw=4 sts=4 au BufNewFile,BufRead *.txt setlocal noet ts=4 sw=4 sts=4 au BufNewFile,BufRead *.md setlocal noet ts=4 sw=4 sts=4 au BufNewFile,BufRead *.json setlocal et ts=2 sw=2 sts=2 au BufNewFile,BufRead *.go setlocal noet ts=4 sw=4 sts=4 au BufNewFile,BufRead *.md setlocal et ts=4 sw=4 sts=4 au BufNewFile,BufRead *.lua setlocal noet ts=4 sw=4 sts=4 au BufNewFile,BufRead *.py setlocal et ts=4 sw=4 sts=4 au BufNewFile,BufRead *.yml,*.yaml setlocal et ts=2 sw=2 sts=2 au FileType nginx setlocal noet ts=4 sw=4 sts=4 au FileType dockerfile setlocal et ts=2 sw=2 sts=2 au FileType fstab,systemd set noet au FileType gitconfig,sh,toml set noet " ==================== Wildmenu ==================== set wildmenu " set wildmode=list:longest set wildmode=list:full set wildignore+=.hg,.git,.svn " Version control set wildignore+=*.aux,*.out,*.toc " LaTeX intermediate files set wildignore+=*.jpg,*.bmp,*.gif,*.png,*.jpeg " binary images set wildignore+=*.o,*.obj,*.exe,*.dll,*.manifest " compiled object files set wildignore+=*.spl " compiled spelling word lists set wildignore+=*.sw? " Vim swap files set wildignore+=*.DS_Store " OSX bullshit set wildignore+=*.luac " Lua byte code set wildignore+=migrations " Django migrations set wildignore+=go/pkg " Go static files set wildignore+=go/bin " Go bin files set wildignore+=go/bin-vagrant " Go bin-vagrant files set wildignore+=*.pyc " Python byte code set wildignore+=*.orig " Merge resolution files " vim:ts=2:sw=2:et