From 9e2e33dee92b318c0a9c0b7f0ac233af544b4ded Mon Sep 17 00:00:00 2001 From: Sean Buckley Date: Fri, 15 Sep 2023 13:19:18 -0400 Subject: [PATCH] update vim stuff --- modules/cli/default.nix | 1 - modules/vim.nix | 32 --------------------- modules/vim/default.nix | 30 ++++++++++++++++++++ modules/vim/init.vim | 62 +++++++++++++++++++++++++++++++++++++++++ 4 files changed, 92 insertions(+), 33 deletions(-) delete mode 100644 modules/vim.nix create mode 100644 modules/vim/default.nix create mode 100644 modules/vim/init.vim diff --git a/modules/cli/default.nix b/modules/cli/default.nix index b85973e..284486d 100644 --- a/modules/cli/default.nix +++ b/modules/cli/default.nix @@ -22,7 +22,6 @@ nix-top nixpkgs-fmt nodejs - nodePackages.prettier openssl parted pciutils diff --git a/modules/vim.nix b/modules/vim.nix deleted file mode 100644 index 74610d4..0000000 --- a/modules/vim.nix +++ /dev/null @@ -1,32 +0,0 @@ -{ config, lib, pkgs, ... }: -let - lower_left_triangle = builtins.fromJSON '' "\uE0B8" ''; - upper_left_triangle = builtins.fromJSON '' "\uE0BC" ''; - -in -{ - programs.neovim = { - enable = true; - viAlias = true; - vimAlias = true; - defaultEditor = true; - configure = { - packages.sconfig.start = with pkgs.vimPlugins; [ - vim-gitgutter - vim-nix - ]; - customRC = '' - set mouse= - set encoding=utf-8 - scriptencoding utf-8 - set list nowrap scrolloff=9 updatetime=300 number - highlight GitGutterAdd ctermfg=10 - highlight GitGutterChange ctermfg=11 - highlight GitGutterDelete ctermfg=9 - let g:gitgutter_sign_removed = '${lower_left_triangle}' - let g:gitgutter_sign_removed_first_line = '${upper_left_triangle}' - let g:gitgutter_sign_modified_removed = '~~' - ''; - }; - }; -} diff --git a/modules/vim/default.nix b/modules/vim/default.nix new file mode 100644 index 0000000..ee8b142 --- /dev/null +++ b/modules/vim/default.nix @@ -0,0 +1,30 @@ +{ config, lib, pkgs, ... }: +{ + programs.neovim = { + enable = true; + viAlias = true; + vimAlias = true; + defaultEditor = true; + configure = { + packages.sconfig.start = with pkgs.vimPlugins; [ + airline + bufferline-nvim + nerdtree + vim-autoformat + vim-gitgutter + vim-nix + vim-startify + ]; + customRC = '' + source ${./init.vim} + ''; + }; + }; + + environment.systemPackages = with pkgs; [ + nodePackages.prettier + (writeShellScriptBin "black" '' + exec ${pkgs.python3.pkgs.black}/bin/black "$@" + '') + ]; +} diff --git a/modules/vim/init.vim b/modules/vim/init.vim new file mode 100644 index 0000000..7ea61ad --- /dev/null +++ b/modules/vim/init.vim @@ -0,0 +1,62 @@ + +"misc +set mouse= +set encoding=utf-8 +set number relativenumber +set list +set nowrap +set scrolloff=9 + + +"configure plugins +let g:gitgutter_sign_removed = "\uE0B8" +let g:gitgutter_sign_removed_first_line = "\uE0BC" +let g:gitgutter_sign_modified_removed = '~~' +set updatetime=500 +highlight GitGutterAdd ctermfg=10 +highlight GitGutterChange ctermfg=11 +highlight GitGutterDelete ctermfg=9 + +let g:startify_custom_header = "''" +let g:startify_custom_indices = map(range(1,100), 'string(v:val)') + + +"auto formatting +let g:formatters_python = ['black'] + +let g:formatdef_nixpkgsfmt="'nixpkgs-fmt'" +let g:formatters_nix = ['nixpkgsfmt'] + +let g:formatdef_prettier="'prettier --stdin-filepath ' . expand('%:p')" +let g:formatters_js = ['prettier'] +let g:formatters_json = ['prettier'] +let g:formatters_ts = ['prettier'] +let g:formatters_yaml = ['prettier'] + +autocmd BufWritePre * :Autoformat + + +"menus +nnoremap e :NERDTreeFocus:vertical resize 30 +nnoremap o :Startify + + +"buffers +nnoremap w :q +nnoremap q :bd +nnoremap d :bnext +nnoremap a :bprevious + + +"window shortcuts +nnoremap h h +nnoremap j j +nnoremap k k +nnoremap l l +nnoremap v v +nnoremap s s + + +lua << EOF +require("bufferline").setup{} +EOF