web-dev-qa-db-fra.com

Compilation du code de Vim

Nouveau à vim et et je souhaite pouvoir compiler le code de l'intérieur vim sans exécuter de nouveau terminal et appeler le compilateur.

Comment puis-je faire ça? Notez que cette exigence n'est pas limitée à gcc uniquement, je dois parfois appeler python aussi sur le script actuel que je travaille, de sorte que vous obtenez l'idée ...

18
user4793

Écrivez un Makefile, vous pouvez simplement:

:make

de l'intérieur vim. Et si la compilation échoue:

:copen

vous montrera des avertissements et des erreurs. Les sélectionner vous mèneront au fichier et à la ligne appropriés.

26
chris

Dans VIM, le fichier actuel peut être appelé %, donc

:!python %

Voir :he cmdline-special (ou ici )

12
glenn jackman

Si vous n'aimez pas les maquillages pour une raison quelconque, vous pouvez appeler n'importe quelle commande avec :!

Par exemple, vous pouvez utiliser ":! Javac * .java && Java FOO" Pour compiler et exécuter un programme simple Java Programme. Vous pouvez également appeler d'autres systèmes de construction. (Scons, Cmake, ...) De cette façon.

6
stribika

Essayez le plugin - QuickRun pour Vim. La page comprend un lien vers Github, qui est la dernière version et qui est ce que j'utilise.

L'avantage d'utiliser ce plugin par opposition à faire :!, la sortie de la commande sera collectée et représentée dans une fenêtre fractionnée.

De plus, par défaut, le plugin accrochera votre instance VIM lorsque vous lui demandez d'exécuter une commande, mais il peut être configuré pour exécuter la commande de manière asynchrone, ce que je fais. Lisez la documentation pour plus de détails.

3
Shrikant Sharat

J'utilise un vim qui a Python Interprète compilé.

I Source A python fichier qui a cette fonction:

def pyterm(filename="", interactive=1):
    cmd = "%s %s %s " % (PYTHON, "-i" if interactive else "", filename)
    if "DISPLAY" in os.environ:
        return run_config(os.environ.get("XTERM"), cmd)
    else:
        return os.system(cmd)

Et mappez-le à un raccourci clavier:

nmap ;ru :update<CR>:python pyterm(vim.current.buffer.name, 0)<CR>
nmap ;ri :update<CR>:python pyterm(vim.current.buffer.name, 1)<CR>

J'ai déjà défini des variables d'environnement pour déterminer le terminal exact à exécuter si vous utilisez GVIM ou dans le même terminal sinon dans un X.

Ensuite, je ne fais que taper '; ri' dans A Python tampon pour l'exécuter (généralement pour le tester).

3
Keith

Vim peut être utilisé pour compiler à l'aide de GNU FAIT sur le fichier actuel - même s'il n'y a pas de maquillage pour le fichier (pour plus de détails, voir ICI ):

:make %:r

De cette façon Vim vous permet d'accéder au QuickFix Commentaires d'erreur du compilateur (:help quickfix) liste - :cn Erreur suivante, :cp Erreur précédente, :cw Nouvelles erreurs d'inscription de fenêtre.

Si vous n'avez pas eu GNU FAIT, vous pouvez définir le makeprg Variable (Changement de g ++ si vous êtes compilé C++):

:se makeprg=gcc\ -o\ %<\ %

ensuite, utilisez la commande Vim pour compiler le fichier actuel et obtenir A Quickfix Liste des erreurs dans Vim:

:make

Edit: Si vous souhaitez également exécuter l'exécutable compilé de Vim, vous pouvez le faire ('!' Exécuter, '%: R' est le nom de fichier sans son suffixe):

:!./%:r
2
Pierz

En cas de GCC, python, etc., vous pouvez l'appeler avec un colon-bang (:!)

Par exemple. :!python something.py

1
the JinX
!gcc file.c && ./a.out

Cela compilera votre fichier C et exécutera l'exécutable demandant la saisie de la fenêtre Vim Vim.

0
Hasil Sharma

Concernant le cas particulier de code source de compilation.

Et si vous avez quelque chose qui peut compiler python, définissez makeprg en conséquence.

0
Luc Hermitte