首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果使用除bash之外的任何内容,如何让term.el (ansi-term)跟踪目录

如果使用除bash之外的任何内容,如何让term.el (ansi-term)跟踪目录
EN

Stack Overflow用户
提问于 2010-08-18 09:48:23
回答 2查看 1.3K关注 0票数 5

在使用eshell或ansi-term和bash时,emacs会根据您所在的目录更改default-directory变量。

因此,如果我移动到/home/user/code/project,然后使用ido-find-file打开一个文件,它将使用CWD启动ido。如果我使用ksh (我正常的shell)或zsh (尝试测试),它不能工作。是否有一个设置,或者这只是bash支持的?

谢谢

EN

回答 2

Stack Overflow用户

发布于 2010-11-05 06:27:01

把这个放到你的.zshrc里:

代码语言:javascript
复制
chpwd() { print -P "\033AnSiTc %d" }

print -P "\033AnSiTu %n"
print -P "\033AnSiTc %d"

每次pwd更改时,都会运行chpwd()函数。以%d结尾的那一行允许您跟踪当前目录--我在函数外部重复它,以确保它在zsh第一次初始化时运行。但是Emacs要求我们首先告诉它当前用户是谁(这一行以%n结尾)。

这实际上是在term.el中解释的,如果你使用的是Ubuntu,它应该在/usr/share/emacs//lisp中。

希望这能有所帮助。

票数 9
EN

Stack Overflow用户

发布于 2010-08-18 13:02:46

对于这个问题,有许多解决方案。我碰巧更喜欢我的实现,它将提示符更改为包含当前路径,Emacs可以识别并使用该路径来获取您想要的行为。此外,我的解决方案隐藏了提示符中包含路径的部分,因为我觉得它很难看。

我的解决方案可以在博客文章中找到:Emacs Tip #25 Shell Dirtrack By Prompt

然而,在Emacs Wiki或其他地方可以找到许多其他的解决方案:

  • Shell dirtracking again
  • Emacs维基Shell Dirtrack By Prompt
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3508387

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档