在emacs中导航到不同修订树的目录的最快方法

问题描述 投票:0回答:1

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

我为Perforce提供了许多(~10个)不同的客户端,它们都具有相同的文件结构。我想制作通用命令以导航到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个回答
0
投票
  1. 环境变量中当前客户端的路径是否可用?如果是这样,那么你可以在你输入find-file的内容中使用该变量。它将在完成期间扩展。
  2. 调用Emacs本身的目录是变量invocation-directory的值。如果您的客户端位置很容易确定(“客户端路径(/path/to/client/)是根据我启动Emacs的位置动态计算出来的”),那么您可以定义一个命令来读取客户端目录中的文件(或目录)名称。

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

© www.soinside.com 2019 - 2024. All rights reserved.