В Emacs, как я могу держать много файлов открытыми одновременно?


10

На данный момент я использую, C-xC-fчтобы открыть новый файл, но он становится довольно утомительным.


Какова твоя цель? Открывать сразу несколько файлов? Или управлять множеством уже открытых файлов?
— viam0Zah

Или вы просто хотите увидеть несколько файлов одновременно? Поскольку Emacs сохраняет все эти файлы «открытыми» (в некотором смысле они загружены, но не «открыты» в смысле «дескриптор файла открыт»).
— Юрген А. Эрхард

Я хочу отредактировать несколько исходных файлов программы
— Yazz.com 19.02.10

Пройдите через это перед использованием emacs
— overexchange

Ответы:


19

Когда вы загружаете файл в Emacs с помощью find-file ( Ctrl-x Ctrl-fпо умолчанию привязан ), он помещается в «буфер». Пока вы не уничтожите буфер, он останется в памяти, вам не нужно его перезагружать.

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

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

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


1
Cx 3 также можно использовать для разделения экрана на два, Cx 0 для отображения только одного буфера одновременно.
— Реми

3

Cx b и Cx Cb - это то, что вы хотите. Также попробуйте попробовать iswitchb или ido. Поскольку я начал использовать их, я хотел бы, чтобы каждая программа, которую я использовал, могла переключать вкладки / окна / документы так же быстро и удобно, как emacs. Часто в emacs открываются 50 и более файлов, вы можете быстро найти тот, который вам нужен, с помощью iswitchb или ido.


1

Кроме того, если вы используете графическую версию emacs, вы можете сделать ctrl-x 5 b, чтобы открыть существующий буфер в новом окне (называемом фреймом в emacs-говорить), или ctrl-x 5 f, чтобы загрузить новый файл. в новом окне.


1
cx 5 b также работает в tty, но переключение кадров раздражает в tty режиме :)
— Джастин Смит

@ Джастин Спасибо. Я никогда не играл с кадрами в tty. Есть ли какая-то польза от использования нескольких буферов?
— KeithB

Вы можете использовать фреймы против окон так же, как вы используете рабочие пространства и окна в оконном менеджере Linux - т.е. для работы с elisp code frame 1 имеет два окна, одно с информационным файлом для elisp, другое с ielm для интерактивного тестирования кода, frame 2 имеет только одно окно с любым редактируемым файлом (так что вы можете получить как можно больше строк по возможности это неразделено). Приличное связывание клавиш для другого кадра может быть очень продуктивным, если вы по какой-то причине не захотите использовать X.
— Джастин Смит

0

Вы можете легко открыть несколько файлов одновременно (или действовать с ними другими способами).

  1. Используйте C-x dдля посещения каталога (папки), в котором перечислены все его файлы и подкаталоги.

  2. Отметьте файлы, которые хотите открыть (или действуйте каким-либо другим способом). Вы можете пометить файлы по отдельности или в группах на основе различных характеристик, включая шаблоны имен файлов. Смотрите меню строки меню Mark и Regexp - оно показывает некоторые доступные возможности маркировки, а также их сочетания клавиш.

Например:

  • % m отмечает файлы, имена которых соответствуют регулярному выражению.

  • % g отмечает файлы, содержимое которых соответствует регулярному выражению.

  • * * отмечает исполняемые файлы.

Чтобы открыть все отмеченные файлы одновременно, вам нужно загрузить стандартную библиотеку dired-x.el. Сделайте M-x load-library dired-xили положите (require 'dired-x)в свой файл инициализации.

Затем вы можете использовать F( dired-do-find-marked-files) для одновременного посещения всех отмеченных файлов. Используйте C-x C-bдля просмотра списка открытых буферов, где вы можете выбрать один из этих файловых буферов.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.