Свернуть комментарии и все функции в vim / gvim
Вопрос
Я начинающий пользователь vim, и я не смог найти в Интернете, как свернуть функции, и я выяснил, как свернуть список аргументов в C с помощью zfa} и zfa).но я не могу понять, как свернуть разделы комментариев.Как мне это сделать?
Второй вопрос, но связанный с этим, есть ли способ свернуть все функции / списки аргументов / комментарии в файле одновременно?
Решение
Функциональность, на которую вы ссылаетесь, называется "сворачивание" (см. :help usr_28
).Тот самый zf команда используется для создания сгиба вручную и используется только в том случае, если foldmethod
для параметра установлено значение "маркер" или "вручную".В приведенных вами примерах вы создаете складки над областями, указанными a}
и a)
текстовые объекты (см. :help usr_4.8
).
Для C вы можете setlocal foldmethod=syntax
и области сгибания будут автоматически определены правилами синтаксиса.Это следует делать только для файлов C, либо установив параметр в ~/.vim/ftplugin/c.vim
или поместив следующий autocmd в ваш ~/.vimrc
.
autocmd FileType c setlocal foldmethod=syntax
Н.Б.оба из них требуют, чтобы было включено определение типа файла (filetype on
), а решение ftplugin требует, чтобы плагины filetype были включены (filetype plugin on
).Последнее является надмножеством первого, поэтому вам не нужны обе команды в вашем ~/.vimrc
.
Что касается открытия / закрытия всех складок в текущем буфере, то это zR и zM команды соответственно.
Другие советы
Добавьте следующие настройки в ~/.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
Затем вы можете переключить складывание с помощью za.Вы можете все сложить с помощью ZM и развернуть с помощью ZR.zm и zr можно использовать, чтобы получить правильные складки.Всегда помните о всемогущем файле справки «help :folding», если вы застряли.
Предполагая, что вы настроили области сгиба так, как хотите, установите foldlevel
до желаемого уровня.