diff --git a/vimrc b/vimrc index 8dc109a..ce8a33f 100644 --- a/vimrc +++ b/vimrc @@ -274,3 +274,27 @@ nnoremap hi :HdevtoolsInfo " Vim-move let g:move_key_modifier = 'C' + +" Open URLs +ruby << EOF + def open_uri + re = %r{(?i)\b((?:[a-z][\w-]+:(?:/{1,3}|[a-z0-9%])|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4}/)(?:[^\s()<>]+|\(([^\s()<>]+|(\([^\s()<>]+\)))*\))+(?:\(([^\s()<>]+|(\([^\s()<>]+\)))*\)|[^\s`!()\[\]{};:'".,<>?«»“”‘’]))} + + line = VIM::Buffer.current.line + + if url = line[re] + system("open", url) + VIM::message(url) + else + VIM::message("No URI found in line.") + end + end +EOF + +if !exists("*OpenURI") + function! OpenURI() + :ruby open_uri + endfunction +endif + +nnoremap b :call OpenURI()