Complètement liste des emplacements de sortie (lcl) créé par Syntastic ainsi le tampon principal lors de l'utilisation: q,: q! ou: wq! dans vim

StackOverflow https://stackoverflow.com/questions/4134027

  •  30-09-2019
  •  | 
  •  

Question

J'utilise le plugin Syntastic. J'ai quelques fichiers avec quelques erreurs (avertissements) que je ne peux pas changer. Quand j'ai un fichier ouvert avec des messages d'erreur, et je quitter le fichier (tampon) appuyant sur: q, les messages d'erreur sont encore visibles (un autre tampon), donc je dois appuyer sur:. Q deux fois pour quitter complètement lors de la modification d'un fichier

Alors, comment appuyez sur I: q une seule fois avec un fichier avec un tampon contenant mon dossier et un autre tampon (liste d'emplacement) contenant des erreurs Syntastic? J'ai cherché un peu et la commande pour fermer la liste des emplacements est : lcl .

Quand je sors un tampon avec: q, si la liste d'emplacement pour que le tampon est actif, je veux fermer avec la liste des emplacements à l'intérieur, appelant: lcl. Je lis un peu autocmd BufLeave et BufWinLeave et d'essayer de créer un mappage pour cela, mais Je ne peux pas savoir la différence entre les deux. Peut-elle aider quelqu'un me?

Remembering, :w, :q, :q!, :wq doit tous travailler comme prévu.

Était-ce utile?

La solution

Comme le travail lcl même s'il n'y a pas de fenêtre d'erreur, vous pouvez mapper q lcl et q

cnoremap q<cr> \|lcl\|q<cr>

Comme suggéré une abréviation semble mieux

cabbrev q lcl\|q

(notez le \ avant |, sans que cela ne l'abréviation puis quittez)

Autres conseils

Je me rends compte de cette question est ancienne et que la réponse a été acceptée il y a quelque temps. J'ai essayé d'utiliser la réponse acceptée, mais il ne semble pas fonctionner plus.

Je trouve cependant une ne solution de cette question , les autres devraient fonctionner pour cela.

En gros, utilisez un script pour vérifier s'il y a d'autres fenêtres restent ouvertes et si la dernière fenêtre restante est un emplacement liste, arrêter de fumer.

:autocmd WinEnter * if &buftype ==# 'quickfix' && winnr('$') == 1 | quit | endif

Je pense que cela peut ne pas être idéal, mais fonctionne assez bien dans l'intervalle.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top