Shell

從 Vim 脫殼時如何使 shell 別名可用?

  • June 25, 2015

在我的.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 最乾淨的解決方案是將別名添加到~/.zshenvzsh 為所有 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

引用自:https://unix.stackexchange.com/questions/113462