Подтвердить что ты не робот

Поведение emacs list-buffers

В GNU emacs каждый раз, когда я нажимаю Ctrl-x Ctrl-b, чтобы увидеть все мои буферы, окно разбивается на список буфера, или если у меня уже разбито мое окно на 2 (например, у меня будет оболочка работающий в нижнем окне), в другом окне отображается список буферов.

Мне нужно, чтобы список буфера отображался в моем активном окне, чтобы я мог выбрать буфер, который я хочу, и продолжать работать в том же окне, вместо того, чтобы иметь Ctrl-x Ctrl-o в другой буфер, выбрав буфер (с enter) и редактирование этого буфера в другом окне... Я искал его для поиска, но это не похоже на общее желание? Интересно, есть ли у кого-то эликсильное (или другое) решение?

4b9b3361

Ответ 1

Возможно, вы захотите перестроить C-x C-b для вызова buffer-menu, а не list-buffers:

(global-set-key "\C-x\C-b" 'buffer-menu)

Ответ 2

не совсем решение, но ido-mode обеспечивает другой и мощный способ взаимодействия с буферами. C-x b затем покажет список всех открытых буферов, и тот, который вы выберете, откроется в текущем окне.

Ответ 3

Просто настройте переменную same-window-regexps. display-buffer отобразит любой буфер, имя которого соответствует регулярному выражению в текущем выбранном окне.

(Вы хотите добавить "[*]Buffer List".)

Ответ 4

Попробуйте добавить

(ido-mode 1)

к вашим .emacs и получите результат:)

Ответ 5

Если вам нравится исходный список буферов (в отличие от решения 'buffer-menu, предложенного другими), вы можете использовать это:

(global-set-key (kbd "C-x C-b") 'my-list-buffers)
(defun my-list-buffers (&optional files-only)
  "Display a list of names of existing buffers.
The list is displayed in a buffer named `*Buffer List*'.
Note that buffers with names starting with spaces are omitted.
Non-null optional arg FILES-ONLY means mention only file buffers.

For more information, see the function `buffer-menu'."
  (interactive "P")
  (switch-to-buffer (list-buffers-noselect files-only)))

Это та же функция, что и раньше, только в текущем окне.

Ответ 6

Странно, здесь нет ответа о ibuffer.

Я бы рекомендовал это как стандартное изменение для большинства пользователей Emacs:

(global-set-key (kbd "C-x C-b") 'ibuffer)

ibuffer - это очень передовая замена для списка буфера по умолчанию, а также не только точное задание, но и множество других функций.

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

Ответ 7

Я очень рекомендую bs.el от http://www.geekware.de/software/emacs/ Установите его и:

(require 'bs)
(add-hook 'bs-mode-hook 'turn-on-font-lock)
(global-set-key "\C-x\C-b" 'bs-show)

Он управляет буферами и конфигурацией окна в правильном направлении, поэтому все требует минимального количества нажатий клавиш.

Ответ 8

Не знаю, где я получил это, но:

;;; Faster buffer switching
(global-set-key [(C tab)] 'buffer-menu) 

Это означает, что Ctrl-Tab отображает все буферы в текущем окне. Затем вы можете перейти в буфер и нажать Enter, чтобы посетить его.

Ответ 9

Еще одно не-то, что вам нужно: не выбирайте нужный буфер с помощью мыши, скорее закончите вводить его имя (используйте вкладку-завершение, чтобы уменьшить нажатия клавиш и повысить точность), а затем нажмите return. Список буфера исчезнет, ​​и новый файл будет открыт в ранее активном окне.