Как я могу заставить команды перемещения окна игнорировать определенное окно?

StackOverflow https://stackoverflow.com/questions/1574922

  •  21-09-2019
  •  | 
  •  

Вопрос

Таким образом, у меня обычно открыто 3 буфера в Emacs.

  1. Один буфер для фактического кода, который я пишу.
  2. Один буфер для модульного теста для указанного кода.
  3. Третий буфер, который отображает результаты модульного теста.Этот буфер появляется на свет под двумя другими буферами, когда я запускаю свой модульный тест ПРОСТРАНСТВО C-x.

Как мне отключить этот третий буфер таким образом, чтобы при нажатии C-x o Я переключаюсь только между буфером 1 и буфером 2?В настоящее время я переключаюсь между буфером 1, затем буфером 2, затем буфером 3, затем буфером 1 и т.д.Чтобы быть конкретным, я хочу C-x o переключаться только между буферами 1 и 2.

Спасибо.

Это было полезно?

Решение

Общее решение этого (может выглядеть) примерно так:

(defvar ignore-windows-containing-buffers-matching-res '("\\*Help")
      "List of regular expressions specifying windows to skip (if window contains buffer that matches, skip)")

(defadvice other-window (before other-window-ignore-windows-containing activate)
  "skip over windows containing buffers which match regular expressions in 'ignore-windows-containing-buffers-matching-res"
  (if (and (= 1 (ad-get-arg 0)) (interactive-p))
      (let* ((win (next-window))
             (bname (buffer-name (window-buffer win))))
        (when (some 'identity (mapcar '(lambda (re)
                                        (string-match re bname))
                                     ignore-windows-containing-buffers-matching-res))
          (ad-set-arg 0 2)))))

Настройте переменную так, чтобы она была регулярным выражением, соответствующим именам буферов, которые вы хотите пропустить.

Другие советы

Ответ Трея будет делать именно то, что вы хотите (по крайней мере, похоже, что так оно и будет;Я еще не пробовал).Более общим решением было бы использовать swbuff с любым из них swbuff-x или мой собственный swbuff-advice.Информацию обо всех трех можно найти на сайте Страница swbuff в Emacs Wiki.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top