2014-10-28 3 views
0

Я хочу, чтобы иметь возможность скрывать весь код в определенном разделе кода, с которым я работаю. Теперь мне интересно, возможно ли это в Vim. Я уже немного экспериментировал с ним и успешно спрятал линии выше и ниже моего выбора, используя выделенную группу Igore. Это позволяет мне видеть только строки, на которых я хочу сосредоточиться, но проблема в том, что я начинаю редактировать код и добавлять или удалять строки. Когда я добавляю строку или удаляю строку, уже установленная группа подсветки Ignore по-прежнему поддерживает заданные номера строк, поэтому я либо вижу какой-то скрытый код, либо какой-то код, который я хочу видеть, длиннее и распространяется на скрытые номера строк. Поэтому мне интересно, есть ли способ исправить этот или любой другой способ выполнить то, что я хочу в Vim?Vim: Скрыть весь код по выбранному коду

Цените любые предложения!

+0

Вы пробовали Складывать? – DevSolar

+0

': h раз-manual' прочитайте это. – Kent

+0

Возможный дубликат [Vim: временно показывать только определенные строки] (http://stackoverflow.com/questions/5979532/vim-temporarily-show-only-specific-lines) – glts

ответ

3

Скрытие или затенения части о f буфер не является способом Vim. Складной - это встроенная функция, которая ближе всего подходит. С помощью :set foldmethod=manual вы можете использовать zf или :fold, чтобы скрыть части выше и ниже.

Для решения плагина взгляните на NrrwRgn - A Narrow Region Plugin. Он позволяет редактировать части буфера в отдельном буфере для царапин с автоматической синхронизацией.

+0

Плагин NrrwRgn выглядит довольно близко IMO – mish

+0

Wow! что плагин звучит так, как может это сделать для меня. Большое спасибо! – user4189799

1

Чтобы скрыть диапазон строк (скажем, от 1 до 10 и 20 до конца, вы можете ввести :1,10fo|20,$fo

От там, вы можете создать функцию на основе текущей позиции курсора -10/+ 10

Примечание вы должны сначала :set foldmethod=manual сделать это работает

EDIT:. простое решение: :1,.-10fo|.+10,$fo

Смежные вопросы