如果我使用 konsole 或其他终端,终端标签名称可以根据 PWD 更改。但在多术语中,缓冲区名称是*terminal<number>*
. 这不是很好。因为当我在它们之间切换时,名称不是很丰富。所以我想根据 PWD 重命名它。
我发现Enter key绑定到 term-send-raw,所以我写了一个函数
(defadvice term-send-raw (around rename-term-name activate)
(progn
(rename-buffer
(concat "⇒ "
(shell-command-to-string "pwd | xargs basename | tr -d '\n'")
(format-time-string " [%M ∞ %S]")))
ad-do-it))
但问题是pwd
命令返回PWD
终端缓冲区的,而不是该PWD
终端中的SHELL
。
PWD
终端缓冲区的 由设置defcustom multi-term-default-dir
。并且它不会PWD
在SHELL
.
(defcustom multi-term-default-dir "~/"
"The default directory for terms if current directory doesn't exist."
:type 'string
:group 'multi-term)
如何在终端中获取 SHELL 的 PWD?
问候。