Почему создание нового сгиба иногда приводит к сгибанию всего файла?

Иногда, когда я создаю новую свертку в vim, она сворачивает весь файл. Зачем?
(foldmethod=manual)

например,

  1. zi (все складки открыты)
  2. zi (все складки закрыты)
  3. строки 1-309 свернуты, а строки 617-662 свернуты (в файле 662 строки)
  4. мой курсор находится в строке 377
  5. я делаю zfGсвернуть все строки от строки 377 до конца файла
    Ожидается: строки с 377 до конца файла закрыты, а строки 310-366 видны
    Фактически: все строки в файле закрыты

Обходной путь:

  1. zD (удалить все складки)
  2. :1,309fold (кратность 1-309)
  3. :377,$fold (складка 377-еоф)

Настройки My fold*:

  foldclose=
  foldcolumn=0
  foldenable
  foldexpr=0
  foldignore=#
  foldlevel=0
  foldlevelstart=-1
  foldmarker={{{,}}}
  foldmethod=manual
  foldminlines=1
  foldnestmax=20
  foldopen=block,hor,mark,percent,quickfix,tag,undo
  foldtext=foldtext()

1 ответ

Решение

Это связано с тем, что строка 377 (где я создавал новую складку) находилась внутри существующей открытой складки, которая началась со строки 1 файла. Поэтому, когда я создал новый сгиб, он увеличил размер существующего открытого сгиба и закрыл его, в результате чего весь файл был сложен закрытым.

Чтобы отладить это, :set foldcolumn=12показывает открытые складки. А такжеzM закрывает все открытые складки.

Также обратите внимание, что я думал zi переключал открывать / закрывать все складки, но это неправда. zM закрывает все складки, и zR открывает все складки.

[Я получил ответ на этот вопрос vi.stackexchange.com]

Другие вопросы по тегам