106 lines
2.8 KiB
Nix
106 lines
2.8 KiB
Nix
|
{ 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"; };
|
||
|
}
|