emacs 쉘 ​​모드(Mx 쉘)

emacs 쉘 ​​모드(Mx 쉘)

emacs Mx를 사용할 때껍데기패턴 프롬프트(줄 끝 포함) 및 색상 사용과 관련이 있는 것으로 생각되는 이상한 문자가 화면에 표시됩니다.

터미널에서 본 내용은 다음과 같습니다.

mperdikeas@thorin:~#
$ 

이것이 내가 Emacs에서 본 것입니다.껍데기완충기:

^[]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를 구성하는 방법껍데기완충기?

답변1

아마도 더 우아한 해결책이 있을 것입니다. 그러나 이것은 저에게 효과적입니다. .bashrc의 프롬프트 관련 줄 뒤에 다음을 삽입하고 PS1 값을 적절하게 조정합니다.

# Keep it simple if running in emacs.
case "$TERM" in
  dumb)
    PROMPT_COMMAND=
    PS1="\u@\h:\W$ "
esac

답변2

쉘 모드 설정에서 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))

답변3

추가 구축데이브 에이미의 답변.bashrc일을 단순하게 유지하기 위해 다음과 같은 내용을 넣었습니다.

case "$EMACS" in
    t)
    PROMPT_COMMAND=
    PS1="[\u@\h:\w]$ "
esac

$TERM내 경우에는 종속 값이 작동하지 않으며 Emacs에서는$EMACS 환경 변수를 true로 설정해야 합니다.그것이 생산하는 모든 껍질에 대해.

답변4

다음을 init 파일에 넣고 Emacs를 다시 시작하여 OSC(운영 체제 코드)에 대한 지원을 활성화해 보십시오:

(add-hook 'comint-output-filter-functions 'comint-osc-process-output)

자세한 내용은 다음을 참조하세요.쉘 모드Emacs 매뉴얼의 섹션 C-h i다음에 다음이 나옵니다 m Shell Mode <RET>:

기본적으로 셸 모드는 일반적인 ANSI 이스케이프 코드(예: 텍스트 색상을 변경하는 데 사용됨)를 처리합니다. Emacs에는 다음을 init 파일에 넣으면 특정 OSC(운영 체제 코드)와 같은 일부 확장 이스케이프 코드를 지원하는 옵션도 있습니다.

(add-hook 'comint-output-filter-functions 'comint-osc-process-output)

관련 정보