emacs의 쉘에 대해 .bash_profile 또는 .bashrc? 작성하여 저장하고 .bash_profile놀랍게도 emacs는

나는 거대한 명령에 대한 별칭을 작성하여 저장하고 .bash_profile놀랍게도 emacs는 내가 쓴 별칭을 선택하지 않았습니다 .bash_profile. 인터넷에서 검색 한 후 .bashrcalias 명령을 사용하여 $ HOME에 파일을 만들고 emacs가 별칭을 선택한 후에 만 만들었 습니다. terminal.app 가 별칭을 사용 .bash_profile하지만 emacs가에서 별칭 만 사용 하기 때문에 혼란 스럽 습니다 .bashrc.

나는 달리고 M-x shell있었고 나는 macOS에 있습니다. 누군가 emacs 및 .bashrc& 와의 관계를 설명해 줄 수 있습니까 .bash_profile?

더 많은 지점으로, 어떻게 이맥스 내 읽을 얻을 수 .bash_profile에의 추가를 .bashrc?



답변

이것이 올바른 행동입니다. .bash_profile소위 로그인 쉘을위한 것입니다. 당신이를 통해 다른 컴퓨터에 터미널 에뮬레이터에서 텍스트 모드에서 컴퓨터에 로그인하거나처럼 sshtelnet또는 …

.bashrc이미 로그인하여 새 xterm을 시작하거나이 경우 emacs ‘ shell모드 와 같이 비 로그인 쉘을위한 것 입니다.

일반적으로는에서 .bash_profile읽을 명령도 포함합니다 .bashrc.

if [ -f ~/.bashrc ]; then
    . ~/.bashrc
fi

그래서 .bashrc모든 시작시 읽습니다.


따라서 별칭은 .bashrc; 또한 별도의 구성 요소를 작성 하고 동일한 구성 .bash_aliases.bashrc통해 포함시키는 것이 일반적입니다 .

if [ -f ~/.bash_aliases ]; then
    . ~/.bash_aliases
fi

답변

@pingi가 작성한 사항 외에도 emacs 쉘 ​​( M-x shell) 에만로드되는 별도의 구성 파일을 사용할 수도 있습니다 .

매뉴얼 페이지 (emacs)에서 Interactive Shell :

Emacs는 파일 ‘~ / .emacs_SHELLNAME’의 내용을 입력으로 새 쉘에 입력으로 전송합니다. 여기서 SHELLNAME은 쉘이로드 된 파일의 이름입니다. 예를 들어, bash를 사용하는 경우 전송 된 파일은 ‘~ / .emacs_bash’입니다. 이 파일을 찾을 수 없으면 Emacs는 ‘~ / .emacs.d / init_SHELLNAME.sh’로 시도합니다.

Emacs 내에서 다른 쉘 프롬프트 형식을 사용하거나 파일을 emacsclient로 전달하는 기능을 정의하려는 경우에 유용합니다.