2012-02-01 22 views
6

Tôi sử dụng !ls để thực thi lệnh bash. Nhưng sau khi tôi đã cấu hình một cái gì đó như source ~/.usr_profile trong tập tin ~/.profile, vim sẽ không nguồn tập tin này là tốt. Vì vậy, khi tôi muốn thực thi một hàm được khai báo trong usr_profile, tôi phải chạy :!source ~/.usr_profile && my_command. Khi tôi sử dụng này một lần hoặc hai lần, nó là ok. Nhưng khi sử dụng nó thường xuyên, vimrc của tôi trở nên lộn xộn.
Có phương pháp nào tốt hơn để giải quyết việc này problem.ThanksLàm thế nào để làm cho vim sử dụng môi trường giống như shell đăng nhập của tôi khi chạy các lệnh bằng "!"?

+0

bản sao có thể có của [Làm thế nào để tôi nhận được lệnh của vim: lệnh sh đến nguồn bashrc của tôi?] (Http://stackoverflow.com/questions/1694599/how-do-i-get-vims-sh-command-to- source-my-bashrc) – nwinkler

Trả lời

13

Thêm dòng này để ~/.vimrc bạn nên giải quyết vấn đề trước mắt của bạn:

set shell=bash\ -l 

Khi gọi với -l (--login), bash đọc ~/.profile của bạn lúc khởi động (trong số các tệp khác) và do đó mọi thứ có nguồn gốc từ đó.

Khi được gọi với -i (--interactive), bash đọc số ~/.bashrc khi khởi động (trong số các tệp khác) và do đó mọi thứ có nguồn gốc từ đó.

Hãy thử $ man bash hoặc :h shell:h shellcmdflag để biết thêm thông tin.

Đối với sự khác biệt giữa đăng nhập và không đăng nhập, tôi phải thừa nhận sự thiếu hiểu biết của mình. This answer on serverfault có thể giúp, nó thú vị, anyway.

+0

+1 cho liên kết hữu ích – Ves

+0

Cảm ơn, điều này thực sự hiệu quả. –

Các vấn đề liên quan