Lorsque je travaille dans vim, mon répertoire de travail actuel (./) contient toutes mes sources. Je construis dans un objdir, appelons-le ./builddir/
. Lorsque je construis à partir de vim, en utilisant makeprg=make\ -C\ builddir
, les avertissements et les erreurs du compilateur ont tous un préfixe de ../
, ce qui signifie que vim amène le curseur à un fichier qui n'existe pas.Séparer srcdir et objdir avec vim et gcc
Si j'essaie une tactique différente, lancer vim à partir de l'objdir, alors je ne peux pas faire des commandes comme gf
ou :e myfile.h
simplement.
Existe-t-il un terrain d'entente où tout cela fonctionnera, comme donner à vim un second répertoire à partir duquel il cherchera s'il ne trouve pas les fichiers dans le répertoire de travail actuel? Ou peut-être que gcc utilise un préfixe différent?
Je ne peux pas faire ce travail tout. J'ai vérifié que ma ligne de commande fonctionne en dehors de vim, mais je ne peux pas faire le travail d'échappement, ne définissant pas makeprg directement, ni en utilisant l'instruction let que vous avez. –
Ok, j'ai eu ce travail en faisant de la commande un script bash, et en l'appelant via makeprg. Un autre échec pour vim. –
En fait, l'utilisation d'un script bash est une mauvaise idée - il tamponne trop l'entrée, ce qui n'est pas utile dans ce cas. Mais j'ai trouvé la syntaxe: 'let & makeprg. =" -C build_ \ 'hg qtop \' _DBG.OBJ 2> & 1 \\\ | sed 's, \\. \\ ./ ,, g' "' (et j'ai vérifié tous mes fuites - il apparaît correctement). –