From 24f838370d78a822bab12b3866689e0668462a6a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kier=C3=A1n=20Meinhardt?= Date: Sun, 9 Jul 2023 23:26:49 +0200 Subject: [PATCH] feat: make obsidian-vim and neovim bearable --- flake.nix | 2 +- lib/vim/init.lua | 6 +++--- lib/vim/init.vim | 28 ---------------------------- lib/vim/shared.vim | 28 ++++++++++++++++++++++++++++ packages/notemenu.nix | 3 ++- packages/obsidian-vim.nix | 16 ++++++++++++++-- packages/vim.nix | 4 ++-- 7 files changed, 50 insertions(+), 37 deletions(-) create mode 100644 lib/vim/shared.vim diff --git a/flake.nix b/flake.nix index c3e890a..07015e0 100644 --- a/flake.nix +++ b/flake.nix @@ -305,7 +305,7 @@ new-mac = pkgs.callPackage packages/new-mac.nix {}; nix-git = pkgs.callPackage packages/nix-git.nix {}; nix-index-update = pkgs.callPackage packages/nix-index-update.nix {inherit system;}; - notemenu = pkgs.callPackage packages/notemenu.nix {}; + notemenu = pkgs.callPackage packages/notemenu.nix {niveumPackages = self.packages.${system};}; opustags = pkgs.callPackage packages/opustags.nix {}; pls = pkgs.callPackage packages/pls.nix {}; qrpaste = pkgs.callPackage packages/qrpaste.nix {}; diff --git a/lib/vim/init.lua b/lib/vim/init.lua index 10cc121..0c879d2 100644 --- a/lib/vim/init.lua +++ b/lib/vim/init.lua @@ -2,9 +2,9 @@ local cmp = require'cmp' cmp.setup({ snippet = { - expand = function(args) { + expand = function(args) require("luasnip").lsp_expand(args.body) - }, + end, }, mapping = cmp.mapping.preset.insert({ [''] = cmp.mapping.scroll_docs(-4), @@ -76,7 +76,7 @@ local lsp_flags = { } language_servers = { - clangd = {},` + clangd = {}, pyright = {}, -- pyright tsserver = {}, -- typescript-language-server elmls = {}, -- elm-language-server diff --git a/lib/vim/init.vim b/lib/vim/init.vim index 44aca68..e7bc431 100644 --- a/lib/vim/init.vim +++ b/lib/vim/init.vim @@ -3,27 +3,12 @@ vnoremap a= :Tabularize /= vnoremap a; :Tabularize /:: vnoremap a- :Tabularize /-> -nnoremap :FZF -nnoremap :Rg -let g:fzf_layout = { 'down': '~15%' } - - colorscheme dim -" transparent background -hi Normal guibg=NONE ctermbg=NONE - -let mapleader = "," -let maplocalleader="\\" " noremap h :split " noremap v :vsplit noremap gs :Git noremap gc :Git commit -noremap n :bn -noremap p :bp -noremap c :bd -noremap b :Buffers -noremap t :Tags " reindent whole file noremap i mzgg=G`z @@ -34,11 +19,8 @@ nnoremap S :%s//g " Hit `%` on `if` to jump to `else`. runtime macros/matchit.vim -filetype plugin indent on -set autoindent set notitle set nospell -set smartcase ignorecase " you need these two set backspace=indent,eol,start set hidden set ruler @@ -49,23 +31,13 @@ set path+=** set splitbelow splitright set wildmenu wildmode=longest,list,full set shortmess+=ac -set nowritebackup noswapfile -set mouse=a set showmatch -set encoding=utf8 ffs=unix,dos,mac set smartindent -set wrap set hlsearch -set clipboard=unnamedplus -set nopaste -set list listchars=tab:⇥\ ,extends:❯,precedes:❮,nbsp:␣,trail:· showbreak=¬ set foldlevelstart=30 nnoremap :set nohlsearch -iabbrev ddate =strftime("%F") -iabbrev dtime =strftime("%F %T") - fun! TrimWhitespace() let l:save = winsaveview() keeppatterns %s/\s\+$//e diff --git a/lib/vim/shared.vim b/lib/vim/shared.vim new file mode 100644 index 0000000..60806f2 --- /dev/null +++ b/lib/vim/shared.vim @@ -0,0 +1,28 @@ +nnoremap :FZF +nnoremap :Rg +let g:fzf_layout = { 'down': '~15%' } + +" transparent background +hi Normal guibg=NONE ctermbg=NONE + +let mapleader = "," +let maplocalleader="\\" +noremap n :bn +noremap p :bp +noremap c :bd +noremap b :Buffers +noremap t :Tags + +filetype plugin indent on +set autoindent +set smartcase ignorecase " you need these two +set nowritebackup noswapfile +set mouse=a +set encoding=utf8 ffs=unix,dos,mac +set wrap +set list listchars=tab:⇥\ ,extends:❯,precedes:❮,nbsp:␣,trail:· showbreak=¬ +set clipboard=unnamedplus +set nopaste + +iabbrev ddate =strftime("%F") +iabbrev dtime =strftime("%F %T") diff --git a/packages/notemenu.nix b/packages/notemenu.nix index 764248d..827d59e 100644 --- a/packages/notemenu.nix +++ b/packages/notemenu.nix @@ -6,6 +6,7 @@ coreutils, noteDirectory ? "~/cloud/syncthing/obsidian", currentDates ? false, + niveumPackages, }: writers.writeDashBin "notemenu" '' set -efu @@ -23,6 +24,6 @@ writers.writeDashBin "notemenu" '' } | rofi -dmenu -i -p 'notes') if test "$note_file" then - alacritty --working-directory ${noteDirectory} -e "$EDITOR" "$note_file" + alacritty --working-directory ${noteDirectory} -e ${niveumPackages.obsidian-vim}/bin/nvim "$note_file" fi '' diff --git a/packages/obsidian-vim.nix b/packages/obsidian-vim.nix index b60dd41..d94e065 100644 --- a/packages/obsidian-vim.nix +++ b/packages/obsidian-vim.nix @@ -1,17 +1,29 @@ { neovim, vimPlugins, - vault ? "~/cloud/syncthing/obsidian/", + obsidiantVaultDirectory ? "~/cloud/syncthing/obsidian/", ... }: neovim.override { configure = { customRC = '' - let g:vimwiki_list = [{'path': '${vault}', + source ${../lib/vim/shared.vim} + + cd ${obsidiantVaultDirectory} + + let g:vimwiki_list = [{'path': '${obsidiantVaultDirectory}', \ 'syntax': 'markdown', 'ext': '.md'}] + + let NERDTreeSortOrder = ['[[-timestamp]]'] + + " Start NERDTree and put the cursor back in the other window. + autocmd VimEnter * NERDTree ${obsidiantVaultDirectory} | wincmd p ''; packages.nvim.start = [ vimPlugins.vimwiki + vimPlugins.nerdtree + vimPlugins.fzf-vim + vimPlugins.fzfWrapper ]; }; } diff --git a/packages/vim.nix b/packages/vim.nix index c4ca910..d89033c 100644 --- a/packages/vim.nix +++ b/packages/vim.nix @@ -8,9 +8,9 @@ }: (neovim.override { configure = { customRC = '' - luafile ${../lib/vim/init.lua} - + source ${../lib/vim/shared.vim} source ${../lib/vim/init.vim} + luafile ${../lib/vim/init.lua} ''; packages.nvim = with vimPlugins; { start = [