2011년 4월 18일 월요일

[Vim] Script: Open URL

Vim에서 현재 라인에 있는 URL을 웹브라우저로 열어보고 싶을 때가 있어서 다음 스크립트를 만들어 봤다.

이 스크립트를 ~/.vimrc 에 넣거나 혹은 ~/.vim/plugins/ 폴더에 특정 파일이름.vim으로 저장하면 된다. (공유저장소에는 renn-openurl.vim 으로 플러그인으로 등록했다)
function! OpenURL()
    let s:uri = escape(matchstr(getline("."), '[a-z]*:\/\/[^ >,;:]*'), "#&;|%")
    if s:uri != ""
        "let s:uriopen = "\"" . (expand("%:p")) . "\""
        echo s:uri
        if has("mac")
            exec ":silent !open \"".s:uri."\""
        endif
        " TODO: add code for opening browser from each OS
    else
        echo "Not found URL in this line..."
    endif
endfunction

map <Leader>oo :call OpenURL()<CR>
이 코드는 Mac OS X에서만 동작한다. 즉 완벽하지 않은 코드이다.  if has("mac")내부의 내용이 그것인데, 윈도우의 경우 win32를 체크해서 start 를 open 대신 넣으면 동작하리라 생각되지만 리눅스의 경우는 어떻게 해야 하는지 모르겠다.

마지막 한 줄은 단축키로 등록한 부분. URL이 있는 라인에 커서를 이동시키고 \oo를 입력하면 브라우저가 열리는게 목적이다.

PS. 단축키에서 o를 누번 누르게 만든 이유는 o키 자체가 Vim의 특정 단축키에 바인드 되어 있다 보니 오작동을 발생시킬 가능성이 있기 때문이다.

댓글 없음 :