Question Comment puis-je supprimer le message "2 fichiers à modifier" dans vimdiff?


'vimdiff a b' imprime 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


10
2018-02-01 14:21


origine


Vous pourriez bien sûr simplement le lancer avec 2>/dev/null. Pourquoi avez-vous besoin de cela? Cela semble être une contrariété 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
vimdiff a b 2> / dev / null ne fonctionne pas pour moi. - Eric Johnson
Je ne fais que coller le caractère unicode. Mon $ PS1 est défini ici: github.com/kablamo/dotfiles/blob/master/links/.bash/prompt.sh - Eric Johnson
Nice, merci :). Et vous avez raison, rediriger STDERR ne semble pas fonctionner. Je pensais que oui, mais je n'ai pas vu la ligne. - terdon
La réponse semble être ici. Assurez-vous de lire les commentaires. - terdon


Réponses:


En regardant à travers la source vim, on dirait que ce message ne peut être que supprimé lors du lancement de l'exécutable en tant que ex et en utilisant son -s option, ou en n’ayant pas de console.

Aucune des deux approches ne fonctionnera pour la différenciation.

Toutefois, le message est uniquement généré s'il existe plusieurs fichiers spécifié sur la ligne de commande.

Alors trompons-le:

vim a -c "vert diffsplit b"

Qui dit fondamentalement "Edit file une avec vim, et une fois une est chargé, ouvrez une scission verticale avec fichier b et diff les ".


3
2017-08-21 23:02



Hey ça marche! Génial merci! Maintenant, je me souviens où je voulais ça. Bonne nouvelle, je pense que ce sont toujours des informations utiles pour moi. - Eric Johnson
Si votre deuxième fichier contient un espace dans le chemin ou le nom de fichier, cette solution ne fonctionne pas. Je l'ai contourné en appelant à la place vim avec l'option -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 rien? Il fait pour moi, en utilisant zsh comme ma coquille, avec oh-my-zsh 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'ai essayé cette solution lors de SSH dans une autre machine, elle supprimait complètement Vim. - DevDaddyNick
Pour toute autre personne souhaitant explorer le code, la ligne pertinente du code à la date d'aujourd'hui est ici dans main.c - xdhmoore


Set dans votre .vimrc

set shortmess=at

Plus de trucs et astuces.


-1
2018-02-01 14:34



Cela ne fonctionne pas pour moi. Je soupçonne que cela affecte uniquement les messages à l'intérieur de vim pas sur la ligne de commande. - Eric Johnson


Selon ce post sur SO, mettre cela dans votre vimrc devrait faire l'affaire:

set shortmess=filnxtToO

-1
2018-02-01 15:51



Désolé, cela ne marche pas pour moi, même lorsque j'utilise --noplugin. J'ai toujours un msg. Je ne parle pas du msg dans l'éditeur. Après avoir fermé l'éditeur, il y a un message et c'est ce dont je veux me débarrasser. Merci quand même - Eric Johnson