#vim
#vim
Вопрос:
В моем vimrc есть следующее:
set foldmethod=syntax
set foldnestmax=3
set nofoldenable
Когда я открываю файл, ничего не сворачивается, как и ожидалось. В первый раз, когда я закрываю фолд с помощью zc, он закрывает все возможные фолды рекурсивно. Затем я выдаю, zR и он показывает их все, а затем zc ведет себя как ожидалось, закрывая по одному фолду за раз. Похоже, что za ведет себя одинаково; в первый раз он сворачивает все, каждый раз после этого он сворачивает что-то одно.
Есть ли способ заставить zc всегда закрывать один фолд? По сути, я пытаюсь исключить шаг «закрыть все, а затем открыть все», который мне приходится выполнять каждый раз, когда я хочу что-то свернуть.
Комментарии:
1. я работаю, используя ваши параметры и буфер java в vim 7.2 на моем Ubuntu 10.10. Какой язык вы используете? Иногда он закрывает весь класс, если текущая строка не распознается как блок.
2. Ruby. Python и PHP вообще не сворачиваются («E490: фолд не найден»), а Java демонстрирует то же поведение, что и Ruby. Это единственные четыре языка, которые я пробовал до сих пор. Мои файлы точек здесь , если вы считаете, что что-то еще может мешать.
Ответ №1:
Что происходит, так это то, что нажатие zc включит сгибание (см. :help zc
), и это заставит применить Vim, 'foldlevel'
который по умолчанию равен 0 (что означает, что все сгибы будут закрыты). Поэтому, если вы установите 'foldlevel'
высокое значение в вашем vimrc, он должен работать так, как ожидалось.
Комментарии:
1. Если вы используете foldnestmax, то установка foldlevel на то же значение достаточно высока.