tmux new pane має домашній каталог за замовчуванням замість попереднього каталогу


24

Коли я натискаю Ctrl+ "(створюю нову панель), перебуваючи в області, в якій є, PWD /tmpнаприклад, нова панель починається як моя домашня папка ~.

Я переглянув /unix//a/109255/72471, і це допомогло мені з тим же питанням, що стосується Windows.

Однак я не зміг виправити split-windowпроблему, вставивши її

bind " split-window -c "#{pane_current_path}"

в мою ~/.tmux.conf.

Я використовую tmux 1.9a, і для цього я не хочу досить безладного рішення для старих версій, зазначених тут (у моєму випадку це все одно не працює):

bind '"' set default-path "" \; split-window -v \; set -u default-path

Як я можу tmuxзапропонувати встановити каталог за замовчуванням як поточний шлях панелі під час створення нової області?

Відповіді:


45

Спробуйте вказати vвертикальну чи hгоризонтальну

У моєму .tmux.confфайлі є:

bind \ split-window -h -c '#{pane_current_path}'  # Split panes horizontal
bind - split-window -v -c '#{pane_current_path}'  # Split panes vertically

(Я використовую \і -як роздільники панелі одним пальцем.)

Нові панелі відкриваються для мене, використовуючи поточний каталог, де б я не був.
Це, безумовно, ключова особливість для мене!

Ще одна важлива річ, що стосується tmux (ця проблема була в даному випадку), це те, що вам потрібно застосувати зміни за допомогою:

tmux source-file ~/.tmux.conf

Зауважте, що закриваючі термінали, навіть вихід із системи та перезапуск, НЕ застосовуватимуть зміни в tmux - вам потрібно фактично використовувати цю команду (або використовувати Ctrl+ B :source-file ~/.tmux.conf).

Повний мій .tmux.confфайл ви можете побачити на веб- сайті https://github.com/durrantm/setups .


2
Ви сказали: "Зауважте, що закриття терміналів, навіть вихід із системи та перезапуск НЕ застосовуватимуть зміни tmux". Звичайно, якщо ви від'єднали лише tmux, він не застосує, але вбивство та перезапуск сервера застосують зміни :).
союка

2
Дуже дякую! Це було дуже корисно. Однак я майже впевнений, що перезапуск комп'ютера застосовує tmux зміни :)
vitiral

Перезавантаження комп’ютера не застосувало для мене змін, що раніше призводили до плутанини для мене. ymmv
Майкл

Зауважте, що те ж саме можна зробити і дляnew-window
math2001,

25
bind '%' split-window -h -c '#{pane_current_path}'  # Split panes horizontal
bind '"' split-window -v -c '#{pane_current_path}'  # Split panes vertically
bind c new-window -c '#{pane_current_path}' # Create new window

Додайте останній рядок до свого, ~/.tmux.confщоб підтримувати його і $PWDв новому вікні.


6

Це тому, що,

bind " split-window -c "#{pane_current_path}"

має бути

bind '"' split-window -c "#{pane_current_path}"

2

Якщо хтось потрапить сюди, шукаючи, це добре працює з tmux 2.7 і має бути добре з усіма версіями

unbind '"'
bind '"' split-window -v -c '#{pane_current_path}'  # Split panes vertically

unbind %
bind % split-window -h -c '#{pane_current_path}'  # Split panes horizontal
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.