vim beklagt sich über Farbe none in AnsiEsc # AnsiEsc

517
PVitt

Ich habe Mercurial angewiesen, vim als Standardeditor zu verwenden:

[ui] editor = /opt/local/bin/vim 

Das referenzierte vim wurde über MacPorts installiert:

$ port installed | grep vim vim @8.0.0596_0+huge (active) 

Beim Aufruf von vim in der Kommandozeile lande ich auch bei der über MacPorts installierten:

$ which vim /opt/local/bin/vim 

Wenn ich eine Datei mit Mercurial vergleichen möchte, erhalte ich einige seltsame Fehler, je nach fehlender Farbe:

Fehler beim Verarbeiten der Funktion AnsiEsc # AnsiEsc:

Zeile 527:

E254: Farbe kann nicht zugeordnet werden

Drücken Sie ENTER oder geben Sie den Befehl ein, um fortzufahren

Ich habe keine Ahnung, woher das kommt. Meine erste Idee war das zuletzt installierte Plugin. Ich entfernte es, aber nichts änderte sich. Dann stocherte ich in meiner .vimrc herum, auch ohne Erfolg. Auch die Umstellung von ~ / .vimrc und ~ / .vim auf mehr oder weniger Vanillevim hat nicht geholfen. Also bin ich jetzt festgefahren.

:scriptnamesenthält nicht AnsiEsc und es wurde findauch kein Ergebnis gefunden. Auch grepin den Ordnern, scriptnamesdie Skripts enthalten sollten, ergab dies keine Übereinstimmung.

Wie beseitige ich diese Fehlermeldung? Was ist AnsiEsc (wenn nicht ein Vim-Plugin), wer verwendet es und warum? Oder wie kann ich herausfinden, warum vim AnsiEsc lädt und warum es diesen Fehler hat?

0

1 Antwort auf die Frage

0
Ingo Karkat

Eine einfache Websuche hätte Sie zur Pluginseite von vim.org geführt . AnsiEsc ist ein Plugin, das die Syntaxhervorhebung erweitert, um ANSI-Escape-Codes (ähnlich ^[[01;42;31m) zu interpretieren . Unix-Terminals verwenden diese, um Textattribute und -farben hinzuzufügen. Wenn Sie die Ausgabe eines Befehls erfassen und diese in Vim öffnen, kann das Plugin seine Magie ausüben, obwohl es normalerweise manuell ausgelöst werden muss :AnsiEsc.

Zum Fehler: Das könnte ein Fehler im Plugin sein. Zuerst würde ich die neueste Version überprüfen, die auf der Homepage des Autors gefunden wurde . Wenn Sie dies überhaupt nicht möchten, deinstallieren Sie es! Wie? Nun, das hängt davon ab, ob Sie einen Plugin-Manager verwenden . Wenn nicht, entfernen Sie einfach plugin/AnsiEscPlugin.vimund autoload/AnsiEsc.vimund doc/AnsiEsc.txtaus Ihrem ~/.vim/Verzeichnis (oder aus dem Systemverzeichnis, falls es für alle Benutzer installiert ist. :scriptnamesSie erhalten einen Hinweis, wo sich dies befindet).

Verwenden Sie eine Vim-Distribution wie spf-13 und Janus ? Diese locken Sie mit einer schnellen Installation und sofort einsatzbereiten Einstellungen, aber Sie zahlen den Preis mit erhöhter Komplexität (Sie müssen sowohl das Laufzeitschema von Vim als auch die willkürlichen Konventionen der Verteilung kennen) und die Inflexibilität (die Verteilung kann dazu führen) einige Dinge einfacher, aber andere Dinge sehr schwierig). Vim ist unglaublich anpassbar, die Verwendung einer anderen Person macht keinen Sinn.

Danke für deine Antwort. AnsiEsc ist jedoch nirgendwo installiert. Ich habe bereits gesagt, dass das Verschieben von ~ / .vim / away nichts geändert hat, auch: Skriptnamen zeigen nicht an, dass AnsiEsc irgendwo installiert wird. Und nein, ich habe keine Distribution benutzt, als ich darauf aufmerksam machte, dass vim über MacPorts installiert wurde. Vielen Dank für Ihre Beiträge, auch wenn dies mein Problem nicht gelöst hat. Kann es sein, dass es in einem anderen Skript enthalten ist? PVitt vor 7 Jahren 0
Wenn Vim den Fehler "Fehler beim Verarbeiten der Funktion AnsiEsc # AnsiEsc" ausgibt, muss sich irgendwo eine Datei mit dem Namen "AnsiEsc.vim" befinden (Regeln für das automatische Laden). Nach diesem Fehler sollte `: scriptnames` seinen Speicherort anzeigen. Ingo Karkat vor 7 Jahren 0
find und grep haben auch kein Ergebnis erzielt. Ich bin ein bisschen verwirrt, warum vim AnsiEsc überhaupt verwendet. PVitt vor 7 Jahren 0
Sie könnten versuchen, ein Protokoll mit `vim -V20vimlog` zu erfassen. Vielleicht zeigt das mehr Details. Ingo Karkat vor 7 Jahren 0
Ok, ich habe es herausgefunden. Es stammt aus dem Vimpager-Plugin, das AnsiEsc opt-out unterstützt. Vielen dank für Deine Hilfe! PVitt vor 7 Jahren 0
Ah, schön, ich bin froh, dass ich helfen konnte. Bitte akzeptieren Sie die Antwort, indem Sie auf das Häkchen klicken. Auf diese Weise wird die Frage als geschlossen markiert und Sie erhöhen Ihre Chancen, Antworten auf zukünftige Fragen zu erhalten, da dies zeigt, dass Sie sich für die Antworten interessieren. Ingo Karkat vor 7 Jahren 0