Создать команду Vim для поиска по регулярному выражению

У меня есть несколько выражений Regex, которые я использую с xVim для Xcode. Вместо того, чтобы многократно набирать их в командной строке с \<Regex>Я хотел бы иметь возможность вызывать их с помощью специальной команды, например, :Regex1, Итак, я добавил command Regex1 “/-\s*\(“ к моему xvimrc файл и перезапустил Xcode. Когда я бегу :Regex1 однако ничего не происходит.

3 ответа

Ваша команда даже не будет работать в оригинальном Vim. Я не знаю xVim, но попробуйте что-то вроде этого:

" With cursor moving to match.
command Foo /foo/

" Just updating the search pattern (but less likely to be portable to xVim).
command Foo let @/ = 'foo'

Если ничего из этого не работает; попробуйте вместо этого определить отображение. Так как это всего лишь перевод ключей, у него самый высокий шанс на поддержку.

Сокращения...

Я понимаю, что вы часто используете одно и то же регулярное выражение. Вы можете использовать сокращения вместо команды, чтобы сделать поиск.

ab re -\s*(

затем введите / + re + space и ваше длинное регулярное выражение (здесь просто "-\s*(" должно раскрыться).

... Не определенная пользователем команда

Пользовательские команды не доступны ни в ed, ни в vi, ни в vim без флага компиляции +eval (:h user-commands и прокрутите одну строку вверх).

Список бывших команд: http://www.csb.yale.edu/userguides/wordprocess/vi-summary.html

Список команд ed: http://pubs.opengroup.org/onlinepubs/7908799/xcu/ed.html

Я хотел бы предложить использовать этот плагин PERL Regex, поскольку он уже делает то, что вы хотите.

https://github.com/othree/eregex.vim

Другие вопросы по тегам