mirror of
https://git.sr.ht/~rouven/nixos-config
synced 2024-11-15 21:33:11 +01:00
100 lines
2.4 KiB
Nix
100 lines
2.4 KiB
Nix
|
{ 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 <SPACE> <Nop>
|
||
|
let mapleader = " "
|
||
|
|
||
|
" air-line
|
||
|
let g:airline_powerline_fonts = 1
|
||
|
|
||
|
" NERDTree
|
||
|
nnoremap <leader>n :NERDTreeFocus<CR> :NERDTreeRefreshRoot<CR>
|
||
|
" 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 <Nop>
|
||
|
|
||
|
" trigger the fuzzy finder (fzf)
|
||
|
nnoremap <leader>f :Files<CR>
|
||
|
nnoremap <leader>g :GFiles<CR>
|
||
|
nnoremap <leader>b :Buffers<CR>
|
||
|
nnoremap <leader>r :Rg<CR>
|
||
|
|
||
|
" keybinds for coc
|
||
|
nnoremap <leader>d :CocDiagnostics<CR>
|
||
|
|
||
|
" quickfixlist binds
|
||
|
nnoremap <C-j> :cnext<CR>
|
||
|
nnoremap <C-k> :cprev<CR>
|
||
|
|
||
|
" locallist binds
|
||
|
nnoremap <C-l> :lnext<CR>
|
||
|
nnoremap <C-h> :lprev<CR>
|
||
|
|
||
|
" split keybinds
|
||
|
nnoremap <leader>s :sp<CR>
|
||
|
nnoremap <leader>v :vs<CR>
|
||
|
|
||
|
nnoremap <leader>h <C-w>h
|
||
|
nnoremap <leader>j <C-w>j
|
||
|
nnoremap <leader>k <C-w>k
|
||
|
nnoremap <leader>l <C-w>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
|
||
|
|
||
|
'';
|
||
|
};
|
||
|
|
||
|
}
|