Vim Ultisnips, визуальный токен и системный буфер обмена
Я довольно новичок в vim, но нашел его мощным инструментом (особенно с такими плагинами, как UltiSnips и YouCompleteMe). Мне очень нравится идея создания личных фрагментов в сочетании с визуальным токеном для быстрого преобразования текста. Однако я хотел бы иметь возможность выделить какой-либо текст в веб-браузере, скопировать его в буфер обмена и просто ввести my_snippet в vim, чтобы расширить my_snippet текстом из буфера обмена в качестве визуального маркера. Это было бы весьма полезно, но я не знаю, как это устроить. Было бы здорово, если бы кто-нибудь мог научить меня, как настроить vim для этого.
0 ответов
Я попытаюсь привести вам пример, проблема у меня была некоторое время. Я постоянно пробую новые плагины, поэтому копирую имя проекта github, например:
psliwka/vim-smoothie
И трансформируя его:
Plug 'psliwka/vim-smoothie'
Это что-то проблематичное, потому что наряду с вводом слова Plug в начале строки мне нужно ввести одинарные кавычки и удалить три пробела и один возврат кари.
psliwka /
vim-smoothie
Так что мой фрагмент должен обернуть все за один раз. После некоторых исследований я пришел к следующему:
snippet plug "Insert a new plugin on my vimrc" w
Plug '${1:`!v substitute(@+, ' \|\n', '', 'g' )`}'
endsnippet
Некоторое объяснение:!v
часть фрагмента означает "интерполяция vim", поэтому я могу использовать некоторые команды vim. Вsubstitute()
правила команд:
where-substitue, what-substitute, substitution, flags
| | | |
@+ ' \|\n' '' g
clipboard space or enter nothing globally