1

我经常在不同的 GNU 屏幕窗口中打开几个 Emacs 实例。我怎样才能给他们单独的编译历史等?

问题是:当我M-x compile在一个窗口中的 Emacs 中执行并关闭它,然后在另一个 GNU 屏幕窗口中打开另一个 Emacs 时,它将(自然地)具有相同的历史记录,即,向上箭头给了我在其他窗口。

如何将它们设置为在单独的 GNU 屏幕窗口中使用单独的命令(等)历史记录?

4

1 回答 1

0

compilation-modecompile函数使用变量compile-history. 通常这不会在不同的 Emacs 实例之间共享。

即:如果您:

  • 转到一个屏幕会话并输入 emacs
  • 然后输入 Mx compile
  • 然后输入:“make nothing”作为编译命令
  • 然后转到另一个屏幕窗口并键入 emacs
  • 然后输入 Mx compile
  • 那么“一事无成”就不会被载入史册。

如果是,那么:

  • 以某种方式在该变量上启用了历史持久性,检查变量的文档以查看
  • 或者“emacs”命令实际上是一个 emacsclient 命令

说了这么多,如果你愿意,你仍然可以有不同的编译历史:

  • 在每个屏幕会话中设置一个环境变量
  • 将环境变量传递到 emacsclient 命令行上的 emacsclient 会话中,-e例如。
  • 建议 ( defadvice)函数根据传入的 ENV VARcompilation-read-command绑定一个新列表compile-history
于 2012-12-03T15:46:03.180 回答