diff --git a/config.fish b/config.fish index 8da9f94..0591c7e 100644 --- a/config.fish +++ b/config.fish @@ -5,6 +5,7 @@ alias ta "tmux attach" alias dustinswan "mosh dustinswan@dustinswan.org" set -x EDITOR "vim" set -x TERM "screen-256color" +set -x BROWSER "open" # PATH set -x PATH /usr/local/bin /usr/local/sbin $PATH# Homebrew diff --git a/vimrc b/vimrc index 5fa1f5f..ce8a33f 100644 --- a/vimrc +++ b/vimrc @@ -233,10 +233,6 @@ nnoremap l :ls:b "let g:ctrlp_max_files = 10000 let g:ctrlp_clear_cache_on_exit = 0 -" Workflowish stuff. Search for #todo -nnoremap T :vimgrep /\v^\s*\*+.*#todo.*/i %:copen:30wincmd _ -nnoremap TT /\v^\s*\*+.*#todo.*/i - " Vimux stuff nnoremap vp :VimuxPromptCommand nnoremap vl :VimuxRunLastCommand @@ -278,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()