diff options
-rw-r--r-- | vim-plug/plugins.vim | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/vim-plug/plugins.vim b/vim-plug/plugins.vim index cb202617..baaab75c 100644 --- a/vim-plug/plugins.vim +++ b/vim-plug/plugins.vim @@ -18,4 +18,67 @@ call plug#begin('~/.config/nvim/autoload/plugged') Plug 'joshdick/onedark.vim' + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + call plug#end() + +" Automatically install missing plugins on startup +autocmd VimEnter * + \ if len(filter(values(g:plugs), '!isdirectory(v:val.dir)')) + \| PlugInstall --sync | q + \| endif + +" Press gx to open the GitHub URL for a plugin or a commit with the default browser. +function! s:plug_gx() + let line = getline('.') + let sha = matchstr(line, '^ \X*\zs\x\{7,9}\ze ') + let name = empty(sha) ? matchstr(line, '^[-x+] \zs[^:]\+\ze:') + \ : getline(search('^- .*:$', 'bn'))[2:-2] + let uri = get(get(g:plugs, name, {}), 'uri', '') + if uri !~ 'github.com' + return + endif + let repo = matchstr(uri, '[^:/]*/'.name) + let url = empty(sha) ? 'https://github.com/'.repo + \ : printf('https://github.com/%s/commit/%s', repo, sha) + call netrw#BrowseX(url, 0) +endfunction + +augroup PlugGx + autocmd! + autocmd FileType vim-plug nnoremap <buffer> <silent> gx :call <sid>plug_gx()<cr> +augroup END |