diff --git a/home/overlays.nix b/home/overlays.nix index 9b4e923..74aa9ce 100644 --- a/home/overlays.nix +++ b/home/overlays.nix @@ -27,10 +27,119 @@ vim-jinja ]; }; - vimrcConfig.customRC = - ''if filereadable($HOME . "/.vimrc") - source ~/.vimrc - endif + vimrcConfig.customRC = '' + " disable vim modelines for security reasons + set modelines=0 + set nomodeline + + " Uncomment the following to have Vim jump to the last position when + " reopening a file + if has("autocmd") + au BufReadPost * if line("'\"") > 1 && line("'\"") <= line("$") | exe "normal! g'\"" | endif + endif + + set nocompatible + set hidden + + " automatically close preview window after suggestion + autocmd CompleteDone * pclose + + " Pathogen + "execute pathogen#infect() + "call pathogen#infect() + "call pathogen#helptags() + + set statusline=%<\ %n:%f\ %m%r%y%=%-35.(line:\ %l\ of\ %L,\ col:\ %c%V\ (%P)%) + filetype plugin indent on + + syntax on + + set number + set mouse=a + set mousehide + + set backspace=indent,eol,start + + set hlsearch + set showmatch + set incsearch + set autoindent + set history=1000 + " set cursorline + if has("unnamedplus") + set clipboard=unnamedplus + elseif has("clipboard") + set clipboard=unnamed + endif + + " set expandtab + set shiftwidth=4 + set tabstop=4 + set softtabstop=4 + + " enable truecolor support + "let &t_8f = "\[38;2;%lu;%lu;%lum" + "let &t_8b = "\[48;2;%lu;%lu;%lum" + "set termguicolors + " + "let base16colorspace=256 + + "colorscheme base16-tomorrow-night + "colorscheme Tomorrow-Night + "colorscheme base16-default-dark + + set background=dark + + " Use the same symbols as TextMate for tabstops and EOLs + set listchars=tab:▸\ ,eol:¬ + + " default tab completion with supertab + let g:SuperTabDefaultCompletionType = "context" + + + " LanguageClient + " Required for operations modifying multiple buffers like rename. + set hidden + nnoremap :call LanguageClient_contextMenu() + let g:LanguageClient_serverCommands = { 'haskell': ['hie-wrapper', '--lsp'] } + + " enable LanguageClient functions only if a server mapping exists + function LC_maps() + if has_key(g:LanguageClient_serverCommands, &filetype) + nnoremap K :call LanguageClient#textDocument_hover() + nnoremap gd :call LanguageClient#textDocument_definition() + nnoremap :call LanguageClient#textDocument_rename() + set omnifunc=LanguageClient#complete + set completefunc=LanguageClient#complete + endif + endfunction + + autocmd FileType * call LC_maps() + + au FileType python setlocal tabstop=4 expandtab shiftwidth=4 softtabstop=4 + au FileType haskell setlocal expandtab tabstop=4 shiftwidth=4 softtabstop=4 + " haskell-vim + let g:haskell_enable_quantification = 1 " to enable highlighting of `forall` + let g:haskell_enable_recursivedo = 1 " to enable highlighting of `mdo` and `rec` + let g:haskell_enable_arrowsyntax = 1 " to enable highlighting of `proc` + let g:haskell_enable_pattern_synonyms = 1 " to enable highlighting of `pattern` + let g:haskell_enable_typeroles = 1 " to enable highlighting of type roles + let g:haskell_enable_static_pointers = 1 " to enable highlighting of `static` + let g:haskell_backpack = 1 " to enable highlighting of backpack keywords + au FileType markdown setlocal tabstop=4 expandtab shiftwidth=4 softtabstop=4 + au FileType nix setlocal tabstop=2 expandtab shiftwidth=2 softtabstop=2 + set ofu=syntaxcomplete#Complete + " nmap "+gP + " imap a + vmap "+y + + " ALE linter settings + let g:ale_linters = { 'python': ['flake8'] } + + " vim-pandoc settings + let g:pandoc#modules#disabled = ["spell"] + set textwidth=0 + set wrapmargin=0 ''; }; # build with debug symbols and in debug mode (less optimized)