
나는 동료의 컴퓨터에서 프로그래밍을 하고 있습니다. 그는 내가 이전에 사용해 본 적이 없는 emacs 버전(23.1.1)을 가지고 있습니다. 내 문제는 쉘 모드로 갈 때 bash 프롬프트가 다음과 같다는 것입니다.
^[]0;jay@socrates:~^G[jay@socrates]$
내 에 PS1
로 설정 했습니다 . 다음과 같이 보일 것입니다 :'[\u@\h]\$ '
.bashrc
[jay@socrates]$
이것이 일반 쉘에서 보이는 모습입니다. 또한 Emacs 셸에서 PS1이 올바른 값으로 설정되어 있는지 확인했기 때문에 이제 아이디어가 없습니다. 내가 원하는 대로 보이도록 메시지를 받으려면 어떻게 해야 합니까?
. 대신 term
or 를 사용하라는 몇 가지 제안을 보았습니다 . 위와 동일한 프롬프트 문제가 있으며 실제로 도움이 되지 않도록 완전히 무시합니다 .eshell
shell
term
eshell
PS1
답변1
쉘이 XTerm(또는 다른 콘솔) 제목/헤더를 설정하려고 합니다. 이를 수행하는 방법에는 여러 가지가 있습니다.
먼저 PS1이 실제로 당신이 생각하는 것과 맞는지 확인하십시오.
echo $PS1 | less -E
프롬프트에 제어 문자가 있는지 알려줄 것이고, 덜하면 재미있어 보일 것입니다. 프롬프트가 말한 것과 정확히 같다고 가정하면 아마도 PROMPT_COMMAND 환경 변수일 것입니다. 똑같이 보시면 됩니다...
echo $PROMPT_COMMAND | less -E
프롬프트 명령이 문제인 경우 설정을 해제하면 됩니다. 두 경우 모두 이러한 변수는 어딘가에 설정되고 있으며 XTerm에 있지 않은 경우 XTerm 헤더를 업데이트하도록 설정해서는 안 됩니다!
"표준" bashrc(/etc/bashrc)를 살펴볼 수 있습니다. 반복 쉘(PS1 세트)을 확인한 다음 xterm($TERM 변수 확인)을 확인하고 다른 터미널 유형과 다른 작업을 수행하는 코드를 볼 수 있습니다.
나는 bash 초기화 어딘가에 xterm 호환 콘솔 프로그램에서만 수행되어야 하는 하드 코딩된 설정이 있다고 생각합니다. man bash
검색할 수 있는 전체 파일 목록을 찾으려면 읽어보세요 .
위의 방법이 모두 실패하면 시도해 보세요.
printenv | less
그리고 거기에서 의심스러운 것을 발견한 다음 그것이 어디에 설정되어 있는지 추적하십시오. 해결할 수 없다면 여기에 게시하세요.
답변2
나는 똑같은 문제를 겪었고 이는 PROMPT_COMMAND 때문입니다. 나는 xterm 제목을 좋아한다. 그래서 ~/.emacs_bash에 다음 줄을 추가했습니다.
export PROMPT_COMMAND=""
답변3
emacs 쉘과 일반 쉘의 터미널 유형과 관련이 있을 수 있습니다. TERM
두 쉘 모두에서 환경 변수가 무엇으로 설정되어 있는지 확인하십시오 . 서로 다른 경우 emacs 쉘 터미널 유형을 변경하거나 에서 emacs 터미널 유형에 대해 다른 PS1 정의를 사용할 수 있어야 합니다 .bashrc
.
시도해 볼 수도 있습니다 M-x ansi-term
( ansi-color-for-comint-mode-on
색상 프롬프트가 있는 경우).
답변4
이것은 stackoverflow 사이트에서 매우 잘 답변되었습니다. 다니엘 포.
색상을 지원하는 AnsiTerm을 사용하거나 일반 쉘에 대해 AnsiColor를 활성화할 수 있습니다.
(autoload 'ansi-color-for-comint-mode-on "ansi-color" nil t)
(add-hook 'shell-mode-hook 'ansi-color-for-comint-mode-on)