diff --git a/nixos/modules/utils/vim/default.nix b/nixos/modules/utils/vim/default.nix new file mode 100644 index 0000000..338a356 --- /dev/null +++ b/nixos/modules/utils/vim/default.nix @@ -0,0 +1,76 @@ +{ inputs, lib, config, pkgs, ... }: + +{ + home-manager.users.tdpeuter = { pkgs, ... }: { + home.file = { + ".vim".source = ../../../../stow/vim/.vim; + }; + + programs.vim = { + enable = true; + extraConfig = '' + colorscheme catppuccin_mocha_mod + + " Tags + " pacman -S ctags + command! MakeTags !ctags -R . & + " Move to defintion using ^] + " Move to ambigious using g^] + " Move back using ^t + + filetype on + filetype indent on + filetype plugin on + + " File browsing + let g:netrw_browse_split=4 " open in the previous window + let g:netrw_altv=1 " split new windows to the right + let g:netrw_liststyle=3 " treeview + + set autoindent + set conceallevel=2 + set incsearch + set linebreak + set nocompatible + set path+=** + set scrolloff=3 + set showcmd + set showmatch + set smartindent + set smarttab + set title + set wildignore=*.docx,*.jpg,*.png,*.gif,*.pdf,*.pyc,*.exe,*.flv,*.img,*.xlsx + set wildmenu + + syntax enable + + if $TERM == 'alacritty' + set ttymouse=sgr " Alacritty specific + endif + if has("autocmd") + au BufReadPost * if line("'\"") > 1 && line("'\"") <= line("$") | exe "normal! g'\"" | endif + " https://stackoverflow.com/a/37558470/19044747 + augroup remember_folds + autocmd! + autocmd BufWinLeave * silent! mkview + autocmd BufWinEnter * silent! loadview + augroup END + endif + ''; + plugins = with pkgs.vimPlugins; [ + ale + catppuccin-vim + statix + vifm-vim + ]; + settings = { + expandtab = true; + mouse = "a"; + number = true; + relativenumber = true; + shiftwidth = 4; + tabstop = 4; + }; + }; + }; +}