4

Я хотел бы иметь возможность автоматизировать процесс открытия нескольких файлов в Emacs в одном кадре, так что кадр разделяется на несколько окон. В настоящее время я могу открыть только 2 файла в одном фрейме emacs (2 окна), набрав его в терминале linux: emacs file1 file2 . Однако, если я попытаюсь открыть более 2 файлов, например, набрав emacs file1 file2 file3 то он откроет file3 в одном окне, а в другом окне появится «буфер CRM», в котором перечислены файлы в каталоге. ,

Как заставить его открыть более 2 файлов, чтобы фрейм emacs был разделен на более чем 2 окна?

Обратите внимание, что «окно» означает окно в смысле emacs, а не в смысле окон MS (фреймы).

2 ответа2

2

Вы можете предотвратить появление списка буферов, установив для параметраhibit inhibit-startup-buffer-menu значение t как описано здесь. Однако, это все еще не приводит к больше чем 2 окнам. Глядя на код инициализации в startup.el , это не похоже на настройку.

Однако команда ibuffer ibuffer-do-view (привязана к v) отображает несколько буферов так, как вы хотите. Вы можете использовать это программно. Поместите это в ваш файл .emacs :

(defun view-files-in-windows ()
  (ibuffer)                      ; Activate ibuffer mode.
  (ibuffer-mark-special-buffers) ; Mark the special buffers.
  (ibuffer-toggle-marks)         ; Toggle buffers, leaving the non-special ones
  (ibuffer-do-view))             ; Show each buffer in a different window.

Затем запустите emacs так:

$ emacs file1 file2 file3 file4 --eval "(view-files-in-windows)"

(Сбой, если файлов слишком много и окна станут слишком маленькими.)

1

Я не слишком знаком с ibuffer , но если ваши файлы последовательно пронумерованы, grid-files-sq может быть чем-то вроде того, что вы ищете, или вы можете использовать GridLayout

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .