Par défaut, si un tampon dans vim contient une URL telle que http://www.google.com
, gxen mode normal ouvrira un navigateur avec cette URL. C'est très pratique. Cependant, si l'URL a des paramètres d'URL (par exemple http://www.google.com/search?q=stuff
), alors les paramètres d'URL sont manqués (c'est-à-dire qu'ils sont simplement http://www.google.com/search
ouverts).
J'utilise MacVim 7.4 patch 183, avec Chrome comme navigateur principal (sur OS X 10.9).
Existe-t-il un moyen simple, idéalement avec une personnalisation minimale, de faire gxreconnaître une URL complète?
external-command
netrw
Andrew Ferrier
la source
la source
gx
(ce qui n'est pas idéal mais mieux que copier / coller) ).let
.gx
..vimrc
), avec différents terminaux (urxvt
,sakura
) et différents navigateurs (g:netrw_browsex_viewer
défini sur'uzbl-browser'
/'firefox'
/'google-chrome'
.Réponses:
Comme le souligne @Carpetsmoker dans son commentaire,
g:netrw_gx
détermine ce qui sera considéré comme faisant partie d'un URI.Par défaut, il est défini sur
"<cfile>"
. Depuis la documentation (:help <cfile>
):<cfile> is replaced with the path name under the cursor
Cela m'échappe, pourquoi les parties de paramètre (c.-à-d.
?
) D'une URL sont ignorées en tant que parties d'un "nom de chemin", mais j'ai finalement choisi de définir ce qui suit, comme solution:Maintenant, cela comprend tout ce qui
W
serait sélectionné. (EssayezviW
une chaîne dans VIM.)De la documentation:
<cWORD> is replaced with the WORD under the cursor
Astuce: En utilisant
gx
en mode visuel , il ouvrira la chaîne sélectionnée visuellement (quelle que soit la configuration ci-dessus).la source
/
, il est d'abord téléchargé (aveccurl
) puis ouvert. En supprimant la fin/
, l'URI est directement ouvert dans le navigateur.'isfname'
option, qui n'inclut pas?
par défaut un caractère de nom de fichier valide. La modification de cette option nécessite des précautions car elle ne peut pas être définie localement dans le tampon. À moins que NetRW ne modifie cette option, cela explique pourquoi les URL des OP ne fonctionnent pasgx
. Peut-être qu'il y a une différence dans les versions de NetRW utilisées, ce qui expliquerait le comportement différent de Carpetsmoker.