Essayer de comstackr et de déboguer C ++ depuis Vim

J’ai appris C ++ et Allegro en utilisant Code :: Blocks sous Windows XP et j’ai récemment eu l’impression d’apprendre Vim. Cependant, je ne sais pas comment comstackr un programme “manuellement” (c’est-à-dire sans utiliser un IDE).

Pour comstackr à partir de Vim, je suis allé jusqu’à définir makeprg sur gcc, mais je crois comprendre que j’ai aussi besoin d’un fichier makefg. Qu’est-ce que c’est et comment en écrire un? Est-ce avec le makefile que je peux utiliser des librairies comme Allegro?

De plus, j’ai beaucoup aimé le débogueur CB (j’utilise gdb). Est-il possible de faire quelque chose de similaire avec Vim?

Je vous remercie.

Regardez MinGW . Je voudrais éviter Cygwin si vous avez seulement besoin de gcc et de make. Vous voudrez à la fois MinGW et MSYS. MSYS a un port Windows de make.

Si vous êtes intéressé par plus d’utlités Unix pour la ligne de commande Windows, je vous recommande CoreUtils .

Pour apprendre faire voir le manuel

Vous n’avez pas nécessairement besoin d’ un fichier Makefile, mais c’est le moyen préféré (et peut-être le plus sain) de comstackr du code sur des systèmes de type UNIX.

Je ne sais pas si GNU Make a un port Windows, mais vous pouvez probablement l’exécuter sous Cygwin .

Pour en savoir plus sur Make MakeFiles et GNU:

  • faire (Wikipedia)
  • GNU Make
  • GNU Make Manual

Voir aussi cette question: comstackr directement depuis vim

Édition obligatoire: je n’utilise pas Windows ou Cygwin. Vous voudrez peut-être prendre les conseils de epochwolf sur ce département.

Je ne suis pas expert en makefiles et en débogage, mais je sais que Vim vous permet de faire beaucoup de choses. Par exemple, si vous voulez comstackr un fichier avec gcc, ce n’est pas très différent de la manière habituelle. En mode de mode normal:

:!gcc file.c -o file 

En fait, vous pouvez utiliser (presque) toutes les commandes système simplement en ajoutant “!” devant votre commande. gdb travaille également avec Vim

 :!gdb 

J’espère que cela vous aidera.

Pour intégrer vim avec devenv, vous pouvez utiliser devenv de Visual Studio pour compléter le projet dans vim. La commande comme suit:

 Devenv SolutionName /build SolnConfigName [/project ProjName [/projectconfig ProjConfigName]] 

Typiquement, le devenv devrait se trouver dans C: \ Program Files \ Microsoft Visual Studio 8 \ Common7 \ IDE. Définissez-le sur le chemin de l’environnement pour le rendre appelable depuis vim. Nous devons également faire en sorte que vim reconnaisse les messages d’erreur générés par l’outil de génération de ligne de commande devenv. Il suffit de mettre les lignes suivantes dans votre vimrc:

 " Quickfix mode: command line devenv error format au FileType cpp set makeprg=devenv.com\ /Build\ Debug\ *[SolutionName]* au FileType cpp set errorformat=\ %#%f(%l)\ :\ %#%t%[Az]%#\ %m 

Ensuite, vous pouvez utiliser: make pour comstackr et construire le programme à partir de vim.

EDIT1: Quelques favoris que vous pourriez trouver utiles:

Tutoriel GNU make (celui-ci utilise gcc et make, donc ça devrait aller dans votre allée)

Un autre

Port Win de certains utilitaires GNU que Can mentionnait; Je les utilise personnellement et je n’ai eu aucun problème avec eux sur la plate-forme Windows.


Oui, vous pouvez comstackr sans le makefile. Si votre programme est simple (par exemple, un seul fichier), vous pouvez le comstackr en appelant le compilateur et en incluant le nom du programme sur la même ligne (ne vous souvenez plus de la façon dont il fonctionne avec gcc). Bien sûr, pour faciliter les choses, cela peut être mappé sur une clé dans vim, vous n’avez donc pas à passer directement à l’invite de commande.

Si vous travaillez sur un projet plus important, composé de plusieurs fichiers, un makefile est utile. Il va “rechercher” à travers les fichiers, déterminer les dépendances, les inclure dans la construction, peut-être mettre les fichiers source dans un répertoire et le fichier exe résultant dans l’autre. Il s’agit donc plutôt d’un système de liaison et de construction que d’une simple compilation. Bien que la marque GNU mentionnée dans la réponse de Can Berk Guder soit populaire, il existe un certain nombre d’autres mesures pour “construire des fichiers Make” (“makefile” est devenu un type de synonyme pour ce type d’opération) – ici, vous pouvez voir d’autres options sur ce lien . Vim a un bon support pour: make, mais d’autres peuvent être facilement utilisés (il y a beaucoup de textes à ce sujet sur VimWikia .

Eh bien c’est ça. Juste mes 0,2 euros 🙂

Tant que vous avez installé GNU-make (avec cygwin ou mingw sous Windows), vous n’avez pas besoin d’écrire un fichier makefile pour les projets à fichier unique. Il suffit de courir :make de vim, et ça suffit.

Si votre projet est composé de plusieurs fichiers, vous devrez alors écrire un makefile (ou tout autre équivalent pour les scons, aap, (b) jam, ant, …), ajuster votre &makeprg en conséquence, et enfin appeler :make from vim. Voir la catégorie correspondante dans vimtips . Vous pouvez bien sûr exécuter le compilateur comme vous auriez utilisé un autre outil externe, mais vous perdriez la possibilité de passer directement à la ou aux lignes de l’erreur.

NB: si vous utilisez la version win32 de vim et gcc-cygwin, vous devrez traduire les messages d’erreur obtenus. J’avais l’habitude de maintenir un script perl à cet effet, il fait maintenant partie d’une suite plus grande (toujours en phase bêta)

En ce qui concerne votre question sur le débogage, cela ne peut pas être fait à partir de vim sous Windows pour le moment. Le seul débogueur pouvant être intégré à ce jour est gdb, mais uniquement sous linux; voir le projet pyclewn (.sf.net).

Je ne suis pas sûr du débogage, mais je connais un moyen facile de comstackr et d’exécuter le programme en cours en écrivant un petit plugin vim pour le faire.

http://pastebin.com/qc5Zp2P7

Il suppose que vous utilisez le compilateur g ++. Sinon, changez simplement le nom en compilateur que vous utilisez. Enregistrez ce fichier dans whereeveryouinstalledvim / ftplugin / cpp.vim

Pour comstackr et exécuter le programme actuellement ouvert, tapez simplement shift-e en mode non-édition.