3

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

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

  2. 我想知道是否有可能将模式行配置为仅在底部出现一次,并在我移动到另一个窗口时刷新它。对于那些知道的人来说,一些类似的东西tmux- 信息会根据我目前所在的窗口进行更改(尽管它被称为窗格)。

编辑:

关于第1点:

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

4

1 回答 1

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

例子
(来源:lawlist.com

于 2014-03-28T14:52:30.023 回答