【问题标题】:Fastest way to navigate to directories across varying revision trees within emacs在 emacs 中跨不同修订树导航到目录的最快方法
【发布时间】:2019-02-22 16:47:13
【问题描述】:

我使用 Emacs 和修订跟踪器(perforce)来处理与工作相关的事情。

我有许多(~10)个不同的 Perforce 客户端,它们都具有相同的文件结构。我想使用通用命令导航到 Emacs 中这些客户端中的目录。

但是,客户端路径不同。我想让跨目录的导航独立于客户端名称;相反,应动态确定客户端名称。

例如,以下是我的客户的各种路径:

/home/scratch/client1/hw/unit1/
/home/scratch2/client2/hw/unit2/
/home/scratch3/client3/hw/unit1/

如您所见,每个客户端的路径各不相同,尽管遵循相同的结构。在这些客户端中的每一个中,文件结构都是相同的。因此,每个客户端的单元文件将具有相同的结构(即ip/src/ 或一些等效路径)

我看到了很多将目录添加为书签以快速跳转到它们的解决方案,但我需要一些能够在路径略有不同的所有客户端上动态工作的东西。目前,如果我使用书签功能,它会将我的整个客户端路径复制到目录,而不是基于我当前所在客户端的路径。

对我来说,这意味着我需要一些东西来动态确定客户端的位置,然后在每个客户端中显示相同的书签文件。

所以,假设我希望根据我所在的当前客户端显示以下三个带有书签的目录:

/path/to/client/ip/src/bin
/path/to/client/ip/src/etc
/path/to/client/ip/src/inc

如何在 Emacs 中执行此操作,以便根据我启动 Emacs 的位置动态计算客户端路径 (/path/to/client/),然后将客户端中的实际路径附加到客户端路径 (ip/src/bin)。

注意:我确实有 bash 别名来快速导航到独立于客户端名称的目录。但我想通过找到一个在 Emacs 内部工作的解决方案,尽可能减少 Emacs 和命令行之间的切换。

【问题讨论】:

    标签: emacs navigation directory bookmarks


    【解决方案1】:
    1. 当前客户端的路径是否在环境变量中可用?如果是这样,那么您可以在输入到find-file 的内容中使用该变量。完成时会展开。

    2. 调用 Emacs 本身的目录是变量 invocation-directory 的值。如果您的客户端位置很容易从中确定(“客户端路径 (/path/to/client/) 是根据我启动 Emacs 的位置动态计算出来的”),那么您可以定义一个读取文件的命令(或目录)名称在您的客户端目录中。

    对于#2,您的“客户端路径 (/path/to/client/) ...如何根据 [您] 启动 Emacs 的位置动态计算出来”?如果您显示该代码,那么其余的应该是微不足道的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-25
      • 1970-01-01
      相关资源
      最近更新 更多