3 votes

fermeture de vim Windows en attente d'ouverture

Je sais que je peux fermer tous les tampons ouverts dans vim par :qall.

Je veux fermer l'événement aux tampons d'ouverture en attente.
J'ai un problème lors de la révision de mes modifications dans le bac à sable de P4. Lorsque j'ai des modifications dans plusieurs fichiers et que j'essaie de revoir mon code avec "P4 diff" et que je règle mon P4DIFF sur vimdiff.
Il ouvre un par un vimdiff de tous les fichiers modifiés. Maintenant, si j'ai 10 fichiers ouverts et qu'après avoir examiné 2 fichiers, je veux fermer le diff pour les 8 fichiers restants. Comment faire ?

Merci,

0voto

Ehtesh Choudhury Points 1395

Cela ressemble à un travail pour hâtivement apprenez Vimscript ! En particulier, le :bufdo , if y match déclarations !

Essayez ce qui suit :

:bufdo if match(expand("%"), ".vim") >= 0 | bw | endif
  • bw est pour buffer wipe en mode Ex (le : opérateur)
  • expand("%") renvoie le nom du tampon actuel
  • match(string, pattern) trouve l'indice d'un pattern en string
  • | Si vous êtes en mode "Ex", les lignes séparées de l'ordinateur ne sont pas utilisées.

Cela correspond aux tampons qui contiennent .vim dans leurs noms de fichiers et ferme ces tampons.

Je suppose qu'il s'agit de tampons temporaires qui sont introduits dans le système vimdiff ils n'auraient pas de noms de fichiers pour commencer. Vous pouvez peut-être utiliser bufnr(".") pour afficher le numéro du tampon actuel. Vous pouvez ensuite fermer tous les tampons antérieurs ou postérieurs à un certain nombre.

Certains plugins permettent probablement de manipuler davantage la mémoire tampon. J'ai envisagé d'adopter l'un des trois plugins suivants qui aident à gérer les plugins :

  • LustyExplorer
  • FuzzyFinder
  • minibufexpl Je ne peux pas parler des mérites, mais je les ai entendus mentionnés à plusieurs reprises sur Internet et sur IRC.

0voto

sehe Points 123151

Je suppose que vous ouvrez vim avec un certain nombre d'arguments (connus sous le nom de... liste d'arguments).

Vous devriez probablement le réinitialiser :

 :args %

Vous pouvez également gérer la liste de manière sélective ( :argdelete ). Pour plus d'informations : :he arglist

0voto

sanmiguel Points 1235

DISCLAIMER : Je n'ai pas utilisé perforce, j'ai donc dû faire une hypothèse : lorsque plusieurs fichiers ont des modifications non validées, il se comportera comme beaucoup de VCS et lancera la commande diff configurée (dans ce cas, vimdiff). sur chaque fichier modifié à tour de rôle (Je pense que c'est ce que vous vouliez dire par "ouvre un par un vimdiff de tous les fichiers modifiés").

Si c'est le cas, vim n'aura aucune référence aux fichiers restants lorsqu'il affichera les modifications d'un fichier particulier, donc aucune astuce dans une seule session de vim ne vous aidera.

Si vous êtes prêt à modifier votre flux de travail, vous pouvez peut-être faire quelque chose avec ce script que j'ai trouvé dans vim : http://www.vim.org/scripts/scripts.php?script_id=240

Il prétend s'inspirer de l'interface graphique du P4, ce qui devrait lui permettre de s'adapter à votre utilisation. D'après l'aperçu du script, il semble qu'il devrait être capable de vous montrer un résumé des fichiers qui ont été modifiés et vous permettre de voir les changements.

Si rien de tout cela ne vous convient, vous pouvez toujours essayer la vieille méthode préférée Ctrl-C immédiatement après avoir fermé une session vimdiff pour un fichier.

0voto

Zxcv Mnb Points 338

C'est un mauvais hack mais je le mets ici car aucune autre réponse n'a fonctionné pour moi.

Ajoutez "qall" sans qoutes en haut de votre .vimrc .

:e ~/.vimrc
:source ~/.vimrc
:q

Tous les fichiers se fermeront automatiquement après leur ouverture.

Ensuite, ouvrez vimrc dans emacs ou sed et supprimez qall.

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