diff options
Diffstat (limited to '.config/nvim/init.vim')
-rw-r--r-- | .config/nvim/init.vim | 124 |
1 files changed, 80 insertions, 44 deletions
diff --git a/.config/nvim/init.vim b/.config/nvim/init.vim index e9772ee..eeedeae 100644 --- a/.config/nvim/init.vim +++ b/.config/nvim/init.vim @@ -32,9 +32,14 @@ if filereadable(config_dir . "autoload/plug.vim") call plug#end() endif +packadd fzf.vim +source ~/.config/nvim/user/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 @@ -51,33 +56,19 @@ colorscheme vim highlight NonText ctermfg=242 highlight ColorColumn ctermbg=238 highlight! link CursorColumn ColorColumn +highlight FloatermBorder guibg=orange guifg=cyan autocmd FileType text,fstab setlocal tabstop=8 shiftwidth=8 autocmd FileType html setlocal tabstop=2 shiftwidth=2 list nolinebreak autocmd FileType sql setlocal commentstring=--\ %s +autocmd BufWritePre * %s/\s\+$//e autocmd BufEnter bm-files,bm-dirs setlocal tabstop=8 shiftwidth=8 autocmd BufWritePost bm-files,bm-dirs silent !shortcuts -autocmd VimLeave *.tex !dev clean "%" autocmd BufWritePost config.def.h !cd "%:h"; rm -f config.h; sudo make install autocmd BufWritePost config.h !cd "%:h"; sudo make install -autocmd BufWritePre * %s/\s\+$//e -au BufReadPost * if line("'\"") > 0 && line("'\"") <= line("$") | exe "normal! g`\"" | endif - -autocmd BufWritePost */Documents/Notes/*.md silent !pandoc % -o "$HOME/Documents/Notes/.out/$(basename % .md).html" -" autocmd BufWritePost */Documents/latex/resume/resume.tex !cd "%:h"; pdflatex resume.tex; cp -v resume.pdf ~/Dev/vikas.rocks/static/dox/ autocmd BufWritePost *Xresources silent !xrdb "%" autocmd BufRead,BufNewFile *.yt* set filetype=conf - -function SourceTemplate() - let b:template = glob("${XDG_CONFIG_HOME:-$HOME/.config}/nvim/templates/_default." . expand('%:e')) - if !empty(b:template) - execute('0r' . b:template) - endif -endfunction - -autocmd BufNewFile * call SourceTemplate() - -autocmd TermOpen * startinsert -command! -nargs=* T split | terminal <args> +autocmd VimLeave *.tex !dev clean "%" +au BufReadPost * if line("'\"") > 0 && line("'\"") <= line("$") | exe "normal! g`\"" | endif " --> Scratch buffer if exists('g:loaded_scratch') @@ -98,6 +89,44 @@ nnoremap <Esc>o :LfWorkingDirectory<CR> nnoremap <leader>l :LfCurrentFileNewTab<CR> nnoremap <leader>o :LfWorkingDirectoryExistingOrNewTab<CR> +" --> Sessions + +fu! 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 +endfunction + +command! -nargs=0 Mksess :call SaveSess() +command! -nargs=0 Resess :call RestoreSess() + +" --> 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) + endif +endfunction + +autocmd BufNewFile * call SourceTemplate() + +autocmd TermOpen * startinsert +command! -nargs=* T split | terminal <args> + +" --> Bindings and configs + if !exists('g:lasttab') let g:lasttab = 1 endif @@ -124,25 +153,37 @@ inoremap jk <Esc> inoremap ;n <Esc>/<++><Enter>c4l nnoremap <leader>n /<++><Enter>c4l -inoremap ;s ><Esc>bi<<Esc>ea -inoremap ;c ><Esc>bi</<Esc>ea -inoremap ;i <Esc>b"tywi<<Esc>ea></><Esc>PF<i -inoremap ;I <Esc>b"tywi<<Esc>ea><++></><Esc>P2F>i<Space> -inoremap ;b <Esc>b"tywi<<Esc>ea><CR></<Esc>"tpa><CR><++><Esc>kO -inoremap ;B <Esc>b"tywi<<Esc>ea><CR><++><CR></<Esc>"tpa><CR><++><Esc>3k$i<Space> -inoremap ;ap <p><CR><++><CR></p><CR><++><Esc>3k$i -inoremap ;aa <a href=""><CR><++><CR></a><CR><++><Esc>3k$hi +augroup Web + autocmd! + autocmd FileType html,javascript call SetWebBindings() + function SetWebBindings() + inoremap ;s ><Esc>bi<<Esc>ea + inoremap ;c ><Esc>bi</<Esc>ea + inoremap ;i <Esc>b"tywi<<Esc>ea></><Esc>PF<i + inoremap ;I <Esc>b"tywi<<Esc>ea><++></><Esc>P2F>i<Space> + inoremap ;b <Esc>b"tywi<<Esc>ea><CR></<Esc>"tpa><CR><++><Esc>kO + inoremap ;B <Esc>b"tywi<<Esc>ea><CR><++><CR></<Esc>"tpa><CR><++><Esc>3k$i<Space> + inoremap ;ap <p><CR></p><CR><++><Esc>kO + inoremap ;aP <p></p><Esc>F<i + inoremap ;aa <a href=""><CR><++><CR></a><CR><++><Esc>3k$hi + inoremap ;aA <a href=""><++></a><Esc>F"i + inoremap ;cl console.log("");<Esc>F"i + endfunction +augroup END augroup Tex autocmd! - autocmd FileType tex inoremap ;b <Esc>b"tywi\begin{<Esc>ea}<CR>\end{<Esc>"tpa}<Esc>kA - autocmd FileType tex inoremap ;s \section{}<Esc>i - autocmd FileType tex inoremap ;at \begin{tikzpicture}<CR>\end{tikzpicture}<Esc>O - autocmd FileType tex inoremap ;ap \usepackage{}<Esc>i - autocmd FileType tex inoremap ;aP \usepackage[]{}<Esc>F[a - autocmd FileType tex inoremap ;ab \textbf{}<Esc>i - autocmd FileType tex inoremap ;ai \textit{}<Esc>i - autocmd FileType tex inoremap ;au \underline{}<Esc>i + autocmd FileType tex call SetTexBindings() + function SetTexBindings() + inoremap ;b <Esc>b"tywi\begin{<Esc>ea}<CR>\end{<Esc>"tpa}<Esc>kA + inoremap ;s \section{}<Esc>i + inoremap ;at \begin{tikzpicture}<CR>\end{tikzpicture}<Esc>O + inoremap ;ap \usepackage{}<Esc>i + inoremap ;aP \usepackage[]{}<Esc>F[a + inoremap ;ab \textbf{}<Esc>i + inoremap ;ai \textit{}<Esc>i + inoremap ;au \underline{}<Esc>i + endfunction augroup END autocmd FileType go inoremap ;ae err<Space>:=<Space><++><CR>if<Space>err<Space>!=<Space>nil<Space>{<CR>return<Space>err<CR>}<Esc>3kI @@ -163,23 +204,18 @@ nnoremap <leader>Fe :w<CR>:T dev run "%"<CR> nnoremap <leader>Ft :w<CR>:T dev test "%"<CR> nnoremap <leader>Fr :w<CR>:T dev clean "%"<CR> -autocmd BufEnter * nmap <leader>b :w<CR>:se nornu<CR>:!dev build "%"<CR>:se rnu<CR> -autocmd BufEnter * nmap <leader>B :w<CR>:se nornu<CR>:T dev build "%"<CR> -autocmd BufEnter * nmap <leader>t :w<CR>:se nornu<CR>:!dev test "%"<CR>:se rnu<CR> -autocmd BufEnter * nmap <leader>T :w<CR>:se nornu<CR>:T dev test "%"<CR> - -autocmd BufEnter vartak-results-data.pl nmap <leader>t :w<CR>:se nornu<CR>:!vartak-results-data.pl ~/GDrive/vartak/results/university/1S002557.pdf<CR>:se rnu<CR> +nnoremap <leader>b :w<CR>:se nornu<CR>:!dev build "%"<CR>:se rnu<CR> +nnoremap <leader>B :w<CR>:se nornu<CR>:T 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>:T dev test "%"<CR> nnoremap <leader>w :set wrap!<CR> nnoremap <leader>fo :!opout "%:p"<CR> -nnoremap <leader>ei :tabnew ~/.config/nvim/init.vim<CR> -nnoremap <leader>eo :tabnew ~/.config/nvim/coc/coc-onload.vim<CR> -nnoremap <leader>ec :tabnew ~/.config/nvim/coc/coc-settings.json<CR> -nnoremap <leader>ed :tabnew ~/.config/nvim/dev.vim<CR> nnoremap <leader><C-r> :source ~/.config/nvim/init.vim<CR> nnoremap <leader>s :%s//gc<Left><Left><Left> nnoremap <leader>gc :T git add --all && git commit<CR> +nnoremap <leader>gp :T gitpush<CR> let shortcuts = config_dir . "shortcuts.vim" if filereadable(shortcuts) |