Как создать и запустить макрос, который выполняется на текущем визуальном выделении?

Я хотел бы создать макрос, так что если я выбираю кусок текста (либо с помощью клавиатуры или мыши) и вызвать этот макрос, он добавляет [b] и [/b] вокруг текста (например). Я знаком с записью макросов с помощью q и с @, но я не мог понять, как соединить макрос с текущим визуальным выбором.

26
задан Petr Pudlák
14.04.2023 20:49 Количество просмотров материала 3016
Распечатать страницу

2 ответа

макросы не отличаются от того, что вы бы ввести для достижения своей цели. При работе с визуальным выделением обычно используются такие движения, как `< и `>, чтобы перейти к началу и концу выделения, и вставить теги с i и a;gv позволяет вам выбрать предыдущий выбор.

для вашего конкретного примера, возможно, стоит заглянуть в окружают.vim-удалить/изменить / добавить скобки / кавычки / XML-теги плагин; может быть, он уже делает то, что вы хотите.

4
отвечен Ingo Karkat 2023-04-16 04:37

другой вариант, чтобы рассмотреть, является Ultisnips плагин. Он имеет специальный механизм "визуального заполнителя".

фрагменты могут содержать специальный заполнитель ${VISUAL}. визуальный эффект} переменной с текстом выбранного незадолго до расширения фрагмент.

таким образом, вы можете определить фрагмент, который окружает визуальный выбор с некоторым конкретным тегом:

snippet b "surrond with [b] tag"
[b]${1:${VISUAL}}[/b]
endsnippet

или вы можете сделать общий фрагмент, который окружает визуальный выбор любым тегом:

snippet tag "surround with a tag"
[]${2:${VISUAL}}[/]
endsnippet

или вы можете сходить с ума и использовать силу интерполяции Python, чтобы сделать любую предварительную обработку, которую вы хотите с визуально выбранным текстом внутри фрагмента.

1
отвечен taketwo 2023-04-16 06:54

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх