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

Иногда, когда я создаю новую свертку в 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-eof)

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 Ответ

0 голосов
/ 31 августа 2020

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

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

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

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

...