4 votes

Je ne veux pas voir de tampon vide après makeprg dans VIM

En utilisant VIM, je veux exécuter le fichier sql actuel et voir les résultats. J'ai essayé ce qui suit ( ./manage.py dbshell est un wrapper Django sur psql )

nmap <silent> <Leader>r :make<CR>
autocmd FileType sql set makeprg=cat\ %\\\|./manage.py\ dbshell

Cela fonctionne bien. Mais après Appuyez sur ENTER ou tapez la commande pour continuer VIM m'indique toujours un tampon vide (il s'agit peut-être d'une liste d'erreurs). Comment éviter son ouverture ?

Si j'exécute la même chose en mode commande, le résultat sera conforme à mes attentes (sans tampons gênants).

:!cat %|./manage.py dbshell

Mon script contient une seule instruction select. Et le tampon magique ressemble à ceci : enter image description here

8voto

ZyX Points 26516

Il est probable qu'elle soit erronée 'errorformat' option. Essayez de faire

:make!

(avec bang !) et voyez si cette fenêtre apparaît. Si ce n'est pas le cas, c'est vrai et vous devez lire :h 'errorformat' et l'ajouter à 'make' . Ou tout simplement ne jamais utiliser de produit ordinaire :make sans bang et oublier de sauter aux erreurs (si ce script est capable de fournir des informations sur les erreurs).


Une autre idée : Pourriez-vous montrer la sortie de

:au ShellCmdPost,QuickFixCmdPre,QuickFixCmdPost

? Il peut aussi s'agir d'un problème de plugin ou de code vimrc qui est lancé lors de l'un de ces trois événements.


Par ailleurs, deux éléments des commandes que vous avez postées pourraient être améliorés. Premièrement, le mappage devrait être écrit comme suit nnoremap . Vous n'avez pas besoin de remappage ici et cela peut vous faire gagner du temps lorsque vous ajoutez un autre mappage à votre vimrc.

Deuxièmement, utilisez setlocal dans l'autocmd, et non set . Avec set vous définissez la valeur par défaut 'makeprg' pour tous les tampons qui seront ouverts après sql one.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X