Ich habe den folgenden Befehl in meinem vimrc:
execute "set path+=".getcwd()."/**"
Es funktioniert gut, wenn das aktuelle Arbeitsverzeichnis wie ist /home/tamlok/my_work/
. Wenn das Verzeichnis jedoch Leerzeichen enthält, wie z. B. D:\Program Files\vim\
, wird sich vim beschweren.
Ich nehme an, dass ich dies mit der substitute()
Funktion beheben kann, um alle Leerzeichen durch maskierte Leerzeichen zu ersetzen. Was würde ein erfahrener Vimmer hier tun?
Ein weiteres Problem ist das \
in Windows. Wenn getcwd()
bekommt D:\Program Files\vim\
, muss ich das entkommen müssen \
mit \\
oder ersetzen Sie es durch /
?
Im Moment gehe ich so vor:
let mycwd=substitute(getcwd(), '\\', '/', 'g')
let mycwd=substitute(mycwd, ' ', '\\ ', 'g')
execute "set path+=".mycwd."/**"
Ist das in Ordnung? Jede Hilfe wird geschätzt! Vielen Dank!
/
das gleiche wie `\` im Dateipfad in GVim unter Windows?fnameescape()
undshellescape()
. Ersteres wird verwendet, wenn Argumente in der Befehlszeile von Vim übergeben werden, damit sie nicht von Vim belästigt werden. Letzteres wird verwendet, wenn Argumente an externe Befehle übergeben werden, damit diese nicht von der Shell belästigt werden. Unter Windows gibt es auch einenshellslash
, der einen großen Einfluss auf die Anzahl der Haare auf Ihrem Kopf hat, wenn Sie sich jemals mit!command
Freunden anlegen müssen .Ich hatte das gleiche Problem. Versuchen Sie, nur
/
in Pfaden zu verwenden, und entkommen Sie solchen Leerzeichen\
. Zum Beispiel füge ich diese Zeile in mein vimrc ein:Wenn Sie befehlen
:echo &rtp
, können Sie sehen:Beachten Sie, dass hier kein
\
Leerzeichen vor steht.quelle