vim에서 gx가 전체 URL을 인식하도록하려면 어떻게해야합니까?


19

정력의 버퍼가 URL이 포함 된 경우 기본적으로 같은 http://www.google.com, gx일반 모드에서 해당 URL과 브라우저를 엽니 다. 매우 편리합니다. 그러나 URL에 URL 매개 변수가있는 경우 (예 http://www.google.com/search?q=stuff:) URL 매개 변수가 누락됩니다 (즉, http://www.google.com/search열림).

Chrome을 기본 브라우저 (OS X 10.9)로 사용하여 MacVim 7.4 패치 183을 사용하고 있습니다.

최소한의 사용자 지정만으로 gx전체 URL 을 인식 할 수있는 쉬운 방법이 있습니까?


나는 리눅스에서 vim 7.4로 그것을 재현 할 수 없습니다. 나를 위해 'let g : netrw_browsex_viewer ='firefox '를 사용할 때 매개 변수가 firefox에 올바르게 전달됩니다.
PhilippFrank

@PhilippFrank 예제 URL이 저에게도 효과가 없습니다 (Vim 7.4, Linux) ... 어쨌든 내 솔루션은 시각적 모드에서 URL을 선택한 다음 gx(이상적이지는 않지만 복사 / 붙여 넣기보다 낫습니다) ).
Martin Tournoij

1
옵션이 아니라 변수이므로를 사용해야 let합니다.
Martin Tournoij

1
Windows 및 Chrome에서 GVim 7.4로 재현 할 수 없습니다. 언급 한 모든 URL은에 의해 정확하게 열립니다 gx.
Gonçalo Ribeiro

1
OP의 오류를 확인 중입니다. VIM 7.4.473 및 7.4.663로 시도했습니다. 다른 터미널 ( , ) 및 다른 브라우저 ( / /로 설정 됨)를 사용하여 .vimrcurxvtsakurag:netrw_browsex_viewer'uzbl-browser''firefox''google-chrome'
초기

답변:


13

@Carpetsmoker가 그의 의견에서 지적한 바와 같이 g:netrw_gx, URI의 일부로 간주되는 것을 결정합니다.

기본적으로로 설정되어 "<cfile>"있습니다. 문서 ( :help <cfile>)에서 :

<cfile> is replaced with the path name under the cursor

그것은 저를 탈출 하는 이유 매개 변수 부분 (즉, ?URL을의가)는 "경로 이름"의 일부로 무시,하지만 난 결국 내 솔루션으로, 다음을 설정하기로 결정하고 있습니다 :

" Use whole "words" when opening URLs.
" This avoids cutting off parameters (after '?') and anchors (after '#'). 
" See http://vi.stackexchange.com/q/2801/1631
let g:netrw_gx="<cWORD>"                                                                                                                   

이제 여기에는 W선택한 것이 포함됩니다 . ( viWVIM에서 문자열을 사용해보십시오 .)

문서에서 : <cWORD> is replaced with the WORD under the cursor


힌트 : 비주얼 모드gx 에서 사용 하면 위의 구성에 관계없이 시각적으로 선택된 문자열이 열립니다.


또 다른 이상한 행동 : URI가로 끝나면 /먼저 다운로드하여 (with curl)을 연 다음 열립니다. 후행을 제거하면 /URI가 브라우저에서 직접 열립니다.
user569825

2
"경로 이름"은 'isfname'옵션에 의해 정의 ?되며 기본적으로 유효한 파일 이름 문자로 포함되지 않습니다 . 이 옵션을 변경하면 버퍼에 로컬로 설정할 수 없으므로주의해야합니다. NetRW가이 옵션을 변경하지 않는 한 OP URL이 작동하지 않는 이유를 설명합니다 gx. 사용중인 NetRW 버전에 차이가있을 수 있으며 이는 Carpetsmoker가 보는 다른 동작을 설명합니다.
jamessan
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.