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

Окна с вкладками на Emacs

Я пытаюсь получить несколько вкладок в таких окнах, как vim. В вкладках vim не привязаны к буферам, и вы можете иметь несколько вкладок, каждый из которых имеет несколько разделов и буферов. Что я нашел до сих пор:

  • вкладка: отображает все вкладки.
  • winring: не отображает вкладки в окне и неудобно использовать (сначала нужно указать каждую вкладку). Это самое близкое к тому, что я хочу.

Есть ли у кого-нибудь идеи, если это возможно? Tabs + emacs трудно найти; большинство из того, что я нахожу, обсуждают пробелы vs tabs:)

Update: Этот рисунок показывает то, что я хочу.

enter image description here

Несколько вкладок и множество разделенных буферов на каждой вкладке.

4b9b3361

Ответ 1

Я использую что-то, называемое ElScreen, которое позволяет мне делать то, что вы ищете. На самом деле я тоже хотел эту функцию от VIM, когда я решил начать использовать Emacs.

Ниже приведен код, который я использую для ElScreen. Я даже использовал тот же тип привязки клавиш, что и в VIM. Control-C, а затем tabe или tabd для эмуляции :tabe или :tabd в VIM.

Чтобы перебрать следующий экран или вкладку в этом случае, я использую Control Meta _ и Control Meta +.

;; ---------------------------------------
;; load elscreen
;; ---------------------------------------
(load "elscreen" "ElScreen" t)

;; F9 creates a new elscreen, shift-F9 kills it
(global-set-key (kbd "C-c t a b e") 'elscreen-create)
(global-set-key (kbd "C-c t a b d") 'elscreen-kill)

;; Windowskey+PgUP/PgDown switches between elscreens
(global-set-key (kbd "C-M-_") 'elscreen-previous)
(global-set-key (kbd "C-M-+") 'elscreen-next)

Вот пример настройки вкладки в действии:

Первый экран.

alt text

Второй экран:

alt text

У вас могут быть разбитые буферы с помощью C-x 3 и C-x 2 на вкладке:)

Ответ 2

tabbar, безусловно, самый популярный пакет, который я думаю, но только показывает вкладки для буферов с тем же режимом, который вы редактируете (например, если вы работаете в файле в режиме python, это будет показывать вкладки только для всех буферов в режиме python). Это поведение по умолчанию в любом случае; Я почти уверен, что вы можете настроить это, если хотите. Но у меня сложилось впечатление, что популярный способ управления несколькими буферами в Emacs - это ibuffer и ido-mode. Например, мои настройки .emacs включают

(require 'ido)
(ido-mode t)
(global-set-key "\C-x\C-b" 'ibuffer)

Ответ 3

Вы можете сделать C-x 4 c для клонирования буфера: создать косвенный буфер, который является двойной копией текущего буфера. Он позволяет отображать один и тот же буфер с разными основными режимами в разных окнах.

Затем с tabbar вы можете иметь разные вкладки, показывающие один и тот же буфер в разных режимах, например.