Когда я открываю 2 файла в emacs, как я могу отобразить их рядом? - PullRequest
28 голосов
/ 14 июля 2011

Иногда я запускаю emacs из командной строки с двумя файлами, как показано ниже:

emacs foo.txt bar.txt

Это открывает окно emacs, разделенное по вертикали:

foo.txt
-------
bar.txt

Как я могу отредактировать мой файл .emacs так, чтобы он отображался рядом, например так:

        |
foo.txt | bar.txt
        |

EDIT : Чтобы уточнить, я знаю, как это сделать после запуска emacs (Mx 0, Mx 3, затем повторно посетите bar.txt в правом окне) , Я просто хочу, чтобы emacs по умолчанию разделялся рядом при запуске, так что мне не нужно это делать.

Ответы [ 6 ]

18 голосов
/ 14 июля 2011

Вот функция, которая изменит пару вертикальных окон на пару горизонтальных окон:

(defun 2-windows-vertical-to-horizontal ()
  (let ((buffers (mapcar 'window-buffer (window-list))))
    (when (= 2 (length buffers))
      (delete-other-windows)
      (set-window-buffer (split-window-horizontally) (cadr buffers)))))

Чтобы сделать это автоматически при запуске, добавьте эту функцию в emacs-startup-hook:

(add-hook 'emacs-startup-hook '2-windows-vertical-to-horizontal)
15 голосов
/ 14 июля 2011

Следующее (для добавления к вашему .emacs) делает результат разделения окна по умолчанию в буферах рядом друг с другом (а не один над другим):

(setq split-height-threshold nil) 
(setq split-width-threshold 0) 

Это значение по умолчанию также применяется, когдавы запускаете команду, такую ​​как find-file-other-window ( Ctrl x 4 f ).

(с другойвручную, чтобы разделить окно вручную и получить два параллельных буфера, рассмотрим этот ответ).

7 голосов
/ 14 июля 2011

Используйте M-x split-window-horizontally или Ctrl-x 3.

5 голосов
/ 29 июня 2012

Это хорошо сработало для меня. Используйте -f имя-функции из командной строки, чтобы настроить ваше разделенное рабочее пространство emacs так, как вам нравится. Это дает мне сетку 2 x 2 моих финансовых файлов, которые я обновляю каждый день, и в конце устанавливает курсор на соответствующее окно. Я сохраняю это в .bashrc в качестве псевдонима, чтобы можно было выполнить его одной командой (doc_financial).

alias doc_financial='emacs -nw financial_accounts.txt -f split-window-horizontally financial_budget.txt -f split-window-vertically financial_taxes.txt -f other-window -f split-window-vertically financial_tasks.txt -f other-window -f other-window -f other-window'
0 голосов
/ 25 ноября 2015

Ctrl -x 2 Разделенное окно сверху и снизу

Буфер 1 (сверху)
Буфер 2 (ниже)

Ctrl -x 3 Сплит окно, бок о бок

Буфер 1 (слева) | Буфер 2 (справа)

C-M-v Прокрутите другое окно

0 голосов
/ 14 июля 2011

Использовать разделенное окно по горизонтали.

...