Я хотел бы открыть файл foo.bar
дважды (или более) в Emacs, чтобы я мог редактировать две разные его части одновременно. Является ли это возможным? Наверное, лучший вопрос, как это сделать? Есть ли способ открыть каждый экземпляр в своем собственном буфере / фрейме?
28
Ответы:
Вы можете открыть один и тот же буфер в нескольких окнах (которые могут быть распределены по разным кадрам), но это не очень удобно. Каждое окно имеет свою точку, но все они имеют общую метку, режим файла, сужение и другие характеристики, потому что, кроме точки, почти все характеристики связаны с буфером. Кроме того, если вам случится посетить другой буфер в одном окне, вы потеряете свое место в файле.
Вы можете создать косвенный буфер, который имеет свою собственную точку, метку, режимы и т. Д., Но тот же контент, что и исходный буфер (и сохраняет запись в любой буфер в один и тот же файл). Чтобы создать второй буфер, который является клоном текущего буфера, запустите
M-x clone-indirect-buffer RET
. Чтобы открыть этот второй буфер в другом окне, вы можете напечататьC-x 4 c
.источник
C-x 4 c
работаетclone-indirect-buffer-other-window
, так что это будет использоваться вместоclone-indirect-buffer
, а не после этой команды. Однако в моей системе обе эти команды выполняют одно и то же.C-x 4
- это префикс для Windows,c
для клона . Вы можете определить другие привязки, если хотите.C-x c
не используется в конфигурации по умолчанию, вы можете использовать это, если вы не боитесь случайного удараC-x C-c
вместо этого. Я определяю,C-x 5 c
чтобы клонировать в новом кадре в моем файле инициализации.Режим разделенного экрана: где ctrl+ xозначает, нажмите и удерживайте клавишу Ctrl и введите x. Затем введите число, следующее.
ctrl+ x2 (горизонтальное разделение)
или
ctrl+ x3 (вертикальное разделение)
Затем вы можете прокрутить их независимо в том же файле или открыть другой буфер, если хотите в одном из них.
Чтобы вернуться к одному типу представления
ctrl+ x1
При желании вы можете разделить каждый экран (раздел) столько раз, сколько требуется. Сначала выберите экран, который вы хотите разделить, а затем выполните горизонтальное или вертикальное разделение на нем.
источник
C-x o
работаетother-window
и циклически просматривает видимые «окна» в каждом «кадре». (Используя конфигурацию emacs, где окна оконного менеджера называются фреймами, а отдельные панели внутри них называются окнами (я знаю, я знаю, но я за это не отвечаю).)Emacs склонен к панелям (окнам), а не к фреймам. Часто желательно открыть один и тот же буфер в другом кадре, а не просто в другом окне в том же кадре. Но
C-x 5 c
по умолчанию не связан. Этот код определяет отсутствующуюclone-indirect-buffer-other-frame
функцию:источник