X-Git-Url: https://git.rmz.io/dotfiles.git/blobdiff_plain/06ffb1c18671a5ccafa189608b5bd3aba4899fac..HEAD:/vim/vimrc diff --git a/vim/vimrc b/vim/vimrc index c1dc477..402a980 100644 --- a/vim/vimrc +++ b/vim/vimrc @@ -4,6 +4,11 @@ if has('python3') | endif " space is leader let g:mapleader = " " +" disable netrw +"FIXME: it currently breaks vim-fugitive 2023-04-11 +" instead of opening Git status, a netrw buffer opens instead +let g:loaded_netrwPlugin = 1 + " runtimepath {{{1 set runtimepath ^=$XDG_CONFIG_HOME/vim set runtimepath +=$XDG_CONFIG_HOME/vim/after @@ -213,9 +218,15 @@ Plug 'derekwyatt/vim-fswitch' Plug 'elzr/vim-json' Plug 'firef0x/pkgbuild.vim' Plug 'junegunn/vim-easy-align' -Plug 'klen/python-mode' Plug 'kshenoy/vim-signature' -Plug 'majutsushi/tagbar' +" Plug 'majutsushi/tagbar' " TODO: delete? {{{2 +" map :TagbarToggle +" let g:tagbar_sort = 0 +" let g:tagbar_compact = 1 +" let g:tagbar_autoshowtag = 1 +" let g:tagbar_width = 25 +" let g:tagbar_iconchars = ['+', '-'] +"}}} Plug 'octol/vim-cpp-enhanced-highlight' Plug 'sgeb/vim-diff-fold' Plug 'skywind3000/asyncrun.vim' " {{{2 @@ -223,10 +234,10 @@ command! -bang -nargs=* -complete=file Make AsyncRun -save=2 -program=make @ RestoreWinPosn -nmap coswp SaveWinPosn -"}}} +" Plug 'vim-scripts/ansiesc.vim' " TODO: delete? {{{2 +" nmap corwp RestoreWinPosn +" nmap coswp SaveWinPosn +" "}}} Plug 'neovimhaskell/haskell-vim' " {{{2 let g:haskell_enable_quantification = 1 " to enable highlighting of `forall` @@ -282,11 +293,28 @@ Plug 'mtth/scratch.vim' " {{{2 let g:scratch_autohide = 0 "}}} -Plug 'jenterkin/vim-autosource' " {{{2 - let g:autosource_hashdir = $XDG_CACHE_HOME . '/vim/vim-autosource' - let g:autosource_conf_names = ['.vimrc', '.vimrc.lua'] +Plug 'vim-pandoc/vim-pandoc' " {{{2 +Plug 'vim-pandoc/vim-pandoc-syntax' +let g:pandoc#syntax#conceal#use = 1 +let g:pandoc#syntax#conceal#blacklist = [ + \ 'titleblock', + \ 'codeblock_start', + \ 'codeblock_delim', + \ 'atx', + \ ] +let g:pandoc#syntax#codeblocks#embeds#langs = [ + \ 'plantuml', + \ ] +let g:pandoc#keyboard#blacklist_submodule_mappings = [ + \ 'para', + \ ] "}}} +" Plug 'jenterkin/vim-autosource' " TODO: delete? {{{2 +" let g:autosource_hashdir = $XDG_CACHE_HOME . '/vim/vim-autosource' +" let g:autosource_conf_names = ['.vimrc', '.vimrc.lua'] +" "}}} + call plug#end() filetype plugin indent on @@ -423,7 +451,9 @@ set shiftround " round to 'shiftwidth' for "<<" and ">>" set expandtab " expand to spaces in Insert mode set autoindent -set pastetoggle= " key sequence to toggle paste mode +if !has('nvim') + set pastetoggle= " key sequence to toggle paste mode +endif " folding {{{2 set foldmethod=marker " folding type @@ -535,34 +565,37 @@ augroup ft_stdin au StdinReadPost * :set buftype=nofile augroup END -" Jump to last known cursor position {{{2 -augroup last_loc +if !has("nvim") + " autocmds that already exist in neovim + " Jump to last known cursor position {{{2 + augroup last_loc + au! + " blacklist certain filetype + let blacklist = ['gitcommit'] + autocmd BufReadPost * + \ if index(blacklist, &ft) < 0 && line("'\"") > 1 && line("'\"") <= line("$") | + \ exe "normal! g`\"" | + \ endif + augroup END + + " Check for file modifications automatically {{{2 + " (current buffer only) + " Use :NoAutoChecktime to disable it (uses b:autochecktime) + fun! MyAutoCheckTime() + " only check timestamp for normal files + if &buftype != '' | return | endif + if ! exists('b:autochecktime') || b:autochecktime + checktime % + let b:autochecktime = 1 + endif + endfun + augroup MyAutoChecktime au! - " blacklist certain filetype - let blacklist = ['gitcommit'] - autocmd BufReadPost * - \ if index(blacklist, &ft) < 0 && line("'\"") > 1 && line("'\"") <= line("$") | - \ exe "normal! g`\"" | - \ endif -augroup END - -" Check for file modifications automatically {{{2 -" (current buffer only) -" Use :NoAutoChecktime to disable it (uses b:autochecktime) -fun! MyAutoCheckTime() - " only check timestamp for normal files - if &buftype != '' | return | endif - if ! exists('b:autochecktime') || b:autochecktime - checktime % - let b:autochecktime = 1 - endif -endfun -augroup MyAutoChecktime - au! - au FocusGained,BufEnter,CursorHold,InsertEnter * call MyAutoCheckTime() -augroup END -command! NoAutoChecktime let b:autochecktime=0 -command! ToggleAutoChecktime let b:autochecktime=!get(b:, 'autochecktime', 0) | echom "b:autochecktime:" b:autochecktime + au FocusGained,BufEnter,CursorHold,InsertEnter * call MyAutoCheckTime() + augroup END + command! NoAutoChecktime let b:autochecktime=0 + command! ToggleAutoChecktime let b:autochecktime=!get(b:, 'autochecktime', 0) | echom "b:autochecktime:" b:autochecktime +endif " bindings {{{1 @@ -618,6 +651,9 @@ nnoremap ww :Untrail " Source vnoremap S y:execute @@:echo 'Sourced selection.' nnoremap S ^vg_y:execute @@:echo 'Sourced line.' +" Technically this is similar to execute this file, which is usually mapped to +" r and it would make sense to have that for lua files in nvim folder +nnoremap SS :source %:echo 'Sourced file.' " jump to last cursor position noremap ' ` @@ -738,7 +774,7 @@ vnoremap zf cabbrev w!! SudoWrite " uppercase previous word -inoremap gUiwgi +inoremap ugUiwgi " http://git.io/v3ZeU nmap qq :echo "hi<" . synIDattr(synID(line("."),col("."),1),"name") . '> trans<' . synIDattr(synID(line("."),col("."),0),"name") . "> lo<" . synIDattr(synIDtrans(synID(line("."),col("."),1)),"name") . ">" @@ -790,11 +826,9 @@ command! GToggle GitToggle nnoremap gs :GitToggle nnoremap gd :Gdiffsplit -nnoremap gc :echohl WarningMsg \| echo "use \gcc instead" \| echohl None nnoremap gcc :tab G commit -v nnoremap gca :tab G commit -v --amend nnoremap gcf :tab G commit -v --fixup= -nnoremap gp :echohl WarningMsg \| echo "use \gpp instead" \| echohl None nnoremap gpp :Git push \| copen nnoremap gpf :Git push --force-with-lease \| copen nnoremap gll :Git pull @@ -820,15 +854,8 @@ nmap cog IndentGuidesToggle nmap [og IndentGuidesEnable nmap ]og IndentGuidesDisable -" python-mode {{{2 - -let g:pymode_rope_completion = 0 -let g:pymode_rope = 0 -let g:pymode_run = 0 -let g:pymode_folding = 1 -let g:pymode_lint_ignore = "E221,E266,E501" -let g:pymode_lint_cwindow = 0 " don't open cwindow when linting -let g:pymode_syntax_space_errors = 0 " don't bother me when I'm typing +" netrw {{{2 +let g:netrw_sort_sequence = '[\/]$,\.\%(h\|hpp\)$,\.c$,\.cpp$,\~\=\*$,*,\.o$,\.obj$,\.info$,\.swp$,\.bak$,\~$' " signature {{{2 " disable '[ mappings @@ -867,13 +894,6 @@ if ! &diff let g:syntastic_check_on_open=1 endif -" tagbar {{{2 -map :TagbarToggle -let g:tagbar_sort = 0 -let g:tagbar_compact = 1 -let g:tagbar_autoshowtag = 1 -let g:tagbar_width = 25 -let g:tagbar_iconchars = ['+', '-'] " vim-easy-align {{{2 " start interactive EasyAlign in visual mode @@ -911,21 +931,21 @@ nnoremap gs :set operatorfunc=SortLinesOpFuncg@ vnoremap gs :sort " edit configs {{{2 +" TODO: populate location list with both .vim and .lua files +" TODO: create file if it doesn't exist in nvim or vim rtps function! EditConfig(what, ext = '.vim') - let l:dir = split(&runtimepath,',')[0] - if a:what == 'vimrc' - let l:file = expand($MYVIMRC) - elseif ! isdirectory(globpath(l:dir, a:what)) - echoe a:what." is not valid!" + if a:what == 'vimrc' || a:what == 'init.lua' + let l:file = a:what elseif empty(&filetype) echoe 'filetype is empty!' + return else - let l:file = l:dir.'/'.a:what.'/'.&filetype.a:ext + let l:file = a:what.'/'.&filetype.a:ext endif - execute ':vsplit '.file - execute ':lcd %:p:h' + execute ':Vvsplit! '.file endf +nmap en :call EditConfig('init.lua') nmap ev :call EditConfig('vimrc') nmap ef :call EditConfig('ftplugin') nmap es :call EditConfig('syntax')