aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOxbian <got.dacs@slmail.me>2023-06-19 08:59:16 +0200
committerOxbian <got.dacs@slmail.me>2023-06-19 08:59:16 +0200
commit9c946f8f786137aeabfe005f2865043183838876 (patch)
treefa333454e62eb5f5fc6f258429330729569eb59c
parenta46c3ec3ec35d6c68f6fdfeaae92c8af043f9db8 (diff)
downloadvimrc-9c946f8f786137aeabfe005f2865043183838876.tar.gz
vimrc-9c946f8f786137aeabfe005f2865043183838876.zip
Adding snippets engine
-rw-r--r--.vim/keymaps.vim20
-rw-r--r--.vim/plugins.vim6
2 files changed, 26 insertions, 0 deletions
diff --git a/.vim/keymaps.vim b/.vim/keymaps.vim
index 794f84b..993ef87 100644
--- a/.vim/keymaps.vim
+++ b/.vim/keymaps.vim
@@ -24,4 +24,24 @@ nnoremap <leader>hs :GitGutterStageHunk<CR>
nnoremap <leader>hu :GitGutterUndoHunk<CR>
nnoremap <leader>hp :GitGutterPreviewHunk<CR>
+" Vsnip
+" Expand
+imap <expr> <C-j> vsnip#expandable() ? '<Plug>(vsnip-expand)' : '<C-j>'
+smap <expr> <C-j> vsnip#expandable() ? '<Plug>(vsnip-expand)' : '<C-j>'
+" Expand or jump
+imap <expr> <C-l> vsnip#available(1) ? '<Plug>(vsnip-expand-or-jump)' : '<C-l>'
+smap <expr> <C-l> vsnip#available(1) ? '<Plug>(vsnip-expand-or-jump)' : '<C-l>'
+
+" Jump forward or backward
+imap <expr> <Tab> vsnip#jumpable(1) ? '<Plug>(vsnip-jump-next)' : '<Tab>'
+smap <expr> <Tab> vsnip#jumpable(1) ? '<Plug>(vsnip-jump-next)' : '<Tab>'
+imap <expr> <S-Tab> vsnip#jumpable(-1) ? '<Plug>(vsnip-jump-prev)' : '<S-Tab>'
+smap <expr> <S-Tab> vsnip#jumpable(-1) ? '<Plug>(vsnip-jump-prev)' : '<S-Tab>'
+
+" Select or cut text to use as $TM_SELECTED_TEXT in the next snippet.
+" See https://github.com/hrsh7th/vim-vsnip/pull/50
+nmap s <Plug>(vsnip-select-text)
+xmap s <Plug>(vsnip-select-text)
+nmap S <Plug>(vsnip-cut-text)
+xmap S <Plug>(vsnip-cut-text)
diff --git a/.vim/plugins.vim b/.vim/plugins.vim
index b873d58..d881f6a 100644
--- a/.vim/plugins.vim
+++ b/.vim/plugins.vim
@@ -27,6 +27,10 @@ Plug 'airblade/vim-gitgutter' " Git diff
" Autocompletion, linter, syntax
Plug 'dense-analysis/ale' " Swiss-knife for all this
+" Snippets
+Plug 'hrsh7th/vim-vsnip'
+Plug 'rafamadriz/friendly-snippets'
+
call plug#end()
filetype plugin indent on " Allow filetype detection, plugins, indentation
@@ -106,3 +110,5 @@ autocmd BufEnter * if bufname('#') =~ 'NERD_tree_\d\+' && bufname('%') !~ 'NERD_
autocmd BufEnter * if bufname('#') =~# "^NERD_tree_" && winnr('$') > 1 | b# | endif
let g:plug_window = 'noautocmd vertical topleft new' " Stop crash if vimplug command called on the nerdtree window
+" VIM snip
+let g:vsnip_filetypes = {}
ArKa projects. All rights to me, and your next child right arm.