1

У меня есть tmux 1.8 на моей машине, и он работает правильно, если я просто вызову его в командной строке, а tmux в командной строке.

Однако, когда я пытаюсь запустить tmux source-file <any-file> , я всегда получаю сообщение об ошибке failed to connect to server и tmux не запускается.

Я начал с попытки найти файл здесь, но в ходе отладки я смог воспроизвести проблему с совершенно пустым файлом.

Вот мой .tmux.conf:

set-window-option -g mode-keys vi
unbind C-b
set -g prefix C-a

bind h   select-pane -L
bind j   select-pane -D
bind k  select-pane -U
bind l  select-pane -R

bind -t vi-copy Enter begin-selection

Что-то конкретно мне нужно сделать, чтобы правильно сделать исходные файлы tmux 1.8 ?

2 ответа2

1

Похоже, у вас не работает сервер. Только определенные команды автоматически запускают сервер (new-session , attach-session и start-server); source-file не является одной из этих команд.

Вы можете включить команду start-server в ту же команду tmux чтобы явно запустить сервер:

tmux start-server \; source some-file

Примечание. Сервер tmux автоматически завершает работу, когда у него нет сеансов, поэтому, если вы не создадите сеанс (либо в ~/.tmux.conf , либо в some-file , либо с помощью другой команды new-session включенной в команду tmux ), затем сервер завершит работу сразу после завершения выполнения вышеуказанной команды tmux .


В качестве альтернативы, перед запуском команды tmux source … вы можете просто запустить сеанс заполнителя, который существует только для того, чтобы сервер работал:

tmux new-session -ds placeholder 2>/dev/null
⋮
tmux source some-file
0

До сих пор неясно, в чем была ошибка, но я нашел эффективный обходной путь.

Предполагая, что мой <any-file> выше имеет следующие строки:

Command1
Command2
Command3

Мой обходной путь - написать скрипт с:

#!/bin/bash

tmux Command1
tmux Command2
tmux Command3

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .