如何在右侧窗口中打开emacs-nav buffer?

时间:2012-04-03 04:56:52

标签: emacs elisp

打开emacs-nav时,它会拆分窗口并将导航缓冲区放在左侧。我希望它改为右侧。并且可能使其缓冲区宽度保持不变。

可悲的是,我无法找到任何文档。

2 个答案:

答案 0 :(得分:3)

我可以在nav.el的底部看到(nav)调用(split-window-horizontally)选择了左侧窗口,然后调用(nav-in-place)调整所选内容窗口到导航窗口。

因此不支持使用右侧窗口;但是,假设没有其他任何东西需要调用nav-in-place(当然它没有在该文件中的任何其他地方引用),我们可以建议它在行动之前切换到另一个窗口。

(defadvice nav-in-place (before my-nav-in-other-window)
  "Start Nav in the other window, after splitting."
  (other-window 1))
(ad-activate 'nav-in-place)

答案 1 :(得分:1)

似乎建议的解决方案不再适用。

我必须重新定义整个导航功能

(defun nav-right ()
  "Run nav-mode in a narrow window on the left side."
  (interactive)
  (if (nav-is-open)
      (nav-quit)
    (delete-other-windows)
    (split-window-horizontally)
    ;;(other-window 1)
    (ignore-errors (kill-buffer nav-buffer-name))
    (pop-to-buffer nav-buffer-name nil)
    (set-window-dedicated-p (selected-window) t)
    (nav-mode)
    (when nav-resize-frame-p
      (nav-resize-frame))))