runtime ftplugin/man.vim set nocompatible " don't be compatible to vi set showcmd " show entered commands in status line set showmatch " show matching brackets set autoindent " indent new lines correctly set hlsearch " highlight search results set ignorecase " case-insensitive searching set background=dark " color scheme for dark background set title " set terminal title set ruler " show line/column of cursor in status line set tabstop=4 " display a tab as 4 spaces "set softtabstop=4 " (soft) indent tabs with 4 spaces set shiftwidth=4 " (auto)indent with 4 spaces (> <) set noexpandtab " don't expand tabs to spaces set nobackup " don't keep backup files set showtabline=2 " always show tab line set hidden " change buffers without saving set cursorline " highlight current cursor line set scrolloff=4 " keep 4 lines context when scrolling set laststatus=2 " always show status line set ttimeoutlen=50 " faster switch from insert to normal mode set noshowmode " don't show current mode (done by airline) set encoding=utf-8 " use utf8 by default set number " enable line numbers set relativenumber " show relative line numbers set updatetime=100 " update gutter more often set backspace=indent,eol,start " enable backspacing set grepprg=ag\ --vimgrep " use Ag for grepping set grepformat=%f:%l:%c:%m " Ag-specific output format let mapleader="," " more convenient leader syntax on " enable syntax highlighting filetype plugin indent on set directory=~/.vim/swap,.,~/tmp,/var/tmp,/tmp " directory where to save/search swap files set viminfo+=n~/.vim/viminfo " different location for viminfo file " make indentation and trailing whitespaces visible set list listchars=tab:·\ ,trail:· " autocommands autocmd FileType python setlocal tabstop=4 softtabstop=0 autocmd FileType c setlocal tabstop=4 softtabstop=0 noexpandtab autocmd FileType perl setlocal tabstop=4 softtabstop=4 expandtab autocmd FileType yaml setlocal tabstop=2 softtabstop=2 shiftwidth=2 expandtab autocmd InsertEnter * if &number | set norelativenumber | endif autocmd InsertLeave * if &number | set relativenumber | endif " show cursorline only in active window augroup CursorLine autocmd! autocmd VimEnter,WinEnter,BufWinEnter * set cursorline autocmd WinLeave * set nocursorline augroup END " highlighting settings if (&t_Co == 88) highlight CursorLine cterm=NONE ctermbg=81 elseif (&t_Co == 256) highlight CursorLine cterm=NONE ctermbg=237 highlight Folded cterm=NONE ctermbg=239 highlight SignColumn ctermbg=234 highlight LineNr ctermfg=lightyellow ctermbg=234 highlight SpecialKey ctermfg=darkgray else highlight CursorLine cterm=NONE ctermbg=darkgray endif " file browser let g:netrw_liststyle=3 " tree style listing let g:netrw_banner=0 " suppress banner on top "let g:netrw_browse_split=3 " open files in new tab let g:netrw_list_hide='^\..*$' " don't show hidden files " key mappings nnoremap :nohlsearch nmap tn :tabnew nmap tc :tabclose noremap :ToggleBufExplorer nnoremap :TagbarToggle " disable arrow keys noremap noremap noremap noremap " different keycodes in urxvt nmap [5^ nmap [6^ " more convenient grepping command -nargs=+ Grep execute 'silent grep! ' | execute 'redraw!' | execute 'copen' nnoremap g :Grep " folding settings; disabled for now because of performance problems "set foldmethod=syntax " fold automatically by syntax rules "set foldlevel=0 " fold from top level "set foldnestmax=1 " fold only 1 level "let perl_fold=1 "let perl_nofold_packages=0 " GPG settings let g:GPGExecutable="gpg2" augroup GnuPGExtra autocmd User GnuPG setl foldmethod=marker foldclose=all foldopen=insert foldtext=v:folddashes.getline(v:foldstart) augroup END " BufExplorer settings let g:bufExplorerSplitHorzSize=15 let g:bufExplorerSplitVertSize=40 let g:bufExplorerDefaultHelp=0 let g:bufExplorerShowNoName=1 " airline settings "let g:airline_theme='wombat' let g:airline#extensions#whitespace#enabled=0 " neocomplete settings let g:neocomplete#enable_at_startup=1 " vim: set et:sw=4:sts=4