emacs - показать текущий файл в другом фрейме

Я хочу сделать что-то похожее на iswitchb-buffer-other-frame, за исключением того, что программно установить имя файла в качестве текущего кадра. (с iswitchb-buffer-other-frame вы должны выбрать файл в интерактивном режиме)

Если iswitchb устарел, могу ли я добиться этого с помощью ido-mode или другого пакета (или непосредственно Lisp)?

Как я могу это сделать?


РЕДАКТИРОВАТЬ

Основываясь на ответе @pickle-rick, я скорректировал код в соответствии со своими потребностями.

  • Мне нужно использовать switch-to-buffer-other-window вместо switch-to-buffer-other-frame. Я не уверен, почему... В моих настройках у меня есть 2 кадра - каждый кадр имеет одно окно, и мне нужно переместить текущий буфер в другой кадр. Но это работает!
  • Кроме того, я заполняю исходный кадр произвольным буфером (*scratch*) (чтобы предотвратить отображение исходного буфера в исходном кадре)

Вот мой скорректированный код:

(defun my-switch-buffer-other-frame ()
  (interactive)
  (switch-to-buffer-other-window (current-buffer))
  (other-frame 1)
  (switch-to-buffer "*scratch*")
  (other-frame 1))

person Avner Moshkovitz    schedule 02.12.2019    source источник


Ответы (1)


Эквивалент ido — ido-switch-buffer-other-frame, который также предлагает интерактивный выбор. Вот простая модификация, чтобы избежать запроса и вместо этого использовать текущий буфер,

(defun my-switch-buffer-other-frame ()
  (interactive)
  (switch-to-buffer-other-frame (current-buffer)))
person Rorschach    schedule 02.12.2019