在Emacs中拆分窗口 - Tabbar仅显示活动缓冲区

时间:2013-04-08 13:56:47

标签: emacs elisp

我正在使用拆分Emacs框架将我的窗口移动到更方便的状态。 但是,有两件事让我感到困扰,我想知道它们是否可以改变:

  1. 我正在使用tabbar,当前打开的所有缓冲区都显示在所有窗口分割上。我想只显示当前分割可用的缓冲区。 因此,如果我在顶部拆分中打开somefile.org并在底部打开anotherfile.org,我希望每个标签栏列表(顶部和底部)中只显示相应的一个。

    < / LI>
  2. 我想知道是否有可能将模式行配置为仅在底部出现一次,并在我移动到其他窗口时刷新它。 tmux沿线的某些东西,对于那些知道的东西 - 信息是根据我目前所处的窗口而改变的(尽管它被称为窗格)。

  3. 修改

    关于第1点:

    假设我有2个开放式缓冲区 - file1.txtfile2.txt。第一个显示在顶部垂直分割中,另一个显示在底部垂直分割中。我希望顶部标签栏只显示file1.txt,而底部只显示file2.txt

1 个答案:

答案 0 :(得分:0)

以下是问题1的答案:

  
(setq tabbar-buffer-groups-function (lambda () (list
  (if (eq (get-buffer-window (current-buffer)) (car (window-list)))
     "my-active-buffer"
     "not-used"))))

我认为@phils对于第2个问题是正确的 - 也就是说,如果没有修改使Emacs成为现实的基础“C”源代码就不可能。


这是问题2的另一种方法,它使非活动窗口的模式行的背景与缓冲区的背景颜色相同。原始海报可以采用该代码并使非活动模式行的文本也与缓冲区的背景颜色相同,这将使非活动模式行完全不可见。但是,可见模式行自然会将位置切换到任何活动窗口。

https://stackoverflow.com/a/20936397/2112489

Example http://www.lawlist.com/images/modeline-example.png