¿Cómo puedo hacer que gx reconozca las URL completas en vim?


19

Por defecto, si un búfer en vim contiene una URL como http://www.google.com, gxen modo normal, se abrirá un navegador con esa URL. Eso es muy útil. Sin embargo, si la URL tiene parámetros de URL (por ejemplo http://www.google.com/search?q=stuff), entonces los parámetros de URL se pierden (es decir, solo http://www.google.com/searchse abren).

Estoy usando MacVim 7.4 parche 183, con Chrome como navegador principal (en OS X 10.9).

¿Existe una manera fácil, idealmente con una personalización mínima, para hacer gxreconocer una URL completa?


No puedo reproducir eso con vim 7.4 en linux. El parámetro se pasa a firefox correctamente cuando se usa 'let g: netrw_browsex_viewer =' firefox 'para mí.
PhilippFrank

@PhilippFrank La URL de ejemplo tampoco funciona para mí (Vim 7.4, Linux) ... En cualquier caso, mi solución es seleccionar la URL en modo visual y luego usarla gx(que no es ideal, pero es mejor que copiar / pegar )
Martin Tournoij

1
Es una variable, no una opción, por lo que debe usarla let.
Martin Tournoij

1
No puedo reproducir con GVim 7.4 en Windows y Chrome. Todas las URL que mencionó se abren exactamente por gx.
Gonçalo Ribeiro

1
Confirmando el error del OP. Probado con VIM 7.4.473 y 7.4.663. Probado desde la cuenta de usuario prestine (sin .vimrc), con diferentes terminales ( urxvt, sakura) y diferentes navegadores ( g:netrw_browsex_viewerconfigurado en 'uzbl-browser'/ 'firefox'/ 'google-chrome'.
user569825

Respuestas:


13

Como @Carpetsmoker señala en su comentario, g:netrw_gxdetermina qué se considerará parte de un URI.

Por defecto está configurado en "<cfile>". De los documentos ( :help <cfile>):

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

Se me escapa, por qué las partes de parámetros (es decir ?) de una URL se están descartando como partes de un "nombre de ruta", pero finalmente elegí establecer lo siguiente, como mi solución:

" 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>"                                                                                                                   

Ahora esto incluye lo Wque sea que seleccione. (Pruebe viWcon una cadena en VIM).

De los documentos: <cWORD> is replaced with the WORD under the cursor


Sugerencia: Al usar gxen modo visual , se abrirá la cadena seleccionada visualmente (independientemente de la configuración anterior).


Otro comportamiento extraño: cuando el URI termina en a /, primero se descarga (con curl) y luego se abre. Eliminando el final /, el URI se abre directamente en el navegador.
user569825

2
"nombre de ruta" se define mediante la 'isfname'opción, que no se incluye ?como un nombre de archivo válido por defecto. Cambiar esta opción requiere cuidado porque no se puede establecer localmente en el búfer. A menos que NetRW cambie esta opción, eso explica por qué las URL de OP no funcionan gx. Tal vez hay una diferencia en las versiones de NetRW que se utilizan, lo que explicaría el comportamiento diferente que ve Carpetsmoker.
jamessan
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.