Я начал работать над огромным PHP-приложением, имеющим тысячи строк кода в каждом файле, с множеством огромных блоков, классов и функций, существующих в одном файле. Я не единственный разработчик, работающий над этим, поэтому я не могу реорганизовать!VIM: Уважать только текущий кодовый блок
Я пробовал использовать плагин «Список тегов», но это действительно не помогает. Есть ли способ, чтобы VIM уважал только конкретный блок кода и игнорировал остальную часть файла? Я надеюсь на некоторые или все из этих функций:
- Включить нумерацию строк только для текущего блока кода, начиная с 1 на линии, содержащее отверстие
{
, и не показывая нумерации строк, предшествующие его или после закрытия}
. - Поиск с
/
будет ограничен только этим блоком.
Я думаю по линиям выбора текущего блока и редактирования его в новом буфере при включении режима, а затем заменяя существующий блок отредактированным блоком при выходе из режима. Однако у меня возникают проблемы с реализацией этой функции. Моя текущая версия такова:
map <F7> <Esc>mO<C-V>aBy:new<Return>p:set nu<Return>:set ft=php<Return>ggi<?php<Return><Esc>
map <F8> <Esc>ggdd<C-V>aBx:bp<Return>`O<C-V>aBp
Однако это имеет ряд проблем, таких как невозможность выполнения дополнительных сейвов.
См. Http://stackoverflow.com/questions/2921752/limiting-search-scope-for-code-in-vim – kikuchiyo
Для ограниченного поиска функций: http://drchip.0sites.net/astronaut/vim/index .html # FUNCSRCH –
@kikuchiyo: Это полезно для случайного поиска, но утомительного для работы в блоке. Поэтому желание иметь отдельный буфер для интересующего блока. – dotancohen