2012-02-01 78 views
6

我用!ls來執行bash命令。但是當我在~/.profile文件中配置了source ~/.usr_profile之類的東西后,vim也不會生成這個文件。所以當我想執行在usr_profile中聲明的函數時,我必須運行:!source ~/.usr_profile && my_command。當我使用這一次或兩次,沒關係。但是經常使用它時,我的vimrc變得混亂。
有沒有更好的方法來解決這個problem.Thanks如何讓vim在使用「!」運行命令時使用與我的登錄shell相同的環境?

+0

可能的重複[我如何得到vim的:sh命令來源我的bashrc?](http://stackoverflow.com/questions/1694599/how-do-i-get-vims-sh-command-to- source-my-bashrc) – nwinkler 2015-09-01 06:42:34

回答

13

添加此行到您的~/.vimrc應該解決您的眼前的問題:

set shell=bash\ -l 

-l--login)的時候,bash在啓動時讀取您的~/.profile (以及其他文件)以及因此而來的所有內容。

當與-i--interactive)一起調用時,bash會在啓動時(其他文件中)讀取您的~/.bashrc,因此會從此處獲取所有內容。

嘗試$ man bash:h shell:h shellcmdflag瞭解更多信息。

至於登錄和非登錄shell之間的差異,我必須承認我的無知。無論如何,This answer on serverfault可能會有所幫助,這很有趣。

+0

+1對於有用的鏈接 – Ves 2012-02-01 08:20:47

+0

謝謝,這真的有用。 – 2012-02-01 08:28:17

相關問題