Wie unterdrücke ich die Meldung "2 zu bearbeitende Dateien" in vimdiff?


11

'vimdiff ab' druckt immer "2 zu bearbeitende Dateien". Das will ich nicht sehen. Wie kann ich das vermeiden?

Hier ist ein Beispiel:

⚡ vimdiff  a b                                                                                                                               
2 files to edit

Ich möchte vimdiff aus einem Bash-Skript verwenden und diese Ausgabe nicht sehen


1
Sie können es natürlich einfach mit starten 2>/dev/null. Warum brauchst du das? Es scheint so ein kleiner Ärger zu sein. Könnten Sie, völlig irrelevant, Ihre $ PS1 teilen? Was ist der Charakter, den Sie als Eingabeaufforderung verwenden?
Terdon

1
vimdiff ab 2> / dev / null funktioniert bei mir nicht.
Eric Johnson

Ich stecke nur das Unicode-Zeichen hinein. Meine $ PS1 ist hier definiert: github.com/kablamo/dotfiles/blob/master/links/.bash/prompt.sh
Eric Johnson

Nett, danke :). Und Sie haben Recht, die Umleitung von STDERR scheint nicht zu funktionieren. Ich dachte, dass es so ist, aber ich habe die Linie einfach nicht gesehen.
Terdon

Die Antwort scheint zu sein , hier . Lesen Sie unbedingt die Kommentare.
Terdon

Antworten:


3

Wenn Sie sich die vim-Quelle ansehen, sieht es so aus, als ob diese Nachricht nur unterdrückt werden kann, wenn Sie die ausführbare Datei als exund unter Verwendung ihrer -sOption starten oder wenn Sie keine Konsole haben.

Keiner der beiden Ansätze funktioniert für unterschiedliche.

Die Nachricht wird jedoch nur ausgegeben, wenn in der Befehlszeile mehr als eine Datei angegeben ist.

Also lasst es uns austricksen:

vim a -c "vert diffsplit b"

Welche im Grunde sagt , „Edit - Datei eines mit vim, und sobald ein geladen wird, eine vertikale Teilung mit Datei öffnen , b und diff sie“.


Hey das funktioniert! Super, danke! Jetzt erinnere ich mich, wo ich das wollte. Eine gute Nachricht ist, dass ich denke, dass es immer noch nützliche Informationen für mich sind.
Eric Johnson

Wenn Ihre zweite Datei ein Leerzeichen im Pfad oder Dateinamen enthält, funktioniert diese Lösung nicht. Ich habe es umgangen, indem ich stattdessen vim mit dem Flag -d aufgerufen und die Ausgabe wie folgt an / dev / null gesendet habe (Die Anführungszeichen übergeben die Argumente korrekt mit Leerzeichen.): Vim -d "$ a" "$ b"> / dev / null
DevDaddyNick

@DevDaddyNick Versteckt das nicht alles für dich? Es funktioniert für mich zshals Shell mit oh-my-zshbasierter Konfiguration.
Codelahoma

Ja, ich habe später herausgefunden, dass meine Lösung nur funktioniert, wenn Sie Vim nicht im Terminal verwenden. Ich habe Macvim verwendet, aber als ich diese Lösung das nächste Mal ausprobierte, als SSH auf einem anderen Computer installiert wurde, wurde Vim insgesamt unterdrückt.
DevDaddyNick

Für alle anderen, die sich im Code umsehen
möchten


-1

Laut diesem Beitrag auf SO sollte das Einstellen in Ihrem vimrc den Trick machen:

set shortmess=filnxtToO

3
Entschuldigung, das funktioniert auch bei mir nicht, wenn ich --noplugin benutze. Ich bekomme immer noch eine Nachricht. Ich spreche nicht über die Nachricht im Editor. Nachdem Sie den Editor geschlossen haben, gibt es eine Nachricht und das ist, was ich loswerden möchte. Vielen Dank
Eric Johnson
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.