我使用!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/