" " .vimrc " " Vim configuration resource file. Specifies desired behavior for the vim editor " set nocompatible " Forget compatibility with Vi. Who cares about Vi? set showmode " Show which mode you're in set ruler " Display cursor position in the lower right corner "set number " Line numbers. ruler makes this redundant set showmatch " Show matching [] () {} etc... set showcmd " Show commands as you type them set smartindent " Let vim help with indentation set nowrap " Do not wrap lines longer than the window set linebreak " Wrap long lines on whitespace instead of mid-word set scrolloff=5 " Minimum number of lines to keep above/below the cursor set backspace=2 " Make Backspace work like you expect set formatoptions+=ro " Automatically insert the comment character when you " hit <Enter> (r) or o/O (o) in a comment block set showbreak=└\ " Prefix wrapped continuation lines with '└ ' let mapleader='\' " The <leader> key for key maps syntax enable " Syntax highlighting filetype plugin on " Enable the filetype plugin " Tab options set expandtab " Soft tabs, changes tabs to spaces set tabstop=4 " Number of spaces in a tab set softtabstop=0 " Number of spaces in a soft tab. 0 is disabled set shiftwidth=4 " Number of spaces in an indentation level " Searching options set nowrapscan " Do not wrap to the top of the file while searching set ignorecase " Case insensitive searching set smartcase " Except when the query includes an uppercase character set incsearch " Begin matching query as you type it set hlsearch " Highlight search matches " Modeline options set modeline " Enable the Vim modeline in files set modelines=5 " The number of lines to check for :set commands " Code folding "set foldmethod=indent "set foldenable " Use solarized colorscheme set background=dark let g:solarized_termcolors=256 let g:solarized_visibility='high' colorscheme solarized " Allow saving of files as sudo when I forget to start vim using sudo cmap w!! w !sudo tee > /dev/null % " Clear the search highlighting. Call with `<leader>/` nnoremap <silent> <leader>/ :set nohlsearch<CR> " Show invisible characters. Toggle with <F10> set nolist set listchars=tab:\|·,trail:·,nbsp:¤,extends:>,precedes:<,eol:¬ nnoremap <silent> <F10> :set list!<CR> " Put a vertical ruler in columns 81 and 121. Toggle with <F9> highlight ColorColumn ctermbg=magenta nnoremap <silent> <F9> :call ToggleColorColumn()<CR> function! ToggleColorColumn() if &colorcolumn setlocal colorcolumn& else setlocal colorcolumn=81,121 endif endfunction " Set the terminal title to reflect the open file. Even works with Vim tabs. autocmd BufEnter * let &titlestring = expand("%:t") . " - %{$USER}@" . hostname() | setlocal title autocmd VimLeave * let &titleold = $USER . "@" . hostname() | setlocal title " Append a modeline at the end of a file. Call with `<leader>ml` " " By default, it formats the modeline as a line comment so it gets ignored by " anything that isn't Vim. You can override the commentstring by setting " b:ml_commentstring to something else. nnoremap <leader>ml :call AppendModeline()<CR> function! AppendModeline() " Prefer b:ml_commentstring if it is set, otherwise use commentstring let l:commentstring = get(b:, 'ml_commentstring', &commentstring) let l:modeline = printf(l:commentstring, printf("vi: set ts=%d sw=%d %set %sft=%s:", &ts, &sw, &et ? '' : 'no', &wrap ? 'wrap ' : '', &ft)) call append(line("$"), l:modeline) endfunction " vi: set ts=4 sw=4 et ft=vim: