Added git submodule for vinegar

This commit is contained in:
Andrew R. M 2017-04-06 10:52:46 -04:00
parent 34ffef8e1a
commit 80ca4628ee
5 changed files with 4 additions and 147 deletions

3
.gitmodules vendored
View File

@ -28,3 +28,6 @@
[submodule "vim/.vim/bundle/tagbar"]
path = vim/.vim/bundle/tagbar
url = https://github.com/majutsushi/tagbar
[submodule "vim/.vim/bundle/vim-vinegar"]
path = vim/.vim/bundle/vim-vinegar
url = https://github.com/tpope/vim-vinegar

@ -0,0 +1 @@
Subproject commit bd7f7b7929260072864462c04dde3b9f4c5e0d23

View File

@ -1 +0,0 @@
See the [contribution guidelines for pathogen.vim](https://github.com/tpope/vim-pathogen/blob/master/CONTRIBUTING.markdown).

View File

@ -1,50 +0,0 @@
# vinegar.vim
> Split windows and the project drawer go together like oil and vinegar. I
> don't mean to say that you can combine them to create a delicious salad
> dressing. I mean that they don't mix well!
> - Drew Neil
You know what netrw is, right? The built in directory browser? Well,
vinegar.vim enhances netrw, partially in an attempt to mitigate the need for
more disruptive ["project drawer"][Oil and vinegar] style plugins.
[Oil and vinegar]: http://vimcasts.org/blog/2013/01/oil-and-vinegar-split-windows-and-project-drawer/
Some of the behaviors added by vinegar.vim would make excellent upstream
additions. Many, the author would probably reject. Others are a bit too wild
to even consider.
* Press `-` in any buffer to hop up to the directory listing and seek to the
file you just came from. Keep bouncing to go up, up, up. Having rapid
directory access available changes everything.
* All that annoying crap at the top is turned off, leaving you with nothing
but a list of files. This is surprisingly disorienting, but ultimately
very liberating. Press `I` to toggle until you adapt.
* The oddly C-biased default sort order is replaced with a sensible application
of `'suffixes'`.
* File hiding: files are not listed that match with one of the patterns in
`'wildignore'`.
If you put `let g:netrw_list_hide = '\(^\|\s\s\)\zs\.\S\+'`
in your vimrc, vinegar will initialize with dot files hidden.
Press `gh` to toggle dot file hiding.
* Press `.` on a file to pre-populate it at the end of a `:` command line.
This is great, for example, to quickly initiate a `:grep` of the file or
directory under the cursor. There's also `!`, which starts the line off
with a bang. Type `!chmod +x` and get `:!chmod +x path/to/file`.
* Press `cg` or `cl` to `:cd` or `:lcd` to the currently edited directory.
* Press `~` to go home.
## 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-vinegar.git
## License
Copyright © Tim Pope. Distributed under the same terms as Vim itself.
See `:help license`.

View File

@ -1,96 +0,0 @@
" vinegar.vim - combine with netrw to create a delicious salad dressing
" Maintainer: Tim Pope <http://tpo.pe/>
if exists("g:loaded_vinegar") || v:version < 700 || &cp
finish
endif
let g:loaded_vinegar = 1
function! s:fnameescape(file) abort
if exists('*fnameescape')
return fnameescape(a:file)
else
return escape(a:file," \t\n*?[{`$\\%#'\"|!<")
endif
endfunction
let s:dotfiles = '\(^\|\s\s\)\zs\.\S\+'
let g:netrw_sort_sequence = '[\/]$,*,\%(' . join(map(split(&suffixes, ','), 'escape(v:val, ".*$~")'), '\|') . '\)[*@]\=$'
let s:escape = 'substitute(escape(v:val, ".$~"), "*", ".*", "g")'
let g:netrw_list_hide =
\ join(map(split(&wildignore, ','), '"^".' . s:escape . '. "$"'), ',') . ',^\.\.\=/\=$' .
\ (get(g:, 'netrw_list_hide', '')[-strlen(s:dotfiles)-1:-1] ==# s:dotfiles ? ','.s:dotfiles : '')
if !exists("g:netrw_banner")
let g:netrw_banner = 0
endif
let s:netrw_up = ''
nnoremap <silent> <Plug>VinegarUp :call <SID>opendir('edit')<CR>
if empty(maparg('-', 'n'))
nmap - <Plug>VinegarUp
endif
nnoremap <silent> <Plug>VinegarTabUp :call <SID>opendir('tabedit')<CR>
nnoremap <silent> <Plug>VinegarSplitUp :call <SID>opendir('split')<CR>
nnoremap <silent> <Plug>VinegarVerticalSplitUp :call <SID>opendir('vsplit')<CR>
function! s:opendir(cmd) abort
let df = ','.s:dotfiles
if expand('%:t')[0] ==# '.' && g:netrw_list_hide[-strlen(df):-1] ==# df
let g:netrw_list_hide = g:netrw_list_hide[0 : -strlen(df)-1]
endif
if &filetype ==# 'netrw'
let currdir = fnamemodify(b:netrw_curdir, ':t')
execute s:netrw_up
call s:seek(currdir)
elseif expand('%') =~# '^$\|^term:[\/][\/]'
execute a:cmd '.'
else
execute a:cmd '%:h/'
call s:seek(expand('#:t'))
endif
endfunction
function! s:seek(file) abort
if get(b:, 'netrw_liststyle') == 2
let pattern = '\%(^\|\s\+\)\zs'.escape(a:file, '.*[]~\').'[/*|@=]\=\%($\|\s\+\)'
else
let pattern = '^\%(| \)*'.escape(a:file, '.*[]~\').'[/*|@=]\=\%($\|\t\)'
endif
call search(pattern, 'wc')
return pattern
endfunction
augroup vinegar
autocmd!
autocmd FileType netrw call s:setup_vinegar()
augroup END
function! s:escaped(first, last) abort
let files = getline(a:first, a:last)
call filter(files, 'v:val !~# "^\" "')
call map(files, 'substitute(v:val, "[/*|@=]\\=\\%(\\t.*\\)\\=$", "", "")')
return join(map(files, 'fnamemodify(b:netrw_curdir."/".v:val,":~:.")'), ' ')
endfunction
function! s:setup_vinegar() abort
if empty(s:netrw_up)
" save netrw mapping
let s:netrw_up = substitute(maparg('-', 'n'), '\c^:\%(<c-u>\)\=', '', '')
" saved string is like this:
" :exe "norm! 0"|call netrw#LocalBrowseCheck(<SNR>172_NetrwBrowseChgDir(1,'../'))<CR>
" remove <CR> at the end (otherwise raises "E488: Trailing characters")
let s:netrw_up = strpart(s:netrw_up, 0, strlen(s:netrw_up)-4)
endif
nmap <buffer> - <Plug>VinegarUp
nnoremap <buffer> ~ :edit ~/<CR>
nnoremap <buffer> . :<C-U> <C-R>=<SID>escaped(line('.'), line('.') - 1 + v:count1)<CR><Home>
xnoremap <buffer> . <Esc>: <C-R>=<SID>escaped(line("'<"), line("'>"))<CR><Home>
nmap <buffer> ! .!
xmap <buffer> ! .!
nnoremap <buffer> <silent> cg :exe 'keepjumps cd ' .<SID>fnameescape(b:netrw_curdir)<CR>
nnoremap <buffer> <silent> cl :exe 'keepjumps lcd '.<SID>fnameescape(b:netrw_curdir)<CR>
exe 'syn match netrwSuffixes =\%(\S\+ \)*\S\+\%('.join(map(split(&suffixes, ','), s:escape), '\|') . '\)[*@]\=\S\@!='
hi def link netrwSuffixes SpecialKey
endfunction