#vim
#vim
Вопрос:
В Atom IDE есть приятная функция под названием «сниппеты», которая позволяет вставлять определенные пользователем блоки кода, вводя определенную последовательность символов:
Я сделал небольшой пример в соответствии с документацией Vim:
inor <F5> <C-R>=ShowPopup()<CR>
func! ShowPopup()
call complete(col('.'), ['inc', 'main'])
retu ''
endf
Теперь я хочу main
, чтобы элемент стал int main() {}
, когда я выбираю этот элемент во всплывающем меню и нажимаю Enterв режиме вставки. Возможно ли это с помощью встроенной функциональности Vim?
Ответ №1:
Это возможно. Это просто требует некоторой работы. Работа, которая обычно заканчивается … плагины для фрагментов. Так что да, плагины написаны на основе встроенных функций.
Идея заключается в том, что функция завершения запускает событие, которое используется для выполнения фактической замены. См., Например, этот вопрос / ответ на vi.SE где я исследую, как написать более динамичную функцию завершения: https://vi.stackexchange.com/questions/5820/dynamic-completion