Atualizar o nome do buffer de vários termos com base no PWD

Se eu usar o konsole ou outro terminal, o nome da tag do terminal pode mudar com base no PWD. Mas no multi-termo, o nome do buffer é*terminal<number>*. Isso não é muito legal. Porque quando eu alternar entre eles, o nome não é muito informativo. Então, quero renomeá-lo com base no PWD.

Eu acho que oTecla Enter é vincular a term-send-raw, então eu escrevo uma função

(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))

Mas o problema épwd comando retornar oPWD do buffer de terminal, enquanto não é oPWD doSHELL nesse terminal.

oPWD do buffer de terminal é definido pordefcustom multi-term-default-dir. E isso não muda quando oPWD mudar noSHELL.

(defcustom multi-term-default-dir "~/"
  "The default directory for terms if current directory doesn't exist."
  :type 'string
  :group 'multi-term)

Como posso obter o PWD da SHELL no terminal?

Saudações.

questionAnswers(2)

yourAnswerToTheQuestion