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

Eric Johnson
la source
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".

codelahoma
la source
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

Définissez dans votre .vimrc

set shortmess=at

Plus de conseils et de trucs .

Andriy Tykhonov
la source
3
Cela ne fonctionne pas pour moi. Je soupçonne que cela n'affecte que les messages dans vim et non sur la ligne de commande.
Eric Johnson
-1

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

set shortmess=filnxtToO
terdon
la source
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