Чтобы разрешить сгибания на основе синтаксиса, добавьте что-то вроде следующего к вашему .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
Складывание на основе синтаксиса определяется в файлах синтаксиса языка, которые находятся в $ VIM / синтаксис. Но в некоторых языках нет правил свертывания, встроенных в файлы синтаксиса. Например Python. Для этих языков вам нужно скачать что-то из http://vim.sf.net, которое делает сгибы. В противном случае вам нужно будет использовать складки на основе отступов. Чтобы сделать это эффективно, вы, вероятно, захотите добавить в ваш файл .vimrc следующее:
set foldmethod=indent
set foldnestmax=2
Другие виды складывания
Существует 6 типов складок:
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
Лично я использую только синтаксические сгибы. Обычно я просто хочу свернуть метод, а не сбрасывать каждый уровень отступа. Непоследовательный отступ и странно отформатированный устаревший код на работе часто делает сложным или невозможным сворачивание отступа. Добавление меток к документу утомительно, и люди, которые не используют Vim, не будут поддерживать их при редактировании документа. Ручные сгибы работают прекрасно, пока кто-то не отредактирует ваш код в системе контроля версий, и все ваши сгибы теперь не в том месте.
Больше чтения
- См.
:help fold-methods
, чтобы узнать подробности о различных методах сгиба.
- См.
:help folding
, чтобы узнать команды клавиатуры для управления складками.
- См.
:help folds
для получения справки по всей теме фолдинга.