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
Другие вопросы по тегам