2

Я хотел бы сделать ярлык лидера для выполнения нескольких глобальных поисков и замен в текущем буфере.

Например, нажав лидер, затем "fq", я бы хотел, чтобы он 3 раза глобально искал и заменял, заменяя:

  • "а" с "б"
  • "c" с "d"
  • "е" с "е"

Я прочитал справку и думаю, что я близок, но это не работает (кажется, только для первого поиска):

map <leader>fq :%s/a/b/ge | %s/c/d/ge | %s/e/f/ge<CR>

1 ответ1

4

Разделитель команд | имеет более высокий приоритет, чем аргументы :map , поэтому вы эффективно выполняете это:

:map <leader>fq :%s/a/b/ge
:%s/c/d/ge | %s/e/f/ge<CR>

Вы должны избежать | или лучше использовать специальную клавишу <Bar> определения соответствия:

:map <leader>fq :%s/a/b/ge <Bar> %s/c/d/ge <Bar> %s/e/f/ge<CR>

PS: Вы должны использовать :noremap ; это делает отображение невосприимчивым к переназначению и рекурсии.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .