Frage

Gibt es eine Möglichkeit VIM hat weiterhin die Formatierung auf die Linie als Header für eine Falte verwendet bewerben?

Z. B, ich habe den folgenden Code:.

int foo(int a, int b) {
    int c;
....
}

Wenn gefaltet, sehe ich:

+-- 4 lines: int foo(int a, int b) {----------------------------

Allerdings ist die ganze Zeile nach der „Folded“ Klasse hervorgehoben. Gibt es eine Möglichkeit, dies zu deaktivieren, so dass ich auch weiterhin die Syntaxhervorhebung sehen?

[für ein einfaches Beispiel das nicht so wichtig ist, aber ich benutze auch ausführlich bei der Betrachtung große Datendateien, und die Formatierung ist viel wichtiger für mich Falten]


War es hilfreich?

Lösung

  

Allerdings ist die ganze Zeile nach der „Folded“ Klasse hervorgehoben. Gibt es eine Möglichkeit, dies zu deaktivieren, so dass ich auch weiterhin die Syntaxhervorhebung sehen? "

Nein, das gefaltete Schlagzeile Text ist nicht Text, der Teil einer Datei ist und nicht direkt bearbeitet werden, nur berechnet und überlagert auf dem Bildschirm. Der ‚Folded‘ Highlight wird auf die gesamte Linie angelegt, und alle Falten haben gleiche Markierung aufgebracht wird.

Für meine Verwendung mit vim als ein Outliner (im vimoutliner Projekt) gehackt ich die vim Quelle für verschiedene fach Markierung zu ermöglichen, auf der Falte Ebene abhängig, so gibt es mehrere fach Überschrift Highlights, die angewendet werden (zB FoldLevel1, FoldLevel2, usw.). Ich nehme an, es weiter gehacktes könnte bereits bestehende Hervorhebung des Textes an der Falte Kopfzeile zu verwenden, aber die Art und Weise Falten Arbeiten gegeben ich, dass vielleicht vermute schwieriger zu tun, als es klingt.

Es fiel mir nur, dass der Vorschlag für foldmethod Einrückungs genau das sein, was Sie suchen auf jeden Fall, die Syntax in den nicht vertieften Linien tut bewahren, während sie noch Funktion als eine Art Überschrift für den gefalteten Schnitt.

Andere Tipps

Ich denke, was Sie suchen ist die foldmethod Wechsel statt manueller einrücken, was der Standard ist. Geben Sie dies im Befehlsmodus.

:set foldmethod=indent

Nun, wenn Sie in Ihrer Funktion foo gehen und Typ zm (erhöhen fache Niveau nach dem anderen), wird es wie folgt aussehen:

int foo(int a, int b) {
+--  2 lines: int c;------------------------------------------------------------
}

Die foo Linie wird noch Syntaxhervorhebung haben. Zu entfalten natürlich Typ zr. Der Einfachheit halber habe ich die folgenden Zeilen in meinem .vimrc schnell zu falten oder alles entfalten:

" Folding and unfolding
map ,f :set foldmethod=indent<cr>zM<cr>
map ,F :set foldmethod=manual<cr>zR<cr>

Es gibt ein auch ein gutes Tutorial hier und natürlich das Lesen die vim Hilfe auf foldmethod könnten Sie zu anderen Methoden führen, die Sie als Gedankenstrich besser gefällt, aber die Art und Weise Ihr Beispiel-Code sieht man wahrscheinlich indent wollen werden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top