2016-09-30 4 views
0

Wenn ich ein Stück Code schreiben, dann öffnen Sie es mit Visual Studio oder erhabenen Text 3. Der Code wird das ursprüngliche Format verlieren.
Auch wenn ich formatiert von anderen Quellen kopieren und in Emacs einfügen, wird das Format gebrochen. Die gleiche Sache passiert, wenn Code in andere Quellen von Emacs eingefügt wird.
Wie löst man es?Code in Emacs verliert Format

+1

Nicht genug Informationen, um zu verstehen, was Sie unter "verliert Format" verstehen, aber ein wahrscheinlicher Verdächtiger ist Tabulatorzeichen. Stellen Sie sicher, dass auf der Quell- und Zielseite übereinstimmende Definitionen von Tabstoppzeichen vorhanden sind - unabhängig davon, ob Tabulatorzeichen beibehalten werden und wenn nicht, wie viele Leerzeichen ein Tabulatorzeichen ersetzen. –

+0

Was @YuriSteinschreiber sagte. Und zeigen oder beschreiben Sie, was Sie mit "gebrochenes Format" meinen, in beiden Richtungen. Stellen Sie ein Schritt-für-Schritt-Rezept zur Verfügung, um den Effekt zu reproduzieren, beginnend mit 'emacs -Q' (keine Init-Datei). – Drew

Antwort

0

Schwer zu sagen, was definitiv ohne ein konkretes Beispiel vor sich geht, aber es hört sich so an, als könnten mehrere Faktoren im Spiel sein.

In diesem Anwendungsfall ist Emacs nur ein Editor, der textbasierte Dateien manipuliert. Soweit Quellcode anders als in anderen Editoren und IDEs für den gleichen Textinhalt in Ihren Puffern angezeigt wird: Diese Formatierung wird meistens, abhängig von der Datei, von einem Major und einem oder mehreren Untermodi gesteuert.

Sie können die aktuellen Modi durch Eingabe von C-h m sehen. Diese Modi haben Variablen, die Sie anpassen können, die beispielsweise die Einrückungsstufen steuern. Es ist möglich, dass Ihre Konfigurationseinstellungen nicht mit denen anderer Editoren übereinstimmen.

Wenn das der Fall ist, wenn Sie zum Beispiel eine neue Zeile eingeben, könnte Emacs die Leerzeichen von umschließenden Code-Blöcken im laufenden Betrieb ändern. Dies wäre ausgeprägter, wenn Emacs Leerzeichen in Tabs konvertieren würden oder umgekehrt. Sie können Registerkarten mit (setq-default indent-tabs-mode nil) loswerden, die mit interop helfen sollten, da die meisten Editoren im Allgemeinen Registerkarten in Leerzeichen konvertieren.