这是个很奇怪的问题。我认为这一定是导致我的ansi-term配置错误的原因,但我仍然找不出它在哪里。
问题是:当我在ansi-term中按M-x find-file时,提示符不是当前目录,而是我在前一个查找文件操作中输入的路径。因此,当我改变目录时,它仍然显示相同的目录。所以每次我都要输入当前目录。但是它在M-x shell和M-x eshell中运行得很好。
发布于 2013-12-22 15:41:51
如果没有init文件启动Emacs,也就是emacs -Q,会发生同样的情况吗?如果是这样的话,那就是设计的行为,或者(特别是如果您使用开发快照)可能是Emacs错误。
如果没有,那么递归地对init文件进行分割,找出它的哪一部分会导致这种行为。要做到这一点,可以使用命令comment-region (请参阅文档中的前缀arg )来注释和取消注释一个文本块。注释掉init文件的1/2,然后是3/4,然后是7/8,.,每次测试未注释部分是否导致或消除了问题行为。您将非常迅速地确定是什么导致了这种行为。
发布于 2014-02-07 03:04:05
由于emacs的路径与术语的路径不同,所以只能使用emacs命令"cd“来更改。
因此,为了解决这个问题,我将以下代码添加到emacs配置文件中。方法是
我使用多项,我认为方法将类似于ansi项.
(defadvice term-send-input (after update-cwd)
(let* ((pid (process-id (get-buffer-process (current-buffer))))
(cwd (shell-command-to-string
(format "lsof -p %d -Fn | awk 'NR==2{print}' | sed \"s/n\\//\\//\" | tr -d '\n'" pid))))
(cd cwd)
(message (concat "change emacs path to: " cwd))))
(ad-activate 'term-send-input)然后您可以将术语发送输入的键绑定到<enter>。当按下术语中的<enter>时,emacs将更改为与当前术语路径相同的路径。
顺便说一句,我用的是Mac Os。如果您在Linux上,可以使用以下代码查找cwd。
(cwd (file-truename (format "/proc/%d/cwd" pid)))https://stackoverflow.com/questions/20729884
复制相似问题