데스크탑에서 시작할 때 gvim 파이프가 zshrc를 읽지 않습니다.

데스크탑에서 시작할 때 gvim 파이프가 zshrc를 읽지 않습니다.

저는 이를 zsh기본 셸로 사용하고 .zshrc환경 변수를 수정하는 데 사용합니다. gvim터미널에서 실행 하면 모든 것이 정상이지만 바탕 화면 아이콘을 사용하여 gvim을 실행하면 환경 변수가 사라집니다. (그냥 지우면 :shell작동하지만 :!명령은 작동하지 않습니다)

환경 변수를 이동하려고 시도했지만 .zprofile성공하지 못했습니다. 이동하면 작동 하지만 읽기가 없기 .profile때문에 변수를 다시 복사해야 합니다.zsh.profile

쉘의 내부 처리에 대해서는 잘 모릅니다 gvim. 명령 에서 읽 .zshrc거나 사용할 수 있나요 ?.zprofile:!

노트:시스템 을 사용하고 있습니다 ubuntu. 운영 체제와 관련된 모든 우아한 솔루션도 환영합니다.

답변1

.zshrc내 환경 변수를 수정하기 위해

이것이 문제의 근본 원인입니다. .zshrc대화형 셸 세션을 위한 시작 파일입니다. 환경 변수를 설정하는 대신 쉘 설정을 지정하려면 이를 사용하십시오. 환경 변수는 일반적 .profile으로 세션 파일에 설정됩니다..bashrc의 대안(해당되는 사항은 .bashrc모두 적용됩니다 .zshrc.)

zsh가 로그인 쉘인 경우 이를 읽지 않습니다 ~/.profile. ~/.zprofile터미널 아마도 시스템이 이미 설정된 방식일 것입니다. 그러나 더 정확한 정보 없이는 "작동하지 않는" 것이 무엇인지 말하기는 어렵습니다./bin/shSHELL=$(command -v zsh)~/.zprofile

로그인 쉘이 zsh인 경우 다음 행을 ~/.zprofile읽으십시오 .profile.

emulate ksh -c '. ~/.profile'

일반적 . ~/.profile으로 zsh와 Bourne 스타일 쉘 간의 비호환성은 .profile.

답변2

대화형 또는 로그인 셸이 아닌 경우 . ~/.zshenv다음은 "파일 시작/닫기" 섹션에서 가져온 것입니다 zshall(1).

Commands are then read from $ZDOTDIR/.zshenv.  If the shell is a login
shell,  commands  are  read  from  /etc/zsh/zprofile  and  then $ZDOT-
DIR/.zprofile.  Then, if the shell is interactive, commands  are  read
from  /etc/zsh/zshrc  and then $ZDOTDIR/.zshrc. Finally, if the shell
is a login shell, /etc/zsh/zlogin and $ZDOTDIR/.zlogin are read.

관련 정보