Wie aktiviere ich das automatische Falten in Vim? set foldmethod=syntax
scheint nicht viel von irgendetwas zu tun.
Wie aktiviere ich das automatische Falten in Vim? set foldmethod=syntax
scheint nicht viel von irgendetwas zu tun.
Antworten:
Um Falten basierend auf der Syntax zuzulassen, fügen Sie Folgendes hinzu .vimrc
:
set foldmethod=syntax
set foldlevelstart=1
let javaScript_fold=1 " JavaScript
let perl_fold=1 " Perl
let php_folding=1 " PHP
let r_syntax_folding=1 " R
let ruby_fold=1 " Ruby
let sh_fold_enabled=1 " sh
let vimsyn_folding='af' " Vim script
let xml_syntax_folding=1 " XML
Syntaxbasiertes Falten wird in den Syntaxdateien der Sprache definiert, die sich in $ VIM / syntax befinden. In einigen Sprachen sind jedoch keine Faltregeln in die Syntaxdateien integriert. Zum Beispiel Python. Für diese Sprachen müssen Sie etwas von http://vim.sf.net herunterladen, das funktioniert. Andernfalls müssen Sie Falten verwenden, die auf Einrückungen basieren. Um dies effektiv zu tun, sollten Sie Ihrer .vimrc-Datei wahrscheinlich Folgendes hinzufügen:
set foldmethod=indent
set foldnestmax=2
Es gibt 6 Arten von Falten:
manual manually define folds
indent more indent means a higher fold level
expr specify an expression to define folds
syntax folds defined by syntax highlighting
diff folds for unchanged text
marker folds defined by markers in the text
Persönlich verwende ich nur Syntaxfalten. Normalerweise möchte ich nur die Methode falten und nicht jede Einrückungsstufe falten. Inkonsistentes Einrücken und seltsam formatierter Legacy-Code bei der Arbeit machen das Einrücken von Einzügen oft schwierig oder unmöglich. Das Hinzufügen von Markierungen zum Dokument ist mühsam und Personen, die Vim nicht verwenden, werden diese beim Bearbeiten des Dokuments nicht beibehalten. Manuelle Faltungen funktionieren hervorragend, bis jemand Ihren Code in der Quellcodeverwaltung bearbeitet und alle Ihre Falten jetzt an der falschen Stelle sind.
:help fold-methods
über die Details der verschiedenen Falzmethoden.:help folding
die Tastaturbefehle lernen für Falten zu manipulieren.:help folds
Hilfe auf dem gesamten Thema der Faltung.let ...=1
Befehl benötigt, reicht nur set foldmethod=syntax
aus. dh einige Sprachen benötigen keinen let
Befehl.
JavaScript-Faltung hat auch bei mir nicht funktioniert. Ich fand heraus , dass es plötzlich funktionierte , als ich syntax = javaScript (mit einem Großbuchstaben S) setzte.
vim version 8
.
Die Möglichkeit, das Falten in neuen Versionen von Vim zu aktivieren, hat sich geändert (ich verwende Vim 7.4). Jetzt sollten Sie die Datei ~/.vim/ftplugin/javascript.vim
(unter Linux) erstellen und Ihre Anweisungen zum Falten des Codes hinzufügen, wie in Eric Johnsons Antwort erläutert. Plugins zur Erkennung und zum Laden von Dateitypen für bestimmte Dateitypen müssen aktiviert werden, indem Sie Folgendes in Folgendes einfügen .vimrc
:
filetype plugin on
Versuchte alle Lösungen hier und keine funktionierte mit NeoVim v0.3.1 Bis ich fand, dass das vim-Javascript- Plugin und das Falten anfingen zu funktionieren.