diff --git a/modules/editors/vim.nix b/modules/editors/vim.nix index 52947ef8..036290ba 100644 --- a/modules/editors/vim.nix +++ b/modules/editors/vim.nix @@ -14,6 +14,10 @@ in { unstable.neovim ]; + # options.users + home-manager.users.anish.programs.neovim = { + enable = true; + # = TODO something like this n00b. # builtins.concatStringsSep "\n" [ # (lib.strings.fileContents ./base.vim) @@ -267,8 +271,9 @@ in { #vim-processing #vim-tidal taskwiki - vim-zettel + #vim-zettel ]; + }; environment.shellAliases = { vim = "nvim"; diff --git a/modules/nvim.nix b/modules/nvim.nix deleted file mode 100644 index 3fd1153f..00000000 --- a/modules/nvim.nix +++ /dev/null @@ -1,261 +0,0 @@ -{ pkgs, ... }: - - - #nvim - { - environment.variables.EDITOR = "nvim"; - environment.shellAliases = { - k = "vim -c :VimwikiIndex"; - kz = "vim -c :VimwikiIndex -c :ZettelNew"; - }; - environment.systemPackages = with pkgs; [ - nodejs - ( neovim.override { - vimAlias = true; - configure = { - packages.myPlugins = with pkgs.vimPlugins; { - start = [ - vim-nix - fzf-vim - vim-elixir - emmet-vim - nerdtree - goyo-vim - vim-sneak - lightline-vim - csv-vim - vimwiki - coc-nvim - coc-json - coc-python - coc-pairs - coc-emmet - emmet-vim - LanguageClient-neovim - ayu-vim - rainbow_parentheses-vim - vim-surround - vim-fugitive - #iron-nvim - #nvim-colorizer - vim-devicons - # testing - #vim-processing - #vim-tidal - taskwiki - vim-zettel - #vimwiki-sync - ]; - }; - customRC = '' - set tabstop=2 - set showmatch - set shiftwidth=2 - set noexpandtab - set autoindent - - set foldmethod=indent " fold based on indent - set number - set nocompatible - set relativenumber - set showtabline=2 - set autowriteall - syntax on - set list lcs=tab:\|\ - filetype plugin on - - set termguicolors - let ayucolor="dark" - colorscheme ayu - - " window - nmap wh :topleft vnew - nmap wl :botright vnew - nmap wk :topleft new - nmap wj :botright new - - let mapleader = "\" - - " lightline colorscheme - let g:lightline = { - \ 'colorscheme': 'seoul256', - \ } - - " moving splits with vim movements. - :tnoremap h - :tnoremap j - :tnoremap k - :tnoremap l - :inoremap h - :inoremap j - :inoremap k - :inoremap l - :nnoremap h - :nnoremap j - :nnoremap k - :nnoremap l - :nnoremap "=strftime("%Y-%m-%d %H:%M:") - :inoremap =strftime("%Y-%m-%d %H:%M:") - - " exit normal mode in terminal - :tnoremap - - let g:syntastic_always_populate_loc_list = 1 - let g:syntastic_auto_loc_list = 1 - let g:syntastic_check_on_open = 1 - let g:syntastic_check_on_wq = 0 - - let g:rainbow_active = 0 - autocmd BufReadPost,BufNewFile c,py,nix RainbowParenthesesToggleAll - - " keyboard commands - map t :NERDTreeToggle - map s :w - map q :wq - map r :RainbowParenthesesToggleAll - map zs :ZettelSearch - map zo :ZettelOpen - map zn :ZettelNew - - - " NERDTree - " open on directory - autocmd StdinReadPre * let s:std_in=1 - - " coc - " - " if hidden is not set, TextEdit might fail. - set hidden - - " Some servers have issues with backup files, see #649 - set nobackup - set nowritebackup - - " Better display for messages - set cmdheight=2 - - " You will have bad experience for diagnostic messages when it's default 4000. - set updatetime=300 - - " don't give |ins-completion-menu| messages. - set shortmess+=c - - " always show signcolumns - set signcolumn=yes - - " Use tab for trigger completion with characters ahead and navigate. - " Use command ':verbose imap ' to make sure tab is not mapped by other plugin. - inoremap - \ pumvisible() ? "\" : - \ check_back_space() ? "\" : - \ coc#refresh() - inoremap pumvisible() ? "\" : "\" - - function! s:check_back_space() abort - let col = col('.') - 1 - return !col || getline('.')[col - 1] =~# '\s' - endfunction - - " Use to trigger completion. - inoremap coc#refresh() - - " Use to confirm completion, `u` means break undo chain at current position. - " Coc only does snippet and additional edit on confirm. - inoremap pumvisible() ? "\" : "\u\" - " Or use `complete_info` if your vim support it, like: - " inoremap complete_info()["selected"] != "-1" ? "\" : "\u\" - - " Use `[g` and `]g` to navigate diagnostics - nmap [g (coc-diagnostic-prev) - nmap ]g (coc-diagnostic-next) - - " Remap keys for gotos - nmap gd (coc-definition) - nmap gy (coc-type-definition) - nmap gi (coc-implementation) - nmap gr (coc-references) - - " Use K to show documentation in preview window - nnoremap K :call show_documentation() - - function! s:show_documentation() - if (index(['vim','help'], &filetype) >= 0) - execute 'h '.expand('') - else - call CocAction('doHover') - endif - endfunction - - " Highlight symbol under cursor on CursorHold - autocmd CursorHold * silent call CocActionAsync('highlight') - - " Remap for rename current word - nmap rn (coc-rename) - - " Remap for format selected region - xmap f (coc-format-selected) - nmap f (coc-format-selected) - - augroup mygroup - autocmd! - " Setup formatexpr specified filetype(s). - autocmd FileType typescript,json setl formatexpr=CocAction('formatSelected') - " Update signature help on jump placeholder - autocmd User CocJumpPlaceholder call CocActionAsync('showSignatureHelp') - augroup end - - " Remap for do codeAction of selected region, ex: `aap` for current paragraph - xmap a (coc-codeaction-selected) - nmap a (coc-codeaction-selected) - - " Remap for do codeAction of current line - nmap ac (coc-codeaction) - " Fix autofix problem of current line - nmap qf (coc-fix-current) - - " Create mappings for function text object, requires document symbols feature of languageserver. - xmap if (coc-funcobj-i) - xmap af (coc-funcobj-a) - omap if (coc-funcobj-i) - omap af (coc-funcobj-a) - - " Use for select selections ranges, needs server support, like: coc-tsserver, coc-python - nmap (coc-range-select) - xmap (coc-range-select) - - " Use `:Format` to format current buffer - command! -nargs=0 Format :call CocAction('format') - - " Use `:Fold` to fold current buffer - command! -nargs=? Fold :call CocAction('fold', ) - - " use `:OR` for organize import of current buffer - command! -nargs=0 OR :call CocAction('runCommand', 'editor.action.organizeImport') - - " Add status line support, for integration with other plugin, checkout `:h coc-status` - " set statusline^=%{coc#status()}%{get(b:,'coc_current_function',"")} - - " Using CocList - " Show all diagnostics - nnoremap a :CocList diagnostics - " Manage extensions - nnoremap e :CocList extensions - " Show commands - nnoremap c :CocList commands - " Find symbol of current document - nnoremap o :CocList outline - " Search workspace symbols - nnoremap s :CocList -I symbols - " Do default action for next item. - nnoremap j :CocNext - " Do default action for previous item. - nnoremap k :CocPrev - " Resume latest coc list - nnoremap p :CocListResume - - au BufNewFile,BufRead *.frag,*.vert,*.fp,*.vp,*.glsl setf glsl - ''; - }; - } - )]; -}