Я хотел бы создать макрос, так что если я выбираю кусок текста (либо с помощью клавиатуры или мыши) и вызвать этот макрос, он добавляет [b]
и [/b]
вокруг текста (например). Я знаком с записью макросов с помощью q
и с @
, но я не мог понять, как соединить макрос с текущим визуальным выбором.
Как создать и запустить макрос, который выполняется на текущем визуальном выделении?
2 ответа
макросы не отличаются от того, что вы бы ввести для достижения своей цели. При работе с визуальным выделением обычно используются такие движения, как `<
и `>
, чтобы перейти к началу и концу выделения, и вставить теги с i
и a
;gv
позволяет вам выбрать предыдущий выбор.
для вашего конкретного примера, возможно, стоит заглянуть в окружают.vim-удалить/изменить / добавить скобки / кавычки / XML-теги плагин; может быть, он уже делает то, что вы хотите.
другой вариант, чтобы рассмотреть, является Ultisnips плагин. Он имеет специальный механизм "визуального заполнителя".
фрагменты могут содержать специальный заполнитель ${VISUAL}. визуальный эффект} переменной с текстом выбранного незадолго до расширения фрагмент.
таким образом, вы можете определить фрагмент, который окружает визуальный выбор с некоторым конкретным тегом:
snippet b "surrond with [b] tag"
[b]${1:${VISUAL}}[/b]
endsnippet
или вы можете сделать общий фрагмент, который окружает визуальный выбор любым тегом:
snippet tag "surround with a tag"
[]${2:${VISUAL}}[/]
endsnippet
или вы можете сходить с ума и использовать силу интерполяции Python, чтобы сделать любую предварительную обработку, которую вы хотите с визуально выбранным текстом внутри фрагмента.
Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]