set nocompatible filetype off filetype plugin indent on set ttyfast set laststatus=2 set encoding=utf-8 set autoread set autoindent set backspace=indent,eol,start set incsearch set hlsearch " Basic vim settings set hidden set visualbell set number set nobackup set noswapfile set noshowmode " Set the terminal's title set title " Global tab width. set tabstop=2 set shiftwidth=2 set softtabstop=2 set expandtab " Set to show invisibles (tabs & trailing spaces) & their highlight color set list listchars=tab:»\ ,trail:· " Configure spell checking nmap p :set spell! set spelllang=en_us " Set leader to comma let mapleader = "," " Default to magic mode when using substitution cnoremap %s/ %s/\v cnoremap \>s/ \>s/\v " Capture current file path into clipboard function! CaptureFile() let @+ = expand('%') endfunction map f :call CaptureFile() " Rename current file function! RenameFile() let old_name = expand('%') let new_name = input('New file name: ', expand('%')) if new_name != '' && new_name != old_name exec ':saveas ' . new_name exec ':silent !rm ' . old_name redraw! endif endfunction map n :call RenameFile() " Strip whitespace on save fun! StripTrailingWhitespaces() " Preparation: save last search, and cursor position. let _s=@/ let l = line(".") let c = col(".") " Do the business: %s/\s\+$//e " Clean up: restore previous search history, and cursor position let @/=_s call cursor(l, c) endfun command -nargs=0 Stripwhitespace :call StripTrailingWhitespaces() " Fix indentation in file map i mmgg=G`m " Toggle highlighting of search results nnoremap :nohlsearch " Unsmart Quotes nnoremap guq :%s/\v[“”]/"/g if has("autocmd") " StripTrailingWhitespaces autocmd BufWritePre * Stripwhitespace " To spell check all git commit messages au BufNewFile,BufRead COMMIT_EDITMSG set spell nonumber nolist wrap linebreak " Set filetype tab settings autocmd FileType python,doctest set ai ts=4 sw=4 sts=4 et autocmd BufReadPost * \ if line("'\"") > 1 && line("'\"") <= line("$") | \ exe "normal! g`\"" | \ endif endif