2014-09-11

vim 滑鼠移到網址按下快速自動在鍵瀏覽器開啟網頁

本人想說在 vim 遇到文字內有網址要立即開啟網頁,先要複製網址>開瀏覽器>貼上網址有點麻煩,如果有辦法直接打開網址就好囉!

我想 vim 一定有辦法做的到,必竟 vim 那麼多人用應該有很好的解決方法,是的,我有找到但有些遇到現在 mega 網址就沒折 https://mega.co.nz/#! 光開頭網址 #! 這兩個符號就要跳脫(逃逸?)兩個都是 linux 內建指令(沒記錯的話)啊。

好了,現在就介紹我找到的解法方法,以下有幾點要注意
  • function 名稱 可自訂但記得要跟 call 名稱 兩個要一致
    function! Ros ()
    :call Ros()
  • 如果不了解 map <Leader> 對應什麼按鍵,請在 vim 輸入 :help leader 你也可以在網頁上觀看 map"*<Leader>* *mapleader*" 一節
  • 預設瀏覽器是 firefox 你可以改為 chromium 但最後記得空一格
    exec ':silent !firefox  ' . "\"" . line . "\""
                                    ^要空格

在 vim 打開設定檔
:e $MYVIMRC

copy and pass and save file
" Evoke a web browser

function! Ros ()
  let line0 = getline (".")
  let line = matchstr (line0, "http[^ ]*")
  :if line==""
  let line = matchstr (line0, "ftp[^ ]*")
  :endif
  :if line==""
  let line = matchstr (line0, "file[^ ]*")
  :endif
  let line = escape (line, "#!?&;|%")
  ":if line==""
  " let line = "\"" . (expand("%:p")) . "\""
  ":endif
  exec ':silent !firefox -new-tab ' . "\"" . line . "\""
endfunction
map <Leader>o :call Ros()<CR>
若是你要馬上試驗可以用這個指令重讀設定檔
:so $MYVIMRC

而後鍵入一行網址如 http://google.com.tw 離開編輯模式 在網址處快下快速鍵 <Leader>o,那麼瀏覽器就會打開該網址了。


命令列出現 :call Ros()

後記

參考資料第一個是腳本出處,第二個是直接打開檔案的方式,有幸趣可以去研究一下。