2009-09-08 31 views
10

Tôi có một số bí danh và hàm được định nghĩa trong ~/.bashrc.Lệnh từ .bashrc không có sẵn trong Emacs

tôi bắt đầu emacs từ một cửa sổ terminal sử dụng emacs -nw

Khi tôi thực hiện M-x shell-command, các bí danh và chức năng từ ~/.bashrc không có sẵn, nhưng cung cấp một "command not found".

Tôi đã googled khá nhiều nhưng tất cả các bài viết tôi đi qua nói, nếu tôi hiểu chúng một cách chính xác, rằng ~/.bashrc là nơi mà điều này sẽ làm việc (chứ không phải là ~/.profile hoặc ~/.bash_profile).

Tôi đang thiếu gì?

Trả lời

8

biệt hiệu là chỉ có trong vỏ tương tác - một bản chụp từ trang man bash:

biệt hiệu không được mở rộng khi vỏ là không tương tác, trừ khi expand_aliases shell tùy chọn được thiết lập sử dụng shopt (xem mô tả của shopt theo SHELL BUILTIN COMMANDS bên dưới).

2

Nếu bạn bắt đầu Emacs từ một vỏ tương tác (trong đó .bashrc vv đã thực hiện), sau đó các lệnh từ .bashrc của bạn nên có sẵn cho cả shell-commandshell, ít nhất đó là cách nó làm việc cho tôi .

Nhưng đúng như câu trả lời khác nói, không có cách nào thực sự để có được môi trường .bashrc trong các emacs. Có một số tài liệu về tệp .emacs_bash, nhưng điều đó không bao giờ làm việc cho tôi.


Được hiểu sai câu hỏi của bạn tại đây. Nếu bạn đang tìm kiếm các hàm và bí danh thay vì các lệnh bằng cách thay đổi đường dẫn trong .bashrc, thì sự tương tác không phải là vấn đề. Tôi đoán bạn có thể thay đổi đối số mặc định thành lệnh shell (xem explicit-bash-args) để làm cho tương tác bash, nhưng điều đó có thể có hậu quả không mong muốn.

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