{ config, pkgs, ... }: { programs.neovim = { enable = true; # defaultEditor = true; why the hell doesn't this work :( vimAlias = true; plugins = with pkgs.vimPlugins; [ nerdtree nerdcommenter fugitive-gitlab-vim vim-repeat vim-airline fzf-vim dracula-vim vim-nix # this destroys my tab settings, ffs ]; extraConfig = '' " basic commands bound to uppercase key command Q q command W w command Wq wq command WQ wq set shiftwidth=4 set noexpandtab set preserveindent set number relativenumber set tabstop=4 set smartcase set colorcolumn=120 set nowrap highlight ColorColumn ctermbg=darkgray " beautify indents :set list lcs=tab:\|\ nnoremap ; : nnoremap : ; vnoremap ; : vnoremap : ; " set space as leader nnoremap let mapleader = " " " air-line let g:airline_powerline_fonts = 1 " NERDTree nnoremap n :NERDTreeFocus :NERDTreeRefreshRoot " NERDTree autostart" autocmd VimEnter * NERDTree | wincmd p " Close the tab if NERDTree is the only window remaining in it. autocmd BufEnter * if winnr('$') == 1 && exists('b:NERDTree') && b:NERDTree.isTabTree() | quit | endif "remove ex-mode shortcut nmap Q " trigger the fuzzy finder (fzf) nnoremap f :Files nnoremap g :GFiles nnoremap b :Buffers nnoremap r :Rg " keybinds for coc nnoremap d :CocDiagnostics " quickfixlist binds nnoremap :cnext nnoremap :cprev " locallist binds nnoremap :lnext nnoremap :lprev " split keybinds nnoremap s :sp nnoremap v :vs nnoremap h h nnoremap j j nnoremap k k nnoremap l l " coloring stuff let g:dracula_colorterm = 0 colorscheme dracula " better autocompletion menu colors highlight Pmenu ctermbg=darkgray ctermfg=black highlight PmenuSel ctermbg=gray ctermfg=black ''; }; }