3

Из первого кадра, содержащего два окна Emacs, win-one, отображающий буфер buf-one, и win-two, отображающий buf-two, я хотел бы иметь возможность «разбить» win-two на его собственный кадр, возможно, используя щелчок модификатора на моделине. После этого,

  • и win-one, и win-two сохранят свои индивидуальные соотношения высоты / ширины и буфера, которые были у них в первом кадре
  • win-one останется в том же первом кадре, а win-два теперь будет в новом отдельном втором кадре
  • исходное положение, настройки цвета и шрифта будут сохранены, где это возможно

Мне было интересно, было ли это поведение доступно где-нибудь в стандартной библиотеке, было ли расширение для него, или, возможно, работала бы небольшая функция elisp?

3 ответа3

1

Да, есть такая команда: mouse-tear-off-window . Я привязываю его к C-mouse-1 в строке режима:

(global-set-key [mode-line C-mouse-1] 'mouse-tear-off-window)

Команда доступна в ванильном Emacs (emacs -Q). Но я использую свою собственную версию, которая не удаляет окно, если оно находится в своем фрейме. Вместо этого он клонирует рамку и окно. Эта версия находится в библиотеке мыши +.el. Строка документа:

,----
| mouse-tear-off-window is an interactive compiled Lisp function in
| `mouse+.el'.
| 
| It is bound to mode-line C-mouse-1.
| 
| (mouse-tear-off-window EVENT)
| 
| Create a new frame displaying buffer of window clicked on.
| If window is not the only one in frame, then delete it.
| Otherwise, this command effectively clones the frame and window.
`----
1

Это привязка по умолчанию:

C-x 5 C-o : display-buffer-other-frame

Что делает: Отображение буфера BUFFER в другом кадре.

0

Ты можешь использовать:

M-x new-frame

Я связал это с F9, например:

(global-set-key (kbd "<f9>") 'new-frame)

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