Подтвердить что ты не робот

Быстрый переход Emacs для перехода от горизонтального разделения к вертикальному расколу за один ход?

Я часто переключаюсь с горизонтального представления двух окон в emacs на вертикальный вид. Для этого мне нужно сначала сделать C-x 1, а затем C-x 3, а затем C-x o, а затем C-x b <RET>, чтобы переключиться на другой буфер или что-то в этом роде. Я бы хотел только напечатать C-x | (аналогично тому, как в Ediff вы нажали |, чтобы переключить разделенное представление).

Я нашел это на сайте wiki emacs: http://www.emacswiki.org/emacs/ToggleWindowSplit

Но как мне сопоставить это ключевое комбо, которое я хочу? Или есть ли более простой способ сделать это (занимая меньше пространства .emacs).

4b9b3361

Ответ 1

В последней строке указывается комбинация клавиш. Это должно быть (global-set-key (kbd "C-x |") 'toggle-window-split)

Ответ 2

Сделать проще для других людей, которые также искали script (в этой ссылке: http://www.emacswiki.org/emacs/ToggleWindowSplit), уже изменен с помощью другого ключевого слова ответа:

(defun toggle-window-split ()
  (interactive)
  (if (= (count-windows) 2)
      (let* ((this-win-buffer (window-buffer))
         (next-win-buffer (window-buffer (next-window)))
         (this-win-edges (window-edges (selected-window)))
         (next-win-edges (window-edges (next-window)))
         (this-win-2nd (not (and (<= (car this-win-edges)
                     (car next-win-edges))
                     (<= (cadr this-win-edges)
                     (cadr next-win-edges)))))
         (splitter
          (if (= (car this-win-edges)
             (car (window-edges (next-window))))
          'split-window-horizontally
        'split-window-vertically)))
    (delete-other-windows)
    (let ((first-win (selected-window)))
      (funcall splitter)
      (if this-win-2nd (other-window 1))
      (set-window-buffer (selected-window) this-win-buffer)
      (set-window-buffer (next-window) next-win-buffer)
      (select-window first-win)
      (if this-win-2nd (other-window 1))))))

(global-set-key (kbd "C-x |") 'toggle-window-split)