繁体   English   中英

如果使用除bash之外的任何其他内容,我如何才能拥有term.el(ansi-term)跟踪目录

[英]How can I have term.el (ansi-term) track directories if using anyhting other than bash

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

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

谢谢

把它放在你的.zshrc中:

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中。

希望这可以帮助。

这个问题有很多解决方案。 我碰巧更喜欢我的实现,它改变提示以包含当前路径,Emacs识别并使用它来获取所需的行为。 另外,我的解决方案隐藏了包含路径的提示部分,因为我发现它很难看。

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

但是,在Emacs Wiki或其他地方可以找到许多其他解决方案:

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM