elisp 如何使用环境变量?

如图示: 启动emacs 我在mylisp 目录, 我执行了shell 命令开启了shell 模式. 在shell 模式下我跳转到了tw_pp_hjj 目录,我的源代码目录. 但是此时查看emacs 的default-directory 还在mylisp 目录. 现在想把default-directory 变量改为环境变量$PWD 或者pwd 命令的输出,应该怎样写? 这样当我用C-x C-f 打开文件时就可以从当前目录开始找了. 谢谢哦指教啦, 刚开始操作elisp, 先伸手了!

(defun my-chang-dir() “set default-directory to $PWD” (interactive) (setq default-directory (getenv “PWD”)))

这样的写法是不行的, 实测此时的(getenv “PWD”) 得到的是启动时的目录,而不是在shell中改变后的目录. 继续求指教, 是不是要用别的参数才能得到改变后的目录?

问题解决了, 原来shell.el 中已经处理好了.

(shell-resync-dirs) It is bound to M-RET.

凭己之力找到的,感谢围观!

1 个赞