{ pkgs, vimUtils, fetchFromGitHub}: { enable = true; plugins = [ "sensible" "ctrlp" "fugitive" "editorconfig-vim" "gitgutter" "surround" ]; settings = { ignorecase = true; expandtab = true; history = 1000; tabstop = 4; }; extraConfig = '' set cc=80 " 80 column lines set linebreak " Break lines at word (requires Wrap lines) set textwidth=80 " Line wrap (number of cols) set showmatch " Highlight matching brace set visualbell " Use visual bell (no beeping) set hlsearch " Highlight all search results set smartcase " Enable smart-case search set shiftwidth=4 " Number of auto-indent spaces set smartindent " Enable smart-indent set laststatus=1 " No status line " Mappings imap fd nnoremap ,s :r ~/sig.txt " Easily find cursor with crosshair (\c) :hi CursorLine cterm=NONE term=reverse ctermbg=7 guibg=Grey90 :hi CursorColumn cterm=NONE term=reverse ctermbg=7 guibg=Grey90 :nnoremap c :set cursorline! cursorcolumn! " File browser let g:netrw_banner=0 " Disable file browser banner let g:netrw_liststyle=3 " Tree view "" CTAGS shortcuts " open definition in a new tab: map :tab split:exec("tag ".expand("")) " open definition in a vertical split: map :vsp :exec("tag ".expand("")) ''; }