behold the COMMENTER

This commit is contained in:
2018-02-28 21:18:26 +01:00
parent a1a29fdfe5
commit 1bbf319ae5
7 changed files with 68 additions and 22 deletions

View File

@@ -1,9 +1,5 @@
iabbrev <buffer> prn printf("\n");
nnoremap <buffer> <localleader>fb ][%
nnoremap <buffer> <localleader>fe ][
nnoremap <buffer> <leader>c mcI//<space><esc>`c:delm c<cr>
vnoremap <buffer> <leader>c <esc>`>o*/<esc>`<O/*<esc>
nnoremap <buffer> <leader>xc mx?//<cr>xxx`x:noh<cr>:delm x<cr>
nnoremap <buffer> <leader>xb mx?\/\*<cr>dd/\*\/<cr>dd`x:noh<cr>:delm x<cr>
setlocal foldmethod=syntax foldlevel=99

View File

@@ -1,9 +1,5 @@
iabbrev <buffer> cout System.out.println
nnoremap <buffer> <localleader>fb ][%
nnoremap <buffer> <localleader>fe ][
nnoremap <buffer> <leader>c mcI//<esc>`c:delm c<cr>
vnoremap <buffer> <leader>c <esc>`>o*/<esc>`<O/*<esc>
nnoremap <buffer> <leader>xc mx^xx`x:delm x<cr>
nnoremap <buffer> <leader>xb mx?\/\*<cr>dd/\*\/<cr>dd`x:noh<cr>:delm x<cr>
setlocal foldmethod=syntax foldlevel=99

View File

@@ -1,5 +0,0 @@
nnoremap <buffer> <leader>c mcI#<space><esc>`c:delm x<cr>
vnoremap <buffer> <leader>c <esc>`>o"""<esc>`<O"""<esc>
nnoremap <buffer> <leader>xb mx?"""<cr>dd/"""<cr>dd`x:noh<cr>:delm x<cr>
nnoremap <buffer> <leader>xc mx?#<cr>xx`x:noh<cr>:delm x<cr>

View File

@@ -8,6 +8,6 @@ iabbrev <buffer> ssb \subsubsection
iabbrev <buffer> td \todo
iabbrev <buffer> mb \mathbf
nnoremap <localleader>lm :Latexmk<cr>
nnoremap <localleader>lv :LatexView<cr>
nnoremap <localleader>T :LatexTOC<cr>
nnoremap <buffer> <localleader>lm :Latexmk<cr>
nnoremap <buffer> <localleader>lv :LatexView<cr>
nnoremap <buffer> <localleader>T :LatexTOC<cr>

View File

@@ -1,6 +1 @@
setlocal foldmethod=marker foldlevel=0
nnoremap <buffer> <leader>c mcI"<space><esc>`c:delm c<cr>
vnoremap <buffer> <leader>c <esc>`>o"}}}<esc>`<O"{{{<esc>
nnoremap <buffer> <leader>xb
\ mx?^"{{{<cr>dd/^"}}}<cr>dd`x:noh<cr>:delm x<cr>
nnoremap <buffer> <leader>xc mx?"<cr>xx`x:noh<cr>:delm x<cr>

54
plugin/comment.vim Normal file
View File

@@ -0,0 +1,54 @@
let s:comment_filetype_map = {
\ 'c': '\/\/',
\ 'cpp': '\/\/',
\ 'java': '\/\/',
\ 'vhdl': '--',
\ 'python': '#',
\ 'vim': '"',
\ 'tex': '%',
\ 'sh': '#'
\ }
let s:block_filetype_map = {
\ 'c': ['\/\*', '\*\/'],
\ 'java': ['\/\*', '\*\/'],
\ 'cpp': ['\/\*', '\*\/'],
\ 'python': ['"""', '"""'],
\ 'vim': ['" {{{', '" }}}']
\ }
function! MyCommenter(uncomment) range
let comment = get(s:comment_filetype_map, &ft, '')
if !len(comment)
return
endif
let search_range = a:firstline . ',' . a:lastline
if !a:uncomment
execute search_range . 's/\(^\s*\)\(\S\)/\1' . comment . ' \2/e'
else
execute search_range . 's/\(^\s*\)' . comment . '\s*/\1/e'
endif
nohl
endfunction
function! MyBlocker(unblock) range
let block = get(s:block_filetype_map, &ft, [])
if !len(block)
return
endif
if !a:unblock
execute 'normal! ' . a:lastline . 'gg'
execute 'normal! o' . substitute(block[1], '\', '', 'g') . "\<esc>"
execute 'normal! ' . a:firstline . 'gg'
execute 'normal! O' . substitute(block[0], '\', '', 'g') . "\<esc>"
else
execute 'normal! ?' . block[0] . "\<cr>" . 'dd'
execute 'normal! /' . block[1] . "\<cr>" . 'dd'
endif
noh
endfunction
command! -range CommenseComment <line1>,<line2>call MyCommenter(0)
command! -range CommenseUncomment <line1>,<line2>call MyCommenter(1)
command! -range CommenseBlock <line1>,<line2>call MyBlocker(0)
command! -range CommenseUnblock <line1>,<line2>call MyBlocker(1)

View File

@@ -50,10 +50,11 @@ set langmenu=en_US.UTF-8
" {{{
let g:tagbar_autofocus = 1
" }}}
"
" LatexBox stuff
" {{{
let g:LatexBox_no_mappings = 1
let g:LatexBox_quickfix = 2
let g:LatexBox_build_dir = 'build'
let g:LatexBox_latexmk_options = '-xelatex -outdir=build'
" }}}
@@ -121,6 +122,13 @@ else
let my_settings_file = "$HOME/.vim/plugin/settings.vim"
endif
nnoremap <leader>c mc:CommenseComment<cr>`c:delm c<cr>
nnoremap <leader>xc mc:CommenseUncomment<cr>`c:delm c<cr>
vnoremap <leader>c :CommenseComment<cr>
vnoremap <leader>xc :CommenseUncomment<cr>
vnoremap <leader>b :CommenseBlock<cr>
nnoremap <leader>xb mc:CommenseUnblock<cr>`c:delm c<cr>
nnoremap <leader>sl :tabe $MYVIMRC<cr>
nnoremap <leader>ss :execute 'tabe' my_settings_file<cr>
nnoremap <leader>sv :source $MYVIMRC<cr>:execute 'source' my_settings_file<cr>
@@ -135,6 +143,8 @@ nnoremap <leader>fl mf081lF<space>r<cr>`f:delm f<cr>
vnoremap <leader>" <esc>`>a"<esc>`<i"<esc>
vnoremap <c-c> "+y
nnoremap <c-v> "+p
inoremap <c-v> <esc>"+p
" }}}
" Mappings for Plugins