zsh 스크립트에 대한 구성 파일을 정의할 수 있습니까?
저는 macOS 10.15를 실행 중이고 기본 셸은 zsh입니다. alias abc="echo yes"
내가 생각할 수 있는 모든 프로필은 ~/.zshrc, ~/.zsh_profile, ~/.profile 및 ~/.zsh_login에 정의되어 있습니다. 그러나 쉘 스크립트 t.sh 호출은 다음과 같이 abc
불평합니다 command not found: abc
.
⇒ cat t.sh
abc
⇒ zsh t.sh
t.sh:1: command not found: abc
⇒ sh t.sh
t.sh: line 1: abc: command not found
t.sh 상단에 줄을 추가하면 source ~/.zshrc
작동할 것이라는 것을 알고 있지만 알고 싶습니다.source ~/.zsh_login
내 컴퓨터에서 (내가) 실행한 모든 zsh 스크립트를 기본적으로 실행하는 구성 파일을 설정할 수 있습니까?
:!
예를 들어 프로그램의 명령 :!abc
뿐만 아니라 vim에서 명령을 호출할 때 별칭을 설정하고 싶기 때문에 이 질문을 드리는 것입니다.]
에 에. 또한 위의 질문과 관련이 없는 경우 알려주시기 바랍니다. 로그인 쉘과 비로그인 쉘 또는 다른 유형의 쉘이 혼동됩니다. 참고로 vim에서는 :!echo $0
return 을 /bin/zsh
하고 :!whoami
return 하므로 ***(my name)
로그인 셸인 것처럼 보입니다.
답변1
실행하는 모든 zsh 스크립트의 ~/.zshenv
소스는 다음과 같습니다.
=> cat ~/.zshenv
alias abc="echo yes"
=> cat t.sh
abc
=> zsh t.sh
yes
zsh 도트 파일의 단순화된 계층 구조:
~/.zshenv
- 모든 zsh 스크립트의 소스입니다.~/.zshrc
- 모든 대화형 zsh 세션(터미널에 연결된 세션)에서 시작됩니다. 일반적으로 여기에 별칭을 입력하는 것이 가장 좋습니다.~/.zprofile
- 그룹의 첫 번째 대화형 세션인 로그인 zsh 세션에서 시작됩니다.
사용하려면 대화 형 셸을 시작하도록 MacVim을 구성하여 ~/.zshrc
.
~/.gvimrc
let &shell='/bin/zsh -i'
다른 vim 버전의 경우 좀 더 복잡한 작업을 수행해야 할 수도 있습니다. 답변은 여기에서 확인하세요.
https://vi.stackexchange.com/questions/16186/how-to-run-zsh-aliased-command-from-vim-command-mode