我经常在 emacs 里面用 vim

我在 29 最新版本都是没法在 ansi-term/term 下同步目录。 你应该是做了 shell 端的设置。

# 这是 zsh 需要做的修改
#
# INSIDE_EMACS 则是 Emacs 在创建 term/shell/eshell 时都会带上的环境变量
# 通常 shell/tramp 会将 TERM 环境变量设置成
# dumb,所以这里要将他们排除。
#
# shell 下的目录同步不采用这种方式
function precmd() {
  if [[ -n "$INSIDE_EMACS" && "$TERM" != "dumb" ]]; then
    echo -e "\033AnSiTc" "$(pwd)"
    echo -e "\033AnSiTh" $(hostname -f)
    echo -e "\033AnSiTu" "$LOGNAME"
  fi
}

这样设置是可以的,不过 vterm 也一样,都是要进行 shell 端的设置。

参考大佬对 term-mode 的介绍 :

1 个赞