Это не очень элегантное решение (поскольку оно использует макросы вместо функций), и оно не объясняет, как быстро перейти к любому буферу, а только как перейти к буферам, которые использовались недавно. Но это работает очень хорошо для меня:
У меня есть серия макросов, которые используются ido-switch-buffer
для перехода к предыдущему буферу, буферу до этого, буферу до этого и т. Д. И я связал эти макросы с привязками клавиш, которые я считаю удобными.
Чтобы перейти к последнему буферу:
(fset 'my-goto-previous-buffer
[?\C-x ?b return])
Чтобы перейти к предпоследнему буферу:
(fset 'my-goto-previous-buffer
[?\C-x ?b ?\C-n return])
Чтобы перейти к предпоследнему буферу:
(fset 'my-goto-previous-buffer
[?\C-x ?b ?\C-n ?\C-n return])
И т. Д. (Вы можете объявить столько, ?\C-n
сколько захотите, чтобы вернуться к истории посещенных буферов, сколько захотите).
Существует встроенная функция для перехода к предыдущему буферу, но преимущество использования макросов в ido-switch-buffer
том, что вы можете настроить переменную ido-ignore-buffers
для удаления специальных буферов, таких как *Messages*
или *scratch*
любой другой нежелательный буфер, из списка. Таким образом, единственные буферы, к которым вы переходите, - это те, к которым вы действительно заинтересованы.