Псевдоніми і tmux


12

Псевдоніми, визначені в .bash_aliasesі .bashrcне працюють tmux.

Чи можна це змінити в якійсь конфігурації, щоб псевдоніми працювали під tmux?


2
Ви впевнені, що проблема в tmux? Я використовую tmux близько року і не бачив жодних проблем із псевдонімами. Спробуйте додати set -xна початку вашого .bashrcта запустіть tmuxкоманду source ~/.bashrc. Можливо, ви знайдете будь-які помилки, і це вирішить вашу проблему.
пік

Відповіді:


9

tmuxзапускає оболонку входу за замовчуванням, тому ~/.bashrcне буде виконуватися (що згодом буде джерелом ~/.bash_aliases. Вам потрібно джерело ~/.bashrcз вашого ~/.bash_profile. Див. INVOCATIONрозділ man bash.


19

(Відповідь Кріса Дауна має правильне пояснення, але не вдале вирішення)

Ваша проблема випливає з поєднання помилки дизайну bash та помилки дизайну tmux.

За замовчуванням tmux запускає оболонку для входу у кожне вікно. Це не має сенсу: якщо ви встановили tmux як свою оболонку для входу, вам потрібно встановити default-commandпараметр на щось інше, ніж tmux; і якщо ви не встановили tmux в якості оболонки для входу, вам потрібно встановити default-commandпараметр, щоб уникнути запуску оболонки для входу всередині tmux. Тож майте це у своєму, ~/.tmux.confщоб сказати tmux запустити звичайну оболонку:

set-option -g default-command $SHELL

Тоді ваше .bashrcбуде прочитане. Є ще одна проблема з bash, яка тут не має значення, якщо ви налаштовуєте tmux, як було рекомендовано вище, але яка з’явиться знову, якщо ви увійдете в текстовий режим (на текстовій консолі або через SSH). Bash читає ~/.bash_profileв оболонках для входу та ~/.bashrcв інтерактивних оболонках, але лише якщо вони не є оболонками для входу. Щоб ~/.bashrcтакож читати в оболонках для входу, якщо вони інтерактивні, додайте це до своїх ~/.bash_profile:

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

+! Ця остання частина знадобилася для виправлення моїх псевдонімів та підказки PS1, але це було!
Майкл Дюрант
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.