Added git submodule for vim-commentary
This commit is contained in:
parent
382a149b10
commit
79d57ab9f1
3
.gitmodules
vendored
3
.gitmodules
vendored
@ -13,3 +13,6 @@
|
|||||||
[submodule "vim/.vim/bundle/eunuch"]
|
[submodule "vim/.vim/bundle/eunuch"]
|
||||||
path = vim/.vim/bundle/eunuch
|
path = vim/.vim/bundle/eunuch
|
||||||
url = https://github.com/tpope/vim-eunuch
|
url = https://github.com/tpope/vim-eunuch
|
||||||
|
[submodule "vim/.vim/bundle/commentary"]
|
||||||
|
path = vim/.vim/bundle/commentary
|
||||||
|
url = https://github.com/tpope/vim-commentary
|
||||||
|
|||||||
1
vim/.vim/bundle/commentary
Submodule
1
vim/.vim/bundle/commentary
Submodule
@ -0,0 +1 @@
|
|||||||
|
Subproject commit be79030b3e8c0ee3c5f45b4333919e4830531e80
|
||||||
@ -1 +0,0 @@
|
|||||||
See the [contribution guidelines for pathogen.vim](https://github.com/tpope/vim-pathogen/blob/master/CONTRIBUTING.markdown).
|
|
||||||
@ -1,51 +0,0 @@
|
|||||||
# commentary.vim
|
|
||||||
|
|
||||||
Comment stuff out. Use `gcc` to comment out a line (takes a count),
|
|
||||||
`gc` to comment out the target of a motion (for example, `gcap` to
|
|
||||||
comment out a paragraph), `gc` in visual mode to comment out the selection,
|
|
||||||
and `gc` in operator pending mode to target a comment. You can also use
|
|
||||||
it as a command, either with a range like `:7,17Commentary`, or as part of a
|
|
||||||
`:global` invocation like with `:g/TODO/Commentary`. That's it.
|
|
||||||
|
|
||||||
I wrote this because 5 years after Vim added support for mapping an
|
|
||||||
operator, I still couldn't find a commenting plugin that leveraged that
|
|
||||||
feature (I overlooked
|
|
||||||
[tcomment.vim](https://github.com/tomtom/tcomment_vim)). Striving for
|
|
||||||
minimalism, it weighs in at under 100 lines of code.
|
|
||||||
|
|
||||||
Oh, and it uncomments, too. The above maps actually toggle, and `gcgc`
|
|
||||||
uncomments a set of adjacent commented lines.
|
|
||||||
|
|
||||||
## Installation
|
|
||||||
|
|
||||||
If you don't have a preferred installation method, I recommend
|
|
||||||
installing [pathogen.vim](https://github.com/tpope/vim-pathogen), and
|
|
||||||
then simply copy and paste:
|
|
||||||
|
|
||||||
cd ~/.vim/bundle
|
|
||||||
git clone git://github.com/tpope/vim-commentary.git
|
|
||||||
|
|
||||||
Once help tags have been generated, you can view the manual with
|
|
||||||
`:help commentary`.
|
|
||||||
|
|
||||||
## FAQ
|
|
||||||
|
|
||||||
> My favorite file type isn't supported!
|
|
||||||
|
|
||||||
Relax! You just have to adjust `'commentstring'`:
|
|
||||||
|
|
||||||
autocmd FileType apache setlocal commentstring=#\ %s
|
|
||||||
|
|
||||||
## Self-Promotion
|
|
||||||
|
|
||||||
Like commentary.vim? Follow the repository on
|
|
||||||
[GitHub](https://github.com/tpope/vim-commentary) and vote for it on
|
|
||||||
[vim.org](http://www.vim.org/scripts/script.php?script_id=3695). And if
|
|
||||||
you're feeling especially charitable, follow [tpope](http://tpo.pe/) on
|
|
||||||
[Twitter](http://twitter.com/tpope) and
|
|
||||||
[GitHub](https://github.com/tpope).
|
|
||||||
|
|
||||||
## License
|
|
||||||
|
|
||||||
Copyright (c) Tim Pope. Distributed under the same terms as Vim itself.
|
|
||||||
See `:help license`.
|
|
||||||
@ -1,32 +0,0 @@
|
|||||||
*commentary.txt* Comment stuff out
|
|
||||||
|
|
||||||
Author: Tim Pope <http://tpo.pe/>
|
|
||||||
License: Same terms as Vim itself (see |license|)
|
|
||||||
|
|
||||||
Comment stuff out. Then uncomment it later. Relies on 'commentstring' to be
|
|
||||||
correctly set, or uses b:commentary_format if it is set.
|
|
||||||
|
|
||||||
*gc*
|
|
||||||
gc{motion} Comment or uncomment lines that {motion} moves over.
|
|
||||||
|
|
||||||
*gcc*
|
|
||||||
gcc Comment or uncomment [count] lines.
|
|
||||||
|
|
||||||
*v_gc*
|
|
||||||
{Visual}gc Comment or uncomment the highlighted lines.
|
|
||||||
|
|
||||||
*o_gc*
|
|
||||||
gc Text object for a comment (operator pending mode
|
|
||||||
only.)
|
|
||||||
|
|
||||||
*gcgc* *gcu*
|
|
||||||
gcgc Uncomment the current and adjacent commented lines.
|
|
||||||
gcu
|
|
||||||
|
|
||||||
*:Commentary*
|
|
||||||
:[range]Commentary Comment or uncomment [range] lines
|
|
||||||
|
|
||||||
The |User| CommentaryPost autocommand fires after a successful operation and
|
|
||||||
can be used for advanced customization.
|
|
||||||
|
|
||||||
vim:tw=78:et:ft=help:norl:
|
|
||||||
@ -1,103 +0,0 @@
|
|||||||
" commentary.vim - Comment stuff out
|
|
||||||
" Maintainer: Tim Pope <http://tpo.pe/>
|
|
||||||
" Version: 1.3
|
|
||||||
" GetLatestVimScripts: 3695 1 :AutoInstall: commentary.vim
|
|
||||||
|
|
||||||
if exists("g:loaded_commentary") || &cp || v:version < 700
|
|
||||||
finish
|
|
||||||
endif
|
|
||||||
let g:loaded_commentary = 1
|
|
||||||
|
|
||||||
function! s:surroundings() abort
|
|
||||||
return split(get(b:, 'commentary_format', substitute(substitute(
|
|
||||||
\ &commentstring, '\S\zs%s',' %s','') ,'%s\ze\S', '%s ', '')), '%s', 1)
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
function! s:strip_white_space(l,r,line) abort
|
|
||||||
let [l, r] = [a:l, a:r]
|
|
||||||
if stridx(a:line,l) == -1 && stridx(a:line,l[0:-2]) == 0 && a:line[strlen(a:line)-strlen(r[1:]):-1] == r[1:]
|
|
||||||
return [l[0:-2], r[1:]]
|
|
||||||
endif
|
|
||||||
return [l, r]
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
function! s:go(type,...) abort
|
|
||||||
if a:0
|
|
||||||
let [lnum1, lnum2] = [a:type, a:1]
|
|
||||||
else
|
|
||||||
let [lnum1, lnum2] = [line("'["), line("']")]
|
|
||||||
endif
|
|
||||||
|
|
||||||
let [l_, r_] = s:surroundings()
|
|
||||||
let uncomment = 2
|
|
||||||
for lnum in range(lnum1,lnum2)
|
|
||||||
let line = matchstr(getline(lnum),'\S.*\s\@<!')
|
|
||||||
let [l, r] = s:strip_white_space(l_,r_,line)
|
|
||||||
if line != '' && (stridx(line,l) || line[strlen(line)-strlen(r) : -1] != r)
|
|
||||||
let uncomment = 0
|
|
||||||
endif
|
|
||||||
endfor
|
|
||||||
|
|
||||||
for lnum in range(lnum1,lnum2)
|
|
||||||
let line = getline(lnum)
|
|
||||||
if strlen(r) > 2 && l.r !~# '\\'
|
|
||||||
let line = substitute(line,
|
|
||||||
\'\M'.r[0:-2].'\zs\d\*\ze'.r[-1:-1].'\|'.l[0].'\zs\d\*\ze'.l[1:-1],
|
|
||||||
\'\=substitute(submatch(0)+1-uncomment,"^0$\\|^-\\d*$","","")','g')
|
|
||||||
endif
|
|
||||||
if uncomment
|
|
||||||
let line = substitute(line,'\S.*\s\@<!','\=submatch(0)[strlen(l):-strlen(r)-1]','')
|
|
||||||
else
|
|
||||||
let line = substitute(line,'^\%('.matchstr(getline(lnum1),'^\s*').'\|\s*\)\zs.*\S\@<=','\=l.submatch(0).r','')
|
|
||||||
endif
|
|
||||||
call setline(lnum,line)
|
|
||||||
endfor
|
|
||||||
let modelines = &modelines
|
|
||||||
try
|
|
||||||
set modelines=0
|
|
||||||
silent doautocmd User CommentaryPost
|
|
||||||
finally
|
|
||||||
let &modelines = modelines
|
|
||||||
endtry
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
function! s:textobject(inner) abort
|
|
||||||
let [l_, r_] = s:surroundings()
|
|
||||||
let [l, r] = [l_, r_]
|
|
||||||
let lnums = [line('.')+1, line('.')-2]
|
|
||||||
for [index, dir, bound, line] in [[0, -1, 1, ''], [1, 1, line('$'), '']]
|
|
||||||
while lnums[index] != bound && line ==# '' || !(stridx(line,l) || line[strlen(line)-strlen(r) : -1] != r)
|
|
||||||
let lnums[index] += dir
|
|
||||||
let line = matchstr(getline(lnums[index]+dir),'\S.*\s\@<!')
|
|
||||||
let [l, r] = s:strip_white_space(l_,r_,line)
|
|
||||||
endwhile
|
|
||||||
endfor
|
|
||||||
while (a:inner || lnums[1] != line('$')) && empty(getline(lnums[0]))
|
|
||||||
let lnums[0] += 1
|
|
||||||
endwhile
|
|
||||||
while a:inner && empty(getline(lnums[1]))
|
|
||||||
let lnums[1] -= 1
|
|
||||||
endwhile
|
|
||||||
if lnums[0] <= lnums[1]
|
|
||||||
execute 'normal! 'lnums[0].'GV'.lnums[1].'G'
|
|
||||||
endif
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
xnoremap <silent> <Plug>Commentary :<C-U>call <SID>go(line("'<"),line("'>"))<CR>
|
|
||||||
nnoremap <silent> <Plug>Commentary :<C-U>set opfunc=<SID>go<CR>g@
|
|
||||||
nnoremap <silent> <Plug>CommentaryLine :<C-U>set opfunc=<SID>go<Bar>exe 'norm! 'v:count1.'g@_'<CR>
|
|
||||||
onoremap <silent> <Plug>Commentary :<C-U>call <SID>textobject(0)<CR>
|
|
||||||
nnoremap <silent> <Plug>ChangeCommentary c:<C-U>call <SID>textobject(1)<CR>
|
|
||||||
nmap <silent> <Plug>CommentaryUndo <Plug>Commentary<Plug>Commentary
|
|
||||||
command! -range -bar Commentary call s:go(<line1>,<line2>)
|
|
||||||
|
|
||||||
if !hasmapto('<Plug>Commentary') || maparg('gc','n') ==# ''
|
|
||||||
xmap gc <Plug>Commentary
|
|
||||||
nmap gc <Plug>Commentary
|
|
||||||
omap gc <Plug>Commentary
|
|
||||||
nmap gcc <Plug>CommentaryLine
|
|
||||||
nmap cgc <Plug>ChangeCommentary
|
|
||||||
nmap gcu <Plug>Commentary<Plug>Commentary
|
|
||||||
endif
|
|
||||||
|
|
||||||
" vim:set et sw=2:
|
|
||||||
Loading…
x
Reference in New Issue
Block a user