Как включить автоматические сгибы в Vim? - PullRequest
73 голосов
/ 25 января 2011

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

Ответы [ 4 ]

135 голосов
/ 25 января 2011

Чтобы разрешить сгибания на основе синтаксиса, добавьте что-то вроде следующего к вашему .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, не будут поддерживать их при редактировании документа. Ручные сгибы работают прекрасно, пока кто-то не отредактирует ваш код в системе контроля версий, и все ваши сгибы теперь не в том месте.

Больше чтения

  1. См. :help fold-methods, чтобы узнать подробности о различных методах сгиба.
  2. См. :help folding, чтобы узнать команды клавиатуры для управления складками.
  3. См. :help folds для получения справки по всей теме фолдинга.
3 голосов
/ 01 июля 2015

Свернуть JavaScript тоже не получилось.Я узнал, когда я установил синтаксис = javaScript (с большой буквы S), это неожиданно сработало.

1 голос
/ 30 ноября 2018

Перепробовал все решения здесь, и ни одно из них не работало с NeoVim v0.3.1 Пока я не нашел плагин vim-javascript , и сворачивание начало работать.

1 голос
/ 19 августа 2016

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

filetype plugin on
...