Як говорить @kuanyui в коментарі, next-buffer& previous-bufferви дуже швидкі, якщо у вас є лише кілька буферів для переходу між цими . (Я використовую більше декількох функцій і для більшої кількості функцій вибору буфера icicle-buffer.)
Однак, за замовчуванням, next-bufferі previous-bufferзнаходяться на ключі приставки,C-x .
Це означає, що вони не повторюються : не можна просто вдарити C-x <right> <right> <right>.... Натомість ви повинні або прив’язати ці команди до різних повторюваних клавіш, або використовувати C-x <right> C-x <right> C-x <right>..., що не дуже швидко.
Для повторюваних версій цих команд завантажте бібліотеку misc-cmds.elта перезавантажте ванільну, неповторювану версії до визначених там повторюваних версій:
(global-set-key [remap previous-buffer] 'previous-buffer-repeat)
(global-set-key [remap next-buffer] 'next-buffer-repeat)
(Аналогічно, в тій самій бібліотеці ви знайдете версію, undoяка повторюється, навіть коли ви маєте префіксний ключ:. undo-repeat)
До речі, ви можете зробити будь-яку команду, що повторюється (навіть на префіксному ключі), використовуючи функцію repeat-command(від misc-cmds.el). Це все, що було потрібно для визначення повторюваної версії next-buffer:
(defun previous-buffer-repeat ()
"Switch to the previous buffer in the selected window.
You can repeat this by hitting the last key again..."
(interactive)
(require 'repeat nil t) ; Library `repeat.el' is in Emacs 22.1 and later
(repeat-command 'next-buffer))