Emacs повторяет строку n раз

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

  • Повторите строку 'bla' n раз в обычном режиме редактирования текста.

Допустим, я хочу повторить это пять раз, чтобы сгенерировать «бла-бла-бла-бла-бла». Я попытался...

C-u 5 bla

... но команда выполняется после ввода «b», и я получаю только «bbbbb».

Я уверен, что есть какая-то базовая команда, которая может помочь мне здесь... не будет ли кто-нибудь достаточно любезен, чтобы просветить меня :)?


person sammy34    schedule 27.07.2013    source источник


Ответы (2)


Один из способов — с помощью макроса клавиатуры:

C-x (bla C-x)C-u4C-x е

Вы также можете просто вставить количество повторений перед завершением макроса:

C-x (bla C-u5C-x)

person Keith Flower    schedule 27.07.2013
comment
Макросы клавиатуры... круто! Что-то мне подсказывает, что я буду любить Emacs :). - person sammy34; 27.07.2013
comment
На заметку: официальный способ использования макросов — F3 для начала записи, F4 для завершения и F4 для выполнения. Версия C-x устарела и может быть изменена. - person Malabarba; 27.07.2013
comment
@Malabarba Это новость для меня. Мне легче набрать C-x ( и т. д. Немного истории флеймовой войны здесь: запись/emacs_keybinding.html - person remcycles; 04.05.2018

Вы можете сделать это с помощью клавиатурных макросов: f3blaM-5 f4.

  1. f3 означает "начать запись"
  2. затем вы вставляете bla
  3. M-5 означает "5 раз"
  4. f4 означает завершение

Альтернатива M-5 f4 — это просто f4 множество раз.

person abo-abo    schedule 27.07.2013