Shell
從 Vim 脫殼時如何使 shell 別名可用?
在我的
.zshrc
中,我聲明了一些別名。例如,which dbstart
顯示該別名的內容。如果我從那個 shell 打開 vim,它是一個子程序。在 Vim 中,我可以使用
:! some_command
. 如果我:! echo $0
查看 Vim 正在使用什麼 shell,它會輸出 ‘/bin/zsh’。但是,我的別名在那裡不可用。當我從 Vim 中退出時,如何使我的正常 shell 別名可用?
兩個想法:
- 不知何故
EXPORT
,從原始 shell 到它的子程序vim
,再到它的 shell 子程序的別名- 配置 Vim
.zshrc
在創建子 shell 時讀取 my
老問題,但 zsh 中 vim 最乾淨的解決方案是將別名添加到
~/.zshenv
zsh 為所有 shell、登錄、互動或其他方式載入的文件。這避免了使用標誌啟動 vim 或 zsh 以及任何可能的問題。
~/.zshenv
這裡對vs有一個很好的解釋:http~/.zshrc
: //tanguy.ortolo.eu/blog/article25/shrc基本上, zsh 總是來源
~/.zshenv
. 互動式 shell 源碼~/.zshrc
和登錄 shell 源碼~/.zprofile
和~/.zlogin
. 因此,一個互動式登錄 shell sources~/.zshenv ~/.zprofile ~/.zlogin ~/.zlogin
和一個非互動式非登錄 shell,如 vim 用來執行命令的 only sources~/.zshenv
。