vim - 使用 “!”运行命令时,如何使vim使用与我的登录Shell相同的环境?

标签 vim

我使用!ls执行bash命令。但是,当我在source ~/.usr_profile文件中配置了类似~/.profile的内容后,vim也不会再输出该文件。因此,当我想执行usr_profile中声明的函数时,必须运行:!source ~/.usr_profile && my_command。当我使用一次或两次时,没关系。但是,当经常使用它时,我的vimrc会变得凌乱。
有没有更好的方法来解决这个问题。

最佳答案

将此行添加到~/.vimrc应该可以解决您的直接问题:

set shell=bash\ -l

当使用-l(--login)调用时,bash会在启动时(以及其他文件中)读取~/.profile,从而从中获取所有内容。

当使用-i(--interactive)调用时,bash会在启动时(以及其他文件中)读取~/.bashrc,从而从中获取所有内容。

尝试$ man bash:h shell:h shellcmdflag获取更多信息。

至于登录 shell 和非登录 shell 之间的区别,我必须承认我的无知。无论如何,This answer on serverfault可能会有所帮助。

关于vim - 使用 “!”运行命令时,如何使vim使用与我的登录Shell相同的环境?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9092347/

相关文章:

vim 完成删除键入的字母

visual-studio - 有人知道Visual Studio有任何(免费/开源)VI集成吗?

linux - 如何在 gnome 终端中使用 Vim 启用括号粘贴模式?

regex - 如何使用 * 模式删除 vim 中的搜索元素

vim - 使Vim仅进行软包装,而不进行硬包装

vim - IntelliJ 终端光标形状

vim - 在 gvim 中突出显示光标下的单词

MacVim 中的 Vim powerline (Lokaltog's) 奇怪的字符

android - 什么 vim errorformat 用于 Android 的 layoutopt 工具?

vim - 从目录/文件列表中打开文件后,如何获取上一个目录列表?