{ pkgs, home, ... }: { programs.neovim = { enable = true; viAlias = true; vimAlias = true; vimdiffAlias = true; plugins = with pkgs.vimPlugins; [ direnv-vim vim-commentary vim-gitgutter fzf-vim vim-which-key vim-nix vim-surround vim-fugitive vim-css-color semshi { plugin = goyo-vim; # TODO: The mapleader definition should be in extraConfig, but setting # the mapleader before defining keymaps messes things up. config = '' let mapleader = " " let g:goyo_width = '90%' let g:goyo_height = '85%' let g:goyo_linenr = 1 function! s:goyo_enter() if executable('tmux') && strlen($TMUX) silent !tmux set status off silent !tmux list-panes -F '\#F' | grep -q Z || tmux resize-pane -Z endif set noshowmode set noshowcmd set scrolloff=999 Limelight " ... endfunction function! s:goyo_leave() if executable('tmux') && strlen($TMUX) silent !tmux set status on silent !tmux list-panes -F '\#F' | grep -q Z && tmux resize-pane -Z endif set showmode set showcmd set scrolloff=5 Limelight! " ... endfunction autocmd! User GoyoEnter nested call <SID>goyo_enter() autocmd! User GoyoLeave nested call <SID>goyo_leave() nnoremap <leader>z :Goyo<CR> ''; } limelight-vim vim-tmux-navigator vim-polyglot lightline-vim { plugin = rainbow; config = '' let g:rainbow_active = 1 ''; } { plugin = vim-monokai; config = '' colorscheme monokai autocmd ColorScheme * highlight Normal ctermbg=0 autocmd ColorScheme * highlight LineNr ctermbg=0 autocmd ColorScheme * highlight CursorLineNR ctermbg=0 ctermfg=208 autocmd ColorScheme * highlight SignColumn ctermbg=0 autocmd ColorScheme * highlight GitGutterAdd ctermbg=0 autocmd ColorScheme * highlight GitGutterChange ctermbg=0 autocmd ColorScheme * highlight GitGutterDelete ctermbg=0 ''; } ]; extraConfig = '' set clipboard+=unnamedplus set number relativenumber set undofile set undodir=~/.cache/vim/undodir nnoremap <A-j> :m .+1<CR>== nnoremap <A-k> :m .-2<CR>== inoremap <A-j> <Esc>:m .+1<CR>==gi inoremap <A-k> <Esc>:m .-2<CR>==gi vnoremap <A-j> :m '>+1<CR>gv=gv vnoremap <A-k> :m '<-2<CR>gv=gv ''; }; home.sessionVariables = { EDITOR = "nvim"; }; }