2012-03-08 4 views
4

J'ai le mappage suivant dans mon fichier .vimrc. Je appuie sur F5 dans VIM, et il compile, quitte VIM, et exécute mon code. Lorsque le programme se termine, il me demande de "appuyer sur ENTRÉE ou entrer une commande pour continuer." Il me prend ensuite à un écran vide avec le texte (1 of 5): et la même invite "appuyez sur Entrée ou entrer une commande pour continuer". J'appuie sur enter et ça me ramène finalement à VIM. Ce comportement est cohérent dans tous les domaines. Y a-t-il un moyen de supprimer l'une de ces occurrences ou les deux? Peut-être que le mapping appuie deux fois sur ENTER après la fin du programme? Si c'est le cas, comment?Mappage Vim de compilation et exécution responsive

EDIT: Donc, j'ai réalisé en ajoutant deux autres <CR> ne résout pas tout à fait le problème. Dès que le programme se termine, il revient IMMÉDIATEMENT à VIM et je n'ai pas le temps d'examiner la sortie. Puis-je faire en sorte que le mapping attende que ME appuie sur la première entrée et appuie ensuite automatiquement sur la seconde entrée?

+0

Je ne vois pas ce comportement, juste une invite. Pouvez-vous poster votre .vimrc? – ergosys

Répondre

0

Est-ce que ce travail:

nmap <F5> :<C-U>silent make %:r<CR>:redraw!<CR>:!./%:r<CR>

Une solution plus, mais celui-ci vous permet également de voir les erreurs (reference) :

:function! MakeAndRun() 
:  silent make %:r 
:  redraw! 
:  if len(getqflist()) == 1 
:   !./%:r 
:  else 
:   for i in getqflist() 
:   if i['valid'] 
:     cwin 
:     winc p 
:     return 
:   endif 
:   endfor 
:  endif 
:endfunction 
:nmap <F5> :call MakeAndRun()<cr> 
+0

Votre première suggestion fonctionne parfaitement! J'appuie sur F5, il compile et s'exécute; après la fin, il attend que j'appuie sur enter (une fois!) avant de retourner au fichier. Merci! – skippr

1

Oui et oui (vous avez répondu à votre propre question):

:nmap <F5> :<C-U>make %:r && ./%:r<CR><CR> 
+0

Merci! Je n'avais pas réalisé le était le «ENTRER». Cela a soulevé un nouveau problème cependant. S'il vous plaît voir la question éditer. – skippr

0

Pour moi, cela fonctionne très bien:Il compile et passe immédiatement à vim, en affichant la fenêtre Quickfix. Aucun intermédiaire entre.

Questions connexes