Как включить автоматические сгибы в Vim?

67

Как включить автоматическое складывание в Vim? set foldmethod=syntax, похоже, ничего не делает.

Теги:
vim
folding

3 ответа

119
Лучший ответ

Чтобы разрешить складки на основе синтаксиса, добавьте к вашему .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 для справки по всей теме складывания.
  • 8
    Ну ... это было быстро.
  • 8
    Вы действительно набрали все это в течение минуты после публикации вопроса? +1 для ясности, детализации и скорости!
Показать ещё 1 комментарий
3

JavaScript-фальцовка тоже не работала для меня. Я узнал, когда я сделал set syntax = javaScript (с капиталом S), он неожиданно сработал.

  • 1
    хе-хе, я сделал это, и внезапные краски просто исчезли, думаю, это не для всех. :) vim version 8 .
1

Включение изменений в новые версии Vim изменилось (я использую vim 7.4). Теперь вы должны создать файл ~/.vim/ftplugin/javascript.vim (на linux) и добавить свои инструкции по сворачиванию кода, как объяснено в ответе Эрика Джонсона. Для обнаружения типов файлов и загрузки плагинов для определенных типов файлов необходимо включить их в свой .vimrc:

filetype plugin on

Ещё вопросы

Сообщество Overcoder
Наверх
Меню