Одновременное чтение нескольких информационных файлов Emacs

Для чтения программирования (и других) документации, режим Emacs INFO является выдающимся. Настолько замечательный, что я хотел бы читать, скажем, информационный файл Emacs Lisp и файлы информации о режиме org-mode одновременно, не переходя обратно к началу информационного дерева. Либо я пропустил что-то очевидное, либо мне нужно взломать Emacs Lisp для достижения цели. И все же снова кто-то, возможно, уже расколол этот орех. Поэтому, я думаю, мой вопрос: каково состояние практики для чтения файлов INFO с несколькими файлами в Emacs одновременно?

Ответы

Ответ 1

Если вы посмотрите на документацию для команды 'info (по умолчанию привязана к C-h i), вы обнаружите, что вы можете легко создавать новые буферы *info* с числовым префиксом.

C-u 1 C-h i
C-u 42 C-h i

Это создает информационные буферы с именем *info*<1> и *info*<42>.

Документация для команды 'info (основное внимание):

Введите "Информация", браузер документации. Необязательный аргумент file-or- nodeуказывает файл для проверки; default - это каталог верхнего уровня Информация. Вызывается из программы, file-or- node может указывать Info nodeформы `(FILENAME) NODENAME '. Необязательный буфер аргументов указывает Имя информационного буфера; буфер по умолчанию имя - информация. Если буфер существует, просто переключитесь на буфер. В противном случае, создать новый буфер с верхним уровнем Информационный каталог.

В интерактивном использовании нечисловой аргумент prefix направляет эту команду для чтения имени файла из Минибуфер. Числовой префиксный аргумент выбирает буфер Info с префиксом номер, добавленный в буфер Info имя.

Кроме того, по умолчанию в буфере *info* M-n привязан к 'clone-buffer, который создаст новый *info* буфер, просматривающий ту же страницу.

Ответ 2

На всякий случай, если вы хотите brew создать собственную чашку с помощью emacs lisp, доступна функция "generate-new-buffer-name":

Эта функция возвращает имя, которое будет уникальным для нового буфера, но не создает буфер. Он начинается с имени запуска и производит имя, которое в настоящее время не используется для любого буфера, добавляя число внутри "<... > . Он начинается с 2 и продолжает увеличивать число пока это не будет имя существующего буфера.

например

(defun my-info-with-own-buffer ()
    (interactive)
    (info nil (generate-new-buffer-name "*info*")))

при вызове откроется новый информационный буфер в верхнем каталоге node.