Я часто окружаю некоторый код/текст некоторыми другими строками текста. Ради конкретного примера, скажем, у меня есть некоторый текст:Удалить окружающие линии в vim
this is
some text
Я тогда макрос, который позволяет мне преобразовать, что (после выделения линии), чтобы
if false then
this is
some text
end;
макросов, которые я использую, чтобы сделать это:
nmap <space>i ccif false then<CR><c-r>"end;<esc>
vmap <space>i cif false then<CR><c-r>"end;<esc>
Однако я хотел был бы иметь возможность создать макрос для того чтобы извлечь окружающий текст. То есть, если курсор окружен строками «if false then» и «end;» то эти строки должны быть удалены.
Любые идеи о том, как создать такой макрос?
Позвольте мне заметить, что я посмотрел на surround.vim, но не нашел способ сделать это с помощью этого пакета.
только блок 'if-end'? может ли он иметь «else, elif/else if ... end» тоже? как насчет вложенных 'if/else/end'? «это какой-то текст» всегда правильно отступом? может ли он комментировать что-то вроде '// если true, мы этого не делаем? Или вы просто хотите сделать «удаление окружающих линий» на точный пример в вышеупомянутом вопросе? – Kent
с этой работой уже упростит для меня вещи. Да, обработка более сложных конструкций станет следующим шагом (хотя то, что я описал, идеально будет автоматически обрабатывать «вложенные» строки - поскольку он удалит только первый набор, окружающий курсор). – user2562235