Путаница по поводу сворачивания vim - как отключить? - PullRequest
100 голосов
/ 16 февраля 2011
  1. Когда я открываю файл, он выглядит так: enter image description here или даже это enter image description here
  2. Когда я открываю все сгибы, они снова закрываются, когда я переходил в другой буфер и возвращался,
  3. Чтобы иметь возможность работать с ним, я должен применять zR каждый раз при открытии буфера.

У меня есть эти настройки в .vimrc:

set foldlevelstart=99
set foldlevel=99

Пожалуйста, укажите мне, как отключить сворачивание или, по крайней мере, сделать навигацию к другому буферу, чтобы не закрывать открытые.

Ответы [ 9 ]

188 голосов
/ 16 февраля 2011

Ты не одинок.

set nofoldenable    " disable folding
46 голосов
/ 27 августа 2013

Самый простой способ отключить (и включить) сворачивание на лету - это zi.

zi - это команда нормального режима, которая переключает 'foldenable', как и :set foldenable!.

Мнемоника: "fold i nvert".См :h zi.

44 голосов
/ 16 февраля 2011

Добавьте set nofoldenable в ~ / .vimrc, чтобы отключить свертывание.

15 голосов
/ 16 февраля 2011

Вот статья , которая кратко и кратко резюмирует, почему складывание это здорово. Одна строчка в том, что сворачивание позволяет легко перемещаться по очень большим файлам.

Если вы хотите оставить сворачивание включенным и просто всегда начинать со всех открытых сгибов, vim wiki расскажет, как. Вероятно, интересующий вас метод будет методом автокоманды.

" Tweak the event and filetypes matched to your liking. 
" Note, perl automatically sets foldmethod in the syntax file
autocmd Syntax c,cpp,vim,xml,html,xhtml setlocal foldmethod=syntax
autocmd Syntax c,cpp,vim,xml,html,xhtml,perl normal zR

Я бы также порекомендовал поиск пользовательских методов сворачивания для языка, который вы используете. Простое прибегание к помощи "vim <вставить язык здесь> сворачивание" должно вызвать несколько вариантов. Поиграйте с различными вариантами, пока не найдете метод складывания, который вам нравится.

4 голосов
/ 20 февраля 2017

Я добавил эту строку в файл .vimrc, потому что у меня возникла та же проблема:

autocmd FileType * exe "normal zR"

Эта команда будет выполняться каждый раз, когда вы автоматически открываете файл.Так что вы не увидите ошибку, и функция сворачивания тоже не будет потеряна)

2 голосов
/ 27 августа 2013

Просто добавьте еще один, чтобы завершить обсуждение.

Чтобы включить свертывание кода:

:set foldenable или короче говоря, :set fen

Чтобы отключить свертывание кода:

:set nofoldenable или коротко, :set nofen

Как только вы включите свертывание кода, у вас будут все команды, такие как zf,zo etc, по вашему желанию в соответствии с настройкой :set fdm=xxxx, где типичные значения expr,syntax,manual etc.

1 голос
/ 17 апреля 2014

Я устанавливаю foldlevel=20, foldlevelstart=20 и использую foldmethod=syntax.Это помогает мне работать с правильным складыванием в VIM.

set nofoldenable отключить складывание, но иногда оно мне нужно

vim.wikia

1 голос
/ 15 февраля 2014

Vim делает невероятно трудным отключение сворачивания, особенно при использовании vimdiff.
Ни одно из вышеприведенных решений не помогло мне, но это помогло (добавьте в ~ / .vimrc):

au WinEnter * set nofen
au WinLeave * set nofen
1 голос
/ 15 ноября 2013

Извините, если я отвечаю на связанный вопрос, но я нашел полезным отобразить два файла вместе с выключенным сворачиванием с чем-то вроде этого:

vim "+set nofen" -O file1 file2
...