Vim: Как выполнить выделенный текст как команды vim - PullRequest
28 голосов
/ 24 ноября 2010

Когда я пишу документы, я выбираю соглашение об организации, подходящее для этого документа, и я хотел бы, чтобы vim синтаксически выделил это соглашение. Но создание ftplugin слишком «глобально», я хочу, чтобы синтаксическая раскраска шла вместе с документом, поэтому, если я отправлю его куда-нибудь без этого плагина, они все равно смогут получить окраску. Я обнаружил, что вы не можете сделать это через моделин, потому что он принимает только опции.

Прямо сейчас я пытаюсь выяснить, есть ли способ выделить какой-то текст в визуальном режиме (или как угодно, но я использую режим визуальной линии для всего, чтобы было бы неплохо) и выполнить его как серию vim команды.

Например, внизу одного документа у меня есть:

vim highlighting:
    syn match Comment "^>.*$"

Как я могу выделить этот текст и сказать "бум, выполни его" вместо необходимости перепечатывать его?

Ответы [ 3 ]

43 голосов
/ 24 ноября 2010

Вы можете выбрать строки, восстановить выделение и выполнить его с помощью

:@"
2 голосов
/ 16 июля 2015

Мне нравится делать это отображение, которое потребует, чтобы вы сначала сделали визуальный выбор и не перезаписывали ваш неназванный регистр:

vmap <space> "xy:@x<CR>

Если вам нравится писать команды vim с продолжением строки:

vmap <space> :w! /tmp/x.vim<CR>:so /tmp/x.vim<CR>
1 голос
/ 24 ноября 2010

Я определил несколько отображений на основе lh-vim-lib , которые не включают регистрЭто действительно решение с избыточным количеством ресурсов, но оно подходит для сопоставлений, поскольку оно никогда не изменит регистр по умолчанию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...