Auf einer Amazon Linux-Instanz versuche ich, eine JAR-Datei über Putty remote zu bearbeiten. vim
bietet einen praktischen Navigator, der eine Eingabeaufforderung mit einer Liste der im JAR enthaltenen Dateien anzeigt:
> vim filename.jar
" zip.vim version v22
" Browsing zipfile /home/ec2-user/tigase/libs/tigase-muc.jar
" Select a file with cursor and press ENTER
453 01-14-2013 10:01 META-INF/MANIFEST.MF
110 01-14-2013 10:01 META-INF/maven/tigase/tigase-muc/pom.properties
4675 01-14-2013 10:01 META-INF/maven/tigase/tigase-muc/pom.xml
5751 01-14-2013 10:01 tigase/component/AbstractComponent.class
2337 01-14-2013 10:01 tigase/component/AbstractComponent$1.class
....
Nachdem ich jedoch eine Datei ausgewählt habe (z. B. AbstractComponent.class) und die Eingabetaste gedrückt habe, erhalte ich in vim:
caution: filename not matched: 5751 01-14-2013 10:01 tigase/component/AbstractComponent.class
und die Datei wird nicht geöffnet.
Als Randnotiz habe ich auch festgestellt, dass der Inhalt falsch formatiert ist , wenn ich das Glas (entweder mit unzip
oder jar
) extrahiere und eine extrahierte Datei mit vim öffne:
Êþº¾^@^@^@2^A^[^H^@ ^H^@
^H^@^K^H^@^U^H^@^V^H^@!^H^@#^H^@^^A^@) stanza already with type='...
^A^@^C()I^A^@^C()V^A^@^C()Z^A^@^F<init>^A^@^NDEFAULT_WRITER^A^@^WFE...
....
Irgendwelche Ideen, wie Sie das Fehler- oder Formatierungsproblem beheben können?
Antworten:
Dies ist wahrscheinlich ein bekannter Fehler im ZIP-Plugin von vim - das Plugin verarbeitet ZIP-Dateien, die ZIP-Kommentare enthalten, nicht richtig. Siehe zB diesen Mailinglistenbeitrag
Dies liegt daran, dass die meisten Dateien in einer JAR kompilierte Java-Klassendateien sind (Dateisuffix
.class
). Dies sind Binärdaten, und vim eignet sich nicht wirklich zum Bearbeiten, da vim ein Texteditor und kein Binäreditor ist .Sie können sie in vim mit dem
xxd
Befehl bearbeiten (siehe "Verwenden von xxd" in den vim-Dokumenten ), oder Sie können einen Hex-Editor wie bvi verwenden .In jedem Fall ist das direkte Anzeigen des Inhalts einer Klassendatei selten hilfreich, da Sie das binäre Klassendateiformat verstehen müssen, um sie lesen zu können.
Können Sie erklären, warum Sie versuchen, Dateien in einer JAR zu öffnen? Dann können wir vielleicht helfen.
quelle
So habe ich die Formatierungsprobleme gelöst.
Installieren Sie zuerst Emacs
Verwenden Sie dann den folgenden Befehl, um den Inhalt zu lesen
Wählen Sie den Inhalt aus und drücken Sie
Enter
Drücken Sie zum Speichern und Beenden des Editors Cx Cs (Strg + x, gefolgt von Strg + s).
Quelle: Verwendung des Emacs-Editors unter Linux
quelle
vim
.