Nat*_*ong 12 shell vim alias environment-variables
在 my 中.zshrc,我声明了一些别名。例如,which dbstart显示该别名的内容。
如果我从那个 shell 打开 vim,它就是一个子进程。在 Vim 中,我可以使用:! some_command. 如果我:! echo $0要查看 Vim 正在使用什么 shell,它会输出“/bin/zsh”。但是,我的别名在那里不可用。
当我从 Vim 退出时,如何使我的普通 shell 别名可用?
两个想法:
EXPORT,别名从原始 shell 到它的子进程vim,再到它的 shell 子进程.zshrc在创建其子 shell 时读取 myKev*_*Lee 13
老问题,但是 zsh 中 vim 最干净的解决方案是将别名添加到~/.zshenvzsh 为所有 shell、登录、交互或其他方式加载的文件。这避免了使用标志启动 vim 或 zsh 以及任何可能的问题。
这里有一个很好的~/.zshenvvs解释~/.zshrc:http : //tanguy.ortolo.eu/blog/article25/shrc
基本上, zsh 总是提供~/.zshenv. 交互式 shell 源代码~/.zshrc和登录 shell 源代码~/.zprofile和~/.zlogin. 因此,一个交互式登录 shell 源~/.zshenv ~/.zprofile ~/.zlogin ~/.zlogin,以及一个像 vim 用来运行命令的非交互式非登录 shell源~/.zshenv。
看起来这适用于 zsh:
$ZDOTDIR=所在目录.zshrc。例如,export ZDOTDIR=$HOME.vimrc,set shell=zsh\ -i或set shellcmdflag+=i为了同样的效果。这-i是因为,当以交互模式启动时,zshell 会加载$ZDOTDIR/.zshrc. 查看man zsh和搜索$ZDOTDIR详细信息。