J'ai la commande suivante dans mon vimrc:
execute "set path+=".getcwd()."/**"
Cela fonctionne bien si le répertoire de travail actuel est similaire /home/tamlok/my_work/
. Cependant, si le répertoire contient des espaces, tels que D:\Program Files\vim\
, vim se plaindra.
Je suppose que je peux résoudre ce problème en utilisant la substitute()
fonction pour remplacer tous les espaces par des espaces échappés. Que ferait un vimmer expérimenté ici?
Un autre problème est \
dans Windows. Si getcwd()
obtient D:\Program Files\vim\
, dois-je échapper \
à \\
ou le remplacer par /
?
Pour l'instant je le gère comme ceci:
let mycwd=substitute(getcwd(), '\\', '/', 'g')
let mycwd=substitute(mycwd, ' ', '\\ ', 'g')
execute "set path+=".mycwd."/**"
Est-ce que ça va? Toute aide est appréciée! Merci beaucoup!
/
la même chose que `\` dans le chemin du fichier dans GVim sous Windows?fnameescape()
etshellescape()
. Le premier est utilisé lors du passage d'arguments sur la ligne de commande de Vim, afin qu'ils ne soient pas molestés par Vim. Ce dernier est utilisé lors du passage d'arguments à des commandes externes, afin qu'ils ne soient pas agressés par le shell. Sous Windows, il y en a aussishellslash
, qui aura une influence majeure sur le nombre de cheveux sur votre tête si vous avez besoin de jouer avec!command
vos amis.J'ai eu le même problème. Essayez simplement de l'utiliser
/
dans les chemins et échappez aux espaces comme celui-ci\
. Par exemple, j'ajoute cette ligne dans mon vimrc:Que si vous commandez,
:echo &rtp
vous pouvez voir:Notez qu'il n'y a pas d'
\
espace avant.la source