2009-11-16 18 views
9

Ich bin ein Anfänger Benutzer zu Vim und ich habe nicht im Internet finden, wie Funktionen zu reduzieren, und ich habe herausgefunden, wie Sie die Argumentliste in C zusammenfassen mit zfa} und zfa). aber ich kann nicht herausfinden, wie man die Kommentare abbricht. Wie mache ich das?Kommentare und alle Funktionen in vim/gvim ausblenden

Zweite Frage aber verwandt, gibt es eine Möglichkeit, alle Funktionen/Argumentlisten/Kommentare in einer Datei gleichzeitig zu reduzieren?

Antwort

21

Die Funktionalität, auf die Sie sich beziehen, wird "Falten" genannt (siehe :help usr_28). Der zf Befehl wird zum manuellen Erstellen einer Faltung verwendet und wird nur verwendet, wenn die Option foldmethod auf "marker" oder "manual" gesetzt ist. In den Beispielen, die Sie angegeben haben, erstellen Sie Falten für die Bereiche, die durch die Textobjekte a} und a) angegeben werden (siehe :help usr_4.8).

Für C können Sie setlocal foldmethod=syntax und die faltenden Regionen werden automatisch durch die Syntaxregeln bestimmt. Dies sollte nur für C-Dateien gemacht werden, indem Sie entweder die Einstellung ~/.vim/ftplugin/c.vim setzen oder den folgenden autocmd in Ihre ~/.vimrc setzen.

autocmd FileType c setlocal foldmethod=syntax 

N.B. Bei beiden muss die Dateityperkennung aktiviert sein (filetype on). Für die ftplugin-Lösung müssen Dateityp-Plugins aktiviert sein (filetype plugin on). Letzteres ist eine Obermenge der ersten, so dass Sie beide Befehle in Ihrem ~/.vimrc nicht benötigen.

Wie zum Öffnen/alle Falten in dem aktuellen Puffer schließt, sind derjenigediejenigedasjenige, die z R und zjeweils Befehle M.

+0

Brauchen Sie noch eine Sache. Syntax funktioniert gut, lässt mich aber nicht zfa) definieren, so dass ich Argumentlisten ausblenden kann. Ich habe einige wirklich lange Listen, die ich nicht sehen muss, was in ihnen ist, und es wäre wirklich praktisch, automatisch zu kollabieren, aber es lässt mich das im Syntax-Modus nicht tun und ich habe zu viele Funktionen, um define Modus zu verwenden . –

+0

Leider können Sie nicht mehrere Faltungsmethoden gleichzeitig verwenden und die manuelle Falzanlage funktioniert nur für Marker/manuelle Methoden. Sie könnten Syntax/c.vim aus dem systemweiten Verzeichnis in ~/.vim/syntax/c.vim kopieren und das Schlüsselwort "fold" am Ende der cParen-Syntaxdefinitionen hinzufügen. Der Nachteil ist, dass Sie dies immer dann tun müssen, wenn neue wichtige Vim-Releases erstellt werden, damit Sie keine Änderungen verlieren, die upstream gemacht werden. Es erfordert auch, dass Sie die Öffnung "{" auf eine separate Zeile setzen, andernfalls wird die Falzliste durch die Falte außer Kraft gesetzt. – jamessan

0

Angenommen, Sie haben Ihre Falzregionen so eingerichtet, wie Sie sie möchten, setzen Sie foldlevel auf das gewünschte Niveau.

5

Fügen Sie die folgenden Einstellungen in ~/.gvimrc:

"folding settings 
set foldmethod=indent "fold based on indent 
set foldnestmax=10  "deepest fold is 10 levels 
set nofoldenable  "dont fold by default 
set foldlevel=1   "this is just what i use 

Dann können Sie mit za wechseln Falten. Sie können alles mit zM falten und alles mit zR entfalten. Zm und Zr können verwendet werden, um diese Falten genau richtig zu bekommen. Erinnere dich immer an die allmächtige Hilfedatei bei "help: folding", wenn du nicht weiterkommst.

Quelle: http://smartic.us/2009/04/06/code-folding-in-vim/

Verwandte Themen