Code falten in Emacs
Manchmal möchte ich einen Textblock falten. In Vim haben Sie leichtes Falten ohne Flaum. Ohne irgendwelche Sonderzeichen wie "Marker" oder Regex wie hinzufügen {{{
. Ich möchte eine Region auswählen und falten, ohne die Struktur zu verändern.
Wenn man sich umschaut, scheint es in Emacs bereits Fragen zum Code-Falzen zu geben. Jemand sagte, es gäbe "keine perfekte Lösung". Zum Beispiel habe ich in Vim einen Clip mit einfachem Codefolding erstellt:
Vim schlichtes Falten
+ Ziemlich einfach, wähle eine Region aus und falte sie.
+ Es ist hartnäckig. Wenn Sie den Puffer töten / schließen Sie Vim. Und öffne die Datei erneut, die Falten sind noch da.
+ Sie erhalten eine Hervorhebungsleiste, mit der Sie leicht sehen können, was gefaltet ist.
Es gibt viele andere Faltkonfigurationen für Vim. Ich bin glücklich mit Emacs, aber das ist eine Sache, die ich vermisse. Andere Alternativen, die ich ausprobiert habe, zum Beispiel HideShow:
Verstecken anzeigen
Böse Alternative mit hide-show minor mode
. Ich fand es unbrauchbar:
- Ich kann keine Region auswählen und falten. Es klappt auf Codeblöcken.
- Es gibt keine hohe Bar oder so, um Sie zu begleiten, es ist gefaltet. Man könnte es leicht übersehen.
- Es ist nicht hartnäckig. Wenn Sie die Datei erneut öffnen, sind die Falten verschwunden.
Es gibt ein anderes Paket, Falte dies :
Falten Sie das
- Es ist eine hübsche Alternative. Es kann jedoch zu Problemen mit dem Einzug kommen, da der Text unter der Falte neben der Falte platziert wird ... (?).
- Es ist in der Lage, die Region einfach visuell auszuwählen und zu falten. Aber es bricht die Unzulänglichkeit und die Übersicht wird durcheinander gebracht. Nicht sehr praktisch.
- Es gibt keine hohe Bar oder ähnliches, um Sie zu betreuen, es ist gefaltet. Man könnte es leicht übersehen.
Was ist das Problem?
Ich möchte nachvollziehen, wie Vim faltet. Aber als ich mich umgesehen habe, scheint es sehr schwierig zu sein, das in Emacs zu tun. Also frage ich mich, ob es irgendetwas in Emacs oder seiner Architektur gibt, das es schwierig macht, dies zu replizieren? Was sind die Grenzen?
quelle
Antworten:
Probieren Sie es aus
vimish-fold
.Eigenschaften
Batterien im Lieferumfang enthalten: Aktivieren Sie den Minor-Modus, binden Sie ein paar Befehle ein, und alles funktioniert.
Es funktioniert in ausgewählten Regionen.
Es ist hartnäckig: Wenn Sie eine Datei schließen, verschwinden Ihre Falten nicht.
Es ist nicht nur beständig, sondern lässt sich auch gut skalieren. Sie können Hunderte von Dateien mit vielen Falten ohne nachteilige Auswirkungen bearbeiten.
Es ist offensichtlich, welche Textteile gefaltet sind.
es bricht nicht Einrückung oder etwas;
es kann gerade entfaltete Falten wieder entfalten (oh, meine);
Für
avy
Paketliebhaber: Mit dieser Funktion können Sieavy
Text mit einer minimalen Anzahl von Tastenanschlägen falten!Verwendung
Erstellen Sie Bindungen für einige der folgenden Funktionen:
vimish-fold
- Grundlegende Faltung der ausgewählten Region;vimish-fold-unfold
- Sie müssen dies nicht wirklich binden, sondern nur verwenden, C-gwenn der Punkt auf der Überschrift steht, die den gefalteten Text darstellt.vimish-fold-unfold-all
- Trotzdem kann dies nützlich sein.vimish-fold-refold
- ja, du kannst es zurückklappen;vimish-fold-avy
- verwenden Sieavy
, um Ihren Text zu falten!Sie können
vimish-fold-mode
wahlweise Modi auswählen, in denen Sie eine dauerhafte Falzung wünschen, oder diese einfach überall aktivieren:quelle
menu v f
→vimish-fold
,menu v a
→vimish-fold-avy
,menu v u
→vimish-fold-unfold-all
,menu v v
→vimish-fold-refold
. Die meisten meiner Keybinds sind so, das ist meine Konfiguration .