Solution pour les personnes qui ont déchargé netrw
C'est une solution pour les personnes qui ont supprimé netrw
( :help netrw-noload
) dans vim/neovim. Par exemple, ils utilisent un gestionnaire de fichiers différent comme vim-dirvish
TLDR :
:!open <c-r><c-a>
ou carte gx
:
nmap gx :!open <c-r><c-a>
Donc, juste un peu de contexte :
Je cherchais aussi une solution à ce problème car j'ai supprimé complètement netrw du chargement de vim et je l'ai remplacé par vim-dirvish
. Ce plugin a environ 500~ LOC par rapport à netrw
's (11 000+ LOC) .
Je n'utilise pas beaucoup l'édition à distance donc vim-dirvish
est assez puissant pour gérer mon flux de travail (il est en fait plus rapide que netrw
~ l'auteur prétend que c'est 2x, je pense que c'est plus rapide que ça - c'est vraiment instantané ) très utile sur les grosses bases de code/référentiels. Je l'ai même essayé dans un repo de 10K fichiers, en listant les fichiers par l'intermédiaire de -
toujours instantané ! Quelqu'un a testé vim-dirvish
contre Nerdtree
vous pouvez voir la différence.
J'ai laissé tomber vim-vinegar
aussi parce que vim-dirvish ont le -
de toute façon, et la plupart de la configuration de vim-vinegar
es netrw
spécifiques. C'est juste qu'il n'en a pas besoin. Deux oiseaux dans une seule pierre !
La beauté de ce plugin est qu'il embrasse la philosophie de VIGNE (Vim n'est pas Emacs). Il exploite la puissance d'autres programmes dans le terminal pour effectuer des manipulations de fichiers, au lieu d'essayer de tout faire par lui-même. La partie importante est de savoir comment ces programmes externes interagissent naturellement avec vim. Et cela est obtenu par :Shdo
et il a une clé pratique de .
(commande par points qui est un moyen mnémotechnique pour la commande de répétition), faites-le sur les deux sélections ou sur la ligne en cours sur une carte de crédit. vim-dirvish
tampon. Et le type !rm
pour enlever, !mv
pour le renommage.
Depuis que j'ai désactivé netrw, ( :help netrw-noload
) Je me suis retrouvé à atteindre gx
de temps en temps. Je ne voulais pas charger un plugin pour obtenir la gx
retour de fonctionnalité.
Maintenant pour la solution, il y a une liaison en mode commande, ctrl-r puis ctrl-a ( :help c_CTRL-R_CTRL-A
), pour coller ce que vous avez dans votre curseur sur la ligne de commande, donc si vous combinez cela avec :!xdg-open
/ :!open
(pour Mac), vous êtes pratiquement prêt.
Il y a une raison pour laquelle :w
n'a pas de fixations normales. Je suis surpris que la plupart des solutions n'exploitent pas le flux de travail des commandes, j'utilise beaucoup ex-command, :s
, :g
, :v
, :argdo
, :cdo
et ses amis. En combinant cela avec différents modes, vous exploitez toute la puissance de vim. Ne restez donc pas dans un seul mode, essayez d'exploiter toute la puissance de vim.
Donc, le flux de travail complet. Pendant que vous avez votre curseur au dessus de l'url, c'est juste une seule étape :
:!open <c-r><c-a>
Remarquez le !
ce qui indique qu'il faut tirer parti de la puissance des programmes externes à vim. VIGNE !
Si vous voulez le gx
fonctionnalité de retour, vous pouvez simplement cartographier en utilisant la même commande :
nmap gx :!open <c-r><c-a>
J'aime rendre mes fixations silencieuses, donc ajouter des <silent>
y :sil
fera l'affaire ( :help :map-silent
)
nmap <silent>gx :sil !open <c-r><c-a><cr>
Note sur les programmes spécifiques à la plate-forme pour ouvrir une url :
- Mac a
:!open
- Linux a
:!xdg-open
- Windows (WSL2) a
:!wslview
J'utilise les trois plateformes et elles fonctionnent très bien. Vous pouvez simplement utiliser l'une d'entre elles pour vos liaisons vim, par exemple. :!open
et alias dans votre bashrc/zshrc/fish config
le site open
à n'importe quel programme spécifique à la plateforme que vous avez.
eg. alias open = wslview
De cette façon, mon vimrc
reste agnostique par rapport à la plate-forme, et je m'occuperai des incohérences par l'intermédiaire de bashrc/zshrc/fish config
.
0 votes
Sous le curseur de texte ou le curseur de la souris ?
0 votes
Le curseur de texte ... mais si vous connaissez un moyen de le faire sous le curseur de la souris, ce serait également cool.
1 votes
Le clic du bouton central de la souris sur un lien dans vim a toujours fonctionné pour moi, je ne sais pas comment, cependant
2 votes
Le clic intermédiaire pour ouvrir est probablement une fonctionnalité du terminal, et non de vim.
2 votes
Notez que
gx
semble complètement cassé dans vim 8.2 à cause d'un bogue : vi.stackexchange.com/questions/22459/