Aktualisieren Sie den Namen des Mehrfachpuffers basierend auf PWD

Wenn ich eine Konsole oder ein anderes Terminal verwende, kann sich der Name des Terminal-Tags je nach PWD ändern. Im Mehrfachbegriff lautet der Puffername jedoch*terminal<number>*. Das ist nicht sehr schön. Denn wenn ich zwischen ihnen wechsle, ist der Name nicht sehr informativ. Also möchte ich es basierend auf PWD umbenennen.

Ich finde das dieEnter-Taste ist an term-send-raw gebunden, daher schreibe ich eine Funktion

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

Aber das Problem istpwd Befehl zurück diePWD des Terminalpuffers, während es nicht der istPWD desSHELL in diesem Terminal.

DasPWD des Terminalpuffers wird durch gesetztdefcustom multi-term-default-dir. Und es ändert sich nicht, wenn diePWD Änderung in derSHELL.

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

Wie kann ich die PWD der SHELL in das Terminal bekommen?

Grüße.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage