Bí danh và tmux


12

Bí danh được xác định trong .bash_aliases.bashrckhông hoạt động trong tmux.

Điều này có thể được thay đổi trong một số cấu hình, vì vậy các bí danh hoạt động theo tmux?


2
Bạn có chắc chắn vấn đề là trong tmux? Tôi sử dụng tmux khoảng năm và chưa thấy vấn đề gì với bí danh. Cố gắng thêm set -xvào lúc bắt đầu của bạn .bashrcvà chạy trong tmuxlệnh source ~/.bashrc. Có thể bạn sẽ tìm thấy bất kỳ lỗi nào và nó sẽ giải quyết vấn đề của bạn.
vội vàng

Câu trả lời:


9

tmuxkhởi chạy shell đăng nhập theo mặc định, do đó ~/.bashrcsẽ không được thực thi (mà sau đó là nguồn ~/.bash_aliases. Bạn cần lấy nguồn ~/.bashrctừ ~/.bash_profile. Xem INVOCATIONphần của man bash.


19

( Câu trả lời của Chris Down có lời giải thích đúng nhưng không phải là cách giải quyết tốt)

Vấn đề của bạn bắt nguồn từ sự kết hợp của lỗi thiết kế bash và lỗi thiết kế tmux.

Theo mặc định, tmux bắt đầu một vỏ đăng nhập trong mỗi cửa sổ. Điều này không có ý nghĩa gì: nếu bạn đã đặt tmux làm vỏ đăng nhập của mình, bạn cần đặt default-commandtùy chọn thành một thứ khác ngoài tmux; và nếu bạn chưa đặt tmux làm vỏ đăng nhập, bạn cần đặt default-commandtùy chọn để tránh bắt đầu một vỏ đăng nhập bên trong tmux. Vì vậy, hãy bĩu môi này ~/.tmux.confđể nói với tmux để bắt đầu một lớp vỏ thông thường:

set-option -g default-command $SHELL

Sau đó, bạn .bashrcsẽ được đọc. Có một vấn đề khác với bash, không thành vấn đề ở đây nếu bạn định cấu hình tmux như được đề xuất ở trên, nhưng sẽ xuất hiện lại nếu bạn đăng nhập ở chế độ văn bản (trên bảng điều khiển văn bản hoặc qua SSH). Bash đọc ~/.bash_profiletrong shell đăng nhập và ~/.bashrctrong shell tương tác nhưng chỉ khi chúng không phải là shell đăng nhập. Để đọc ~/.bashrccả trong shell đăng nhập nếu chúng tương tác, hãy thêm phần này vào ~/.bash_profile:

case $- in *i*) . ~/.bashrc;; esac

+! Phải mất phần cuối cùng để sửa lỗi bí danh và dấu nhắc PS1 của tôi, nhưng nó đã làm được!
Michael Durrant
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.