Emacs
emacs shell 模式(Mx shell)
當我使用 emacs Mx shell模式時,我在螢幕上看到奇怪的字元,我認為這些字元與我的提示(包括行尾)和顏色的使用有關。
所以,這是我在終端上看到的:
mperdikeas@thorin:~# $
這是我在 Emacs shell緩衝區中看到的內容:
^[]0;mperdikeas@thorin: ~^Gmperdikeas@thorin:~# $
這是我的.bashrc的相對部分:
if [ "$color_prompt" = yes ]; then PS1='${debian_chroot:+($debian_chroot)}\[\033[1;32m\]\u@\h\[\033[00m\]:\[\033[1;33m\]\w\[\033[00m\]#\n$' else PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w#\n$ ' fi
如何配置 emacs 以在shell緩衝區中正確顯示提示?
可能有一個更優雅的解決方案,但這對我有用。在 .bashrc 中任何與提示相關的行之後,插入以下內容,調整 PS1 的值以適合:
# Keep it simple if running in emacs. case "$TERM" in dumb) PROMPT_COMMAND= PS1="\u@\h:\W$ " esac
我認為您最好在 shell 模式設置中啟用 ansi-color 。
(eval-after-load 'shell '(progn (autoload 'ansi-color-for-comint-mode-on "ansi-color" nil t) (add-hook 'shell-mode-hook 'ansi-color-for-comint-mode-on t) t))