Comment supprimer le message «2 fichiers à modifier» dans vimdiff?


11

'vimdiff ab' affiche toujours "2 fichiers à éditer". Je ne veux pas voir ça. Comment puis-je l'éviter?

Voici un exemple:

⚡ vimdiff  a b                                                                                                                               
2 files to edit

Je veux utiliser vimdiff à partir d'un script bash et je ne veux pas voir cette sortie


1
Vous pouvez bien sûr simplement le lancer avec 2>/dev/null. Pourquoi avez-vous besoin de cela? Cela semble être une gêne si mineure. Oh, sur une note complètement hors de propos, pourriez-vous partager votre $ PS1? Quel est le caractère que vous utilisez comme invite?
terdon

1
vimdiff ab 2> / dev / null ne fonctionne pas pour moi.
Eric Johnson

Je colle juste le caractère unicode là-dedans. Mon $ PS1 est défini ici: github.com/kablamo/dotfiles/blob/master/links/.bash/prompt.sh
Eric Johnson

Bien, merci :). Et vous avez raison, la redirection de STDERR ne semble pas fonctionner. Je pensais que c'était le cas, mais je n'ai tout simplement pas vu la ligne.
terdon

La réponse semble être . Assurez-vous de lire les commentaires.
terdon

Réponses:


3

En regardant à travers la source de vim, il semble que ce message ne peut être supprimé que lors du lancement de l'exécutable exet de l'utilisation de son -soption, ou en l'absence de console.

Aucune des deux approches ne fonctionnera pour diffing.

Toutefois, le message n'est émis que si plusieurs fichiers sont spécifiés sur la ligne de commande.

Alors, trompons-le:

vim a -c "vert diffsplit b"

Ce qui dit fondamentalement "Éditez le fichier a avec vim, et une fois que a est chargé, ouvrez une division verticale avec le fichier b et différez-les".


Hé ça marche! Super merci! Maintenant, je me souviens où c'était que je voulais cela. La bonne nouvelle est que je pense que ses informations sont toujours utiles pour moi.
Eric Johnson

Si votre deuxième fichier a un espace dans le chemin ou le nom de fichier, cette solution ne fonctionne pas. J'ai contourné ce problème en appelant plutôt vim avec l'indicateur -d et en envoyant la sortie à / dev / null, comme ceci (les guillemets passeront correctement les arguments avec des espaces.): Vim -d "$ a" "$ b"> / dev / null
DevDaddyNick

@DevDaddyNick Cela ne vous cache-t-il pas tout à fait vim? Il le fait pour moi, en utilisant zshcomme mon shell, avec oh-my-zshune configuration basée.
codelahoma

Oui, j'ai découvert plus tard que ma solution ne fonctionne que lorsque vous n'utilisez pas Vim dans le terminal. J'utilisais Macvim, mais la prochaine fois que j'essayais cette solution lorsque SSH dans une autre machine, il supprimait complètement Vim.
DevDaddyNick

Pour toute autre personne souhaitant fouiller dans le code, la ligne pertinente dans le code à la date d'aujourd'hui est ici dans main.c
xdhmoore


-1

Selon ce post sur SO, la définition de cela dans votre vimrc devrait faire l'affaire:

set shortmess=filnxtToO

3
Désolé, cela ne fonctionne pas non plus pour moi, même lorsque j'utilise --noplugin. Je reçois toujours un msg. Je ne parle pas du msg dans l'éditeur. Après avoir fermé l'éditeur, il y a un msg et c'est ce dont je veux me débarrasser. Merci cependant
Eric Johnson
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.