diff options
Diffstat (limited to '.config/nvim')
-rw-r--r-- | .config/nvim/coc.vim | 15 | ||||
-rw-r--r-- | .config/nvim/init.vim | 103 | ||||
-rw-r--r-- | .config/nvim/plugins.conf.d/coc-onload.vim (renamed from .config/nvim/user/coc-onload.vim) | 0 | ||||
-rw-r--r-- | .config/nvim/plugins.conf.d/coc-settings.json (renamed from .config/nvim/user/coc-settings.json) | 0 | ||||
-rw-r--r-- | .config/nvim/plugins.conf.d/fzf.vim (renamed from .config/nvim/user/fzf.vim) | 6 | ||||
-rw-r--r-- | .config/nvim/plugins.conf.d/onedark.vim (renamed from .config/nvim/user/onedark.vim) | 0 | ||||
-rw-r--r-- | .config/nvim/plugins.conf.d/out.vim (renamed from .config/nvim/user/out.vim) | 0 | ||||
-rw-r--r-- | .config/nvim/plugins.conf.d/vimspector.vim (renamed from .config/nvim/user/vimspector.vim) | 0 | ||||
-rw-r--r-- | .config/nvim/plugins.conf.d/zeal.vim (renamed from .config/nvim/user/zeal.vim) | 0 | ||||
-rw-r--r-- | .config/nvim/templates/_default.sh | 2 | ||||
-rw-r--r-- | .config/nvim/templates/sh/err.sh | 2 | ||||
-rw-r--r-- | .config/nvim/templates/sh/getopts.sh | 6 | ||||
-rw-r--r-- | .config/nvim/templates/sh/help.sh | 10 |
13 files changed, 96 insertions, 48 deletions
diff --git a/.config/nvim/coc.vim b/.config/nvim/coc.vim index 1175735..2ba6c06 100644 --- a/.config/nvim/coc.vim +++ b/.config/nvim/coc.vim @@ -7,21 +7,21 @@ packadd! vim-jsx-pretty " packadd! copilot.vim " --> Fzf -" source ~/.config/nvim/user/fzf.vim +" source ~/.config/nvim/plugins.conf.d/fzf.vim " set rtp+=/usr/share/vim/vimfiles " --> Zeal -source ~/.config/nvim/user/zeal.vim +source ~/.config/nvim/plugins.conf.d/zeal.vim " --> Onedark theme -source ~/.config/nvim/user/onedark.vim +source ~/.config/nvim/plugins.conf.d/onedark.vim " --> Vimspector -source ~/.config/nvim/user/vimspector.vim +source ~/.config/nvim/plugins.conf.d/vimspector.vim " --> COC -autocmd! User coc.nvim source $HOME/.config/nvim/user/coc-onload.vim -let g:coc_config_home = '$HOME/.config/nvim/user' +autocmd! User coc.nvim source $HOME/.config/nvim/plugins.conf.d/coc-onload.vim +let g:coc_config_home = '$HOME/.config/nvim/plugins.conf.d' let g:coc_data_home = '$HOME/.local/share/nvim/site/coc' let g:coc_global_extensions = [ \ 'coc-json', @@ -45,8 +45,5 @@ inoremap <silent><expr><c-l> coc#refresh() nnoremap <leader><C-r> :source ~/.config/nvim/coc.vim<CR> -" autocmd VimLeave * call SaveSess() -" autocmd VimEnter * nested call RestoreSess() - AirlineTheme CocList extensions diff --git a/.config/nvim/init.vim b/.config/nvim/init.vim index 67eb5b8..fbda0fa 100644 --- a/.config/nvim/init.vim +++ b/.config/nvim/init.vim @@ -33,13 +33,12 @@ if filereadable(config_dir . "autoload/plug.vim") endif packadd! fzf.vim -source ~/.config/nvim/user/fzf.vim +source ~/.config/nvim/plugins.conf.d/fzf.vim set rtp+=/usr/share/vim/vimfiles let g:Verdin#autocomplete = 1 let g:livepreview_previewer = 'zathura' let g:tex_flavor = 'latex' -let g:session_filename = '.session.vim' set title showmatch nowrap mouse=a scrolloff=5 set tabstop=2 shiftwidth=0 @@ -88,46 +87,74 @@ nnoremap <Esc>o :LfWorkingDirectory<CR> nnoremap <leader>l :LfCurrentFileNewTab<CR> nnoremap <leader>o :LfWorkingDirectoryExistingOrNewTab<CR> + " --> Sessions -fu! SaveSess() - execute 'mksession! ' . getcwd() . '/' . g:session_filename +let g:session_filename = '.session.vim' + +function! SaveSess() + execute 'mksession! ' . getcwd() . '/' . g:session_filename endfunction -fu! RestoreSess() -if filereadable(getcwd() . '/' . g:session_filename) - execute 'so ' . getcwd() . '/' . g:session_filename - if bufexists(1) - for l in range(1, bufnr('$')) - if bufwinnr(l) == -1 - exec 'sbuffer ' . l - endif - endfor - endif -endif +function! RestoreSess() + execute 'so ' . getcwd() . '/' . g:session_filename + if bufexists(1) + for l in range(1, bufnr('$')) + if bufwinnr(l) == -1 + exec 'sbuffer ' . l + endif + endfor + endif endfunction -command! -nargs=0 Mksess :call SaveSess() -command! -nargs=0 Resess :call RestoreSess() +if argc() == 0 && filereadable(getcwd() . '/' . g:session_filename) + autocmd VimLeave * call SaveSess() + autocmd VimEnter * nested call RestoreSess() +endif + +command! -nargs=0 Mksession :call SaveSess() + " --> Template Management -function SourceTemplate() - let b:template = glob("${XDG_CONFIG_HOME:-$HOME/.config}/nvim/templates/_default." . expand('%:e')) - if !empty(b:template) - execute('0r' . b:template) +let g:templates_dir = "${XDG_CONFIG_HOME:-$HOME/.config}/nvim/templates" + +function ReadDefaultTemplate() + let b:default_template = glob(g:templates_dir . "/_default." . expand('%:e')) + if !empty(b:default_template) + execute('0r ' . b:default_template) endif endfunction -autocmd BufNewFile * call SourceTemplate() +autocmd BufNewFile * call ReadDefaultTemplate() + +function ReadTemplate(template) + execute('r ' . a:template) +endfunction + +function FzfTemplates() + call fzf#run(fzf#wrap({ + \ 'source': 'find ' . g:templates_dir . '/' . &filetype . ' -mindepth 1', + \ 'sink': function('ReadTemplate'), + \ 'options': ['--delimiter', '/templates/' . &filetype . '/', '--with-nth', '2..'], + \ })) +endfunction + +command -nargs=0 Templates call FzfTemplates() +nnoremap <leader>t :Templates<CR> + + +" --> Other commands autocmd TermOpen * startinsert -command! -nargs=* TermSplit split | terminal <args> -command! -nargs=* TermVSplit vsplit | terminal <args> +command! -nargs=* TermSplit split | terminal <args> +command! -nargs=* TermVSplit vsplit | terminal <args> + +command -nargs=* T tabnew <args> +command Gi execute "tabnew" system('EDITOR=echo gi') -command! -nargs=* T tabnew <args> -" --> Bindings and configs +" --> Bindings if !exists('g:lasttab') let g:lasttab = 1 @@ -194,24 +221,21 @@ autocmd FileType go inoremap ;ae err<Space>:=<Space><++><CR>if<Space>err<Space>! nnoremap <leader>fl :w<CR>:!dev lint "%"<CR> nnoremap <leader>fm :w<CR>:%!dev format "%"<CR> nnoremap <leader>fM :w<CR>:%!dev minify "%"<CR> -nnoremap <leader>fc :w<CR>:!dev compile "%"<CR> -nnoremap <leader>fe :w<CR>:!dev run "%"<CR> -nnoremap <leader>ft :w<CR>:!dev test "%"<CR> -nnoremap <leader>fb :w<CR>:!dev build "%"<CR> +nnoremap <leader>fc :w<CR>:se nornu<CR>:!dev compile "%"<CR>:se rnu<CR> +nnoremap <leader>fe :w<CR>:se nornu<CR>:!dev run "%"<CR>:se rnu<CR> +nnoremap <leader>fa :w<CR>:se nornu<CR>:!dev test "%"<CR>:se rnu<CR> +nnoremap <leader>fb :w<CR>:se nornu<CR>:!dev build "%"<CR>:se rnu<CR> nnoremap <leader>fr :w<CR>:!dev clean "%"<CR> nnoremap <leader>Fl :w<CR>:TermSplit dev lint "%"<CR> nnoremap <leader>Fm :w<CR>:TermSplit dev format "%"<CR> -nnoremap <leader>Fc :w<CR>:TermSplit dev compile "%"<CR> -nnoremap <leader>Fe :w<CR>:TermSplit dev run "%"<CR> -nnoremap <leader>Ft :w<CR>:TermSplit dev test "%"<CR> +nnoremap <leader>Fc :w<CR>:se nornu<CR>:TermSplit dev compile "%"<CR> +nnoremap <leader>Fe :w<CR>:se nornu<CR>:TermSplit dev run "%"<CR> +nnoremap <leader>Fb :w<CR>:se nornu<CR>:TermSplit dev build "%"<CR> +nnoremap <leader>Fa :w<CR>:se nornu<CR>:TermSplit dev test "%"<CR> nnoremap <leader>Fr :w<CR>:TermSplit dev clean "%"<CR> -nnoremap <leader>b :w<CR>:se nornu<CR>:!dev build "%"<CR>:se rnu<CR> -nnoremap <leader>B :w<CR>:se nornu<CR>:TermSplit dev build "%"<CR> -nnoremap <leader>t :w<CR>:se nornu<CR>:!dev test "%"<CR>:se rnu<CR> -nnoremap <leader>T :w<CR>:se nornu<CR>:TermSplit dev test "%"<CR> - +nnoremap <leader>a :w<CR>:se nornu<CR>:!dev test "%"<CR>:se rnu<CR> nnoremap <leader>w :set wrap!<CR> nnoremap <leader>fo :!opout "%:p"<CR> nnoremap <leader><C-r> :source ~/.config/nvim/init.vim<CR> @@ -220,6 +244,9 @@ nnoremap <leader>s :%s//gc<Left><Left><Left> nnoremap <leader>gc :TermSplit git add --all && git commit<CR> nnoremap <leader>gp :TermSplit gitpush<CR> + +" --> Update shortcuts + let shortcuts = config_dir . "shortcuts.vim" if filereadable(shortcuts) execute "source " . shortcuts diff --git a/.config/nvim/user/coc-onload.vim b/.config/nvim/plugins.conf.d/coc-onload.vim index b3db607..b3db607 100644 --- a/.config/nvim/user/coc-onload.vim +++ b/.config/nvim/plugins.conf.d/coc-onload.vim diff --git a/.config/nvim/user/coc-settings.json b/.config/nvim/plugins.conf.d/coc-settings.json index 437572d..437572d 100644 --- a/.config/nvim/user/coc-settings.json +++ b/.config/nvim/plugins.conf.d/coc-settings.json diff --git a/.config/nvim/user/fzf.vim b/.config/nvim/plugins.conf.d/fzf.vim index 371b680..49fec8d 100644 --- a/.config/nvim/user/fzf.vim +++ b/.config/nvim/plugins.conf.d/fzf.vim @@ -1,4 +1,7 @@ " --> Fzf + +let g:fzf_history_dir = system('echo "${XDG_STATE_HOME:-$HOME/.local/state}/fzf/fzf_vim_history') + let g:fzf_layout = { 'window': { 'width': 1, 'height': 1 } } command! -bang -nargs=? -complete=dir Files \ call fzf#vim#files(<q-args>, {'options': ['--info=inline', '--preview', 'preview {}']}, <bang>0) @@ -14,6 +17,7 @@ imap <c-x><c-f> <plug>(fzf-complete-path) imap <c-x><c-l> <plug>(fzf-complete-line) " Fzf keybindings +nnoremap <leader>fh :History<CR> nnoremap <leader>ff :Files<CR> -nnoremap <leader>f. :Files %:p:h<CR> +nnoremap <leader>f. :Files %:p:h<CR> diff --git a/.config/nvim/user/onedark.vim b/.config/nvim/plugins.conf.d/onedark.vim index 6f526bd..6f526bd 100644 --- a/.config/nvim/user/onedark.vim +++ b/.config/nvim/plugins.conf.d/onedark.vim diff --git a/.config/nvim/user/out.vim b/.config/nvim/plugins.conf.d/out.vim index 6e4e1f1..6e4e1f1 100644 --- a/.config/nvim/user/out.vim +++ b/.config/nvim/plugins.conf.d/out.vim diff --git a/.config/nvim/user/vimspector.vim b/.config/nvim/plugins.conf.d/vimspector.vim index 521e252..521e252 100644 --- a/.config/nvim/user/vimspector.vim +++ b/.config/nvim/plugins.conf.d/vimspector.vim diff --git a/.config/nvim/user/zeal.vim b/.config/nvim/plugins.conf.d/zeal.vim index 1b2734f..1b2734f 100644 --- a/.config/nvim/user/zeal.vim +++ b/.config/nvim/plugins.conf.d/zeal.vim diff --git a/.config/nvim/templates/_default.sh b/.config/nvim/templates/_default.sh new file mode 100644 index 0000000..13f4793 --- /dev/null +++ b/.config/nvim/templates/_default.sh @@ -0,0 +1,2 @@ +#!/bin/sh + diff --git a/.config/nvim/templates/sh/err.sh b/.config/nvim/templates/sh/err.sh new file mode 100644 index 0000000..a4414cd --- /dev/null +++ b/.config/nvim/templates/sh/err.sh @@ -0,0 +1,2 @@ +err() { printf '%s: %s\n' "$0" "$@" >&2; exit 1; } + diff --git a/.config/nvim/templates/sh/getopts.sh b/.config/nvim/templates/sh/getopts.sh new file mode 100644 index 0000000..9013ff9 --- /dev/null +++ b/.config/nvim/templates/sh/getopts.sh @@ -0,0 +1,6 @@ +while getopts 'h' o; do case "$o" in + h) help >&2; exit ;; + *) err "invalid option -- '$OPTARG'" ;; +esac done +shift $((OPTIND - 1)) + diff --git a/.config/nvim/templates/sh/help.sh b/.config/nvim/templates/sh/help.sh new file mode 100644 index 0000000..953de68 --- /dev/null +++ b/.config/nvim/templates/sh/help.sh @@ -0,0 +1,10 @@ +help() { echo "<++> - + +USAGE: + <++> [OPTION]... + +OPTIONS: + -h show this help message"; } + +[ "$#" -lt 1 ] && help >&2 && exit 1 + |