Как мне легче переключаться между буферами в Emacs? - PullRequest
32 голосов
/ 13 сентября 2011

Я недавно начал использовать emacs, и я наслаждаюсь его использованием по большей части. Единственное, что мне не нравится, это переключение между буферами. У меня часто открываются несколько буферов, и я устал от использования C-x b и C-x C-b. Существуют ли какие-либо пакеты, облегчающие переключение между буферами? Я посмотрел emacs wiki о переключении буферов , и я был бы признателен за понимание / отзывы о том, что используют / наслаждаются. Благодарю.

Ответы [ 8 ]

24 голосов
/ 13 сентября 2011

ОБНОВЛЕНИЕ: iswitchb-mode устарело в Emacs> = 24.4, заменено на ido.

Все функции iswitchdb теперь предоставлены ido.Росс предоставил ссылку на документацию в своем ответе.Вы можете активировать с помощью следующих параметров в .emacs (или использовать интерфейс настройки, как подсказывает Росс):

(require 'ido)
(ido-mode 'buffers) ;; only use this line to turn off ido for file names!
(setq ido-ignore-buffers '("^ " "*Completions*" "*Shell Command Output*"
               "*Messages*" "Async Shell Command"))

По умолчанию ido предоставляет дополнения для имен буферов и имен файлов.Если вы хотите заменить только функции iswitchb, вторая строка отключает эту функцию для имен файлов.ido будет игнорировать любые буферы, которые соответствуют регулярным выражениям, перечисленным в ido-ignore-buffers.

Поведение, описанное ниже для iswitchb-mode, в равной степени относится к ido для переключения буферов.

iswitchb-mode(Emacs <24.4) </h2> iswitchb-mode заменяет стандартное поведение C-x b очень интуитивно понятной системой переключения буфера с завершением.Есть более сложные варианты, но мне никогда не нужно больше, чем это. После того, как вы нажмете C-x b, вам будет представлен список всех буферов.Начните вводить имя нужного буфера (или часть его имени), и список будет сужаться до совпадения только с одним буфером.Вам не нужно вводить имя, однако, как только нужный буфер будет выделен, нажатие клавиши ввода приведет вас к нему.Вы также можете использовать C-s и C-r для перемещения по списку по порядку. Вы можете включить его по умолчанию с помощью этого в своих .emacs: (iswitchb-mode 1) Вы можететакже скажите ему игнорировать определенные буферы, на которые вам никогда (или очень редко) не нужно переключаться: (setq iswitchb-buffer-ignore '("^ " "*Completions*" "*Shell Command Output*" "*Messages*" "Async Shell Command"))

15 голосов
/ 13 сентября 2011

Вы можете использовать C-x <right> (next-buffer) и C-x <left> (previous-buffer) для циклического перемещения по кольцу буфера. Вы можете связать S-<right> и S-<left> с этими функциями. (S - это "супер-ключ" или windows-ключ). Таким образом, вы можете сохранить некоторые нажатия клавиш.

Кроме того, обратите внимание, что C-x b имеет запись по умолчанию, т.е. она отображает стандартное значение (большую часть времени это ранее просматриваемый буфер), поэтому вам не всегда нужно явно вводить имя буфера.

Еще одна приятная уловка - открывать отдельные окна, используя C-x 2 и C-x 3. Это отображает несколько буферов одновременно. Затем вы можете привязать C-<tab> к other-window и получить что-то похожее на просмотр с вкладками.

8 голосов
/ 13 сентября 2011

M-x customize-group ido, затем установите Ido Mode на Turn on both buffer and file и установите Ido Everywhere на on.Затем нажмите кнопку Save for future sessions вверху и наслаждайтесь магией идо для файлов и буферов.Прочитайте документы , чтобы понять, как использовать ido.

Кроме того, взгляните на smex.

5 голосов
/ 14 сентября 2011
  1. ido-mode обеспечивает эффективный способ переключения буферов.
  2. ibuffer лучше всего подходит для управления всеми открытыми буферами.
  3. anything хорошо для выбора интересующей вещи из разных источники. (например: один ключ может быть использован для переключения на другой буфер или открыть недавно закрытый файл или открыть файл, находящийся в том же каталоге или ... все, что вы хотите ...)
2 голосов
/ 26 апреля 2012

Я сопоставил ключ «§» с «буферным списком» и считаю его очень эффективным.

2 голосов
/ 13 сентября 2011

Если вы просматривали Emacs Wiki, возможно, у вас уже есть вся эта информация, но вот несколько других важных вопросов и ответов:

Мой инструментарий состоит из ibuffer, windmove + framemove, mode-winner и пользовательской привязки для создания Cx left / right и Копия слева / справа меньше хлопот в использовании.

1 голос
/ 13 сентября 2011

Я начал использовать что-нибудь пару дней, и мне действительно это нравится: http://www.emacswiki.org/emacs/Anything .

Emacs-fu имеет хорошее вступление ко всему: http://emacs -fu.blogspot.com / 2011/09 / find-just-about-everything.html

0 голосов
/ 19 июня 2019
  • Моя любимая функция для этого - helm-mini, которая является частью helm .

Как и другие функции рулевого управления, он допускает постепенное сужение выделения. Он также ищет ваши недавно посещенные буферы, что является действительно хорошим способом повторно открыть буфер. Поначалу Helm может показаться немного удивительным, и, как новый пользователь Emacs, я нахожу это ошеломляющим и предпочел ido или ibuffer, что было предложено в других ответах. Но теперь я очень люблю это и использую это все время для бесчисленных вещей.

  • Что-то, что я понял случайно и что может быть полезным:

mouse-buffer-menu по умолчанию привязан к <C-mouse-1> (управляющая клавиша + щелчок левой кнопкой мыши) и открывает всплывающее окно со списком текущих буферов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...