Вопрос или проблема
Итак, я создал мой ~/.tmux.conf, как было предложено в других ветках, двумя различными способами
tmux show -g | cat > ~/.tmux.conf
tmux show -g > ~/.tmux.conf
Я протестировал оба, и они оба выдают мне ошибку:
/root/.tmux.conf:25: unknown command:
за которым следуют все настройки при загрузке от первой строки до предпоследней строки, последняя строка – это привязка, которую я добавил:
bind -n C-x setw synchronize-panes
Хорошая новость в том, что моя привязка работает…
Я не имею ни малейшего понятия, что вызывает ошибку, но тот факт, что моя привязка работает, заставляет меня думать, что вам, возможно, стоит добавлять только дополнительные конфигурации, а не умолчания в .tmux.conf
Любая помощь с этой проблемой или разъяснение будет очень признательна.
Кажется, синтаксис tmux.conf
изменился, и эти команды больше не создают синтаксически корректный файл.
Чтобы преобразовать опции, показанные tmux show -g
, в корректные команды tmux, вам нужно добавить set-option -g
(короткий псевдоним: set -g
) перед каждой из них. Выполните эту команду в сессии tmux
(предупреждение: она перезапишет существующий .tmux.conf
; используйте >>
, если необходимо):
tmux show -g | sed 's/^/set -g /' > ~/.tmux.conf
Примечание: одна из строк, которые генерирует мой tmux show -g
, это prefix2 <NONE>
, которая, кажется, становится недействительной позже. Просто удалите её, если необходимо, многие другие строки должны быть в порядке. Моя версия tmux
– 2.1-3build1 в Kubuntu 16.04.4 LTS.
Ответ или решение
Ошибка «неизвестная команда», возникающая при загрузке файла .tmux.conf
, связана с тем, что команды, полученные посредством команды tmux show -g
, не являются непосредственно валидными для использования в конфигурационном файле tmux
. Чтобы разобраться в этой проблеме, важно учесть как теоретические аспекты работы tmux
, так и практические рекомендации по исправлению ошибки.
Теория
Конфигурационный файл ~/.tmux.conf
используется для задания настроек по умолчанию для всех ваших tmux-сессий. Однако, формат команд, которые tmux
показывает через tmux show -g
, отличается от того, который фактически принимается в конфигурационном файле.
Команда tmux show -g
выводит все текущие глобальные параметры tmux
в виде ключ-значение, но файл конфигурации требует выражения этих параметров через команду set -g
(или set-option -g
), которая эквивалентна команде для прямого задания значений в конфигурационном контексте.
Пример
Возьмем пример команды, которую вы могли видеть в выводе tmux show -g
:
status off
Для того чтобы эта команда стала валидной в конфигурационной среде, ее необходимо преобразовать следующим образом:
set -g status off
Каждая строка конфигурации должна начинаться с set -g
, чтобы быть валидной.
Применение
Для преобразования всего вывода команды tmux show -g
в синтаксически правильный формат, используйте sed
, который включит set -g
в начало каждой строки:
tmux show -g | sed 's/^/set -g /' > ~/.tmux.conf
Обратите внимание, что использование >
перезапишет ваш текущий файл конфигурации; если вам необходимо сохранить предыдущее содержание, используйте >>
, чтобы добавить к существующему файлу.
Также следует упомянуть о некоторых потенциально проблемных строках. Например, строка prefix2 <NONE>
не является правильной в контексте файла конфигурации tmux
и ее стоит удалить вручную или модифицировать в соответствии с вашими потребностями.
Особые случаи
Некоторые параметры в tmux
могут не поддерживаться вашей версией программы или вызывать конфликты. Наиболее частая причина ошибок — использование опции, которая не поддерживается. Убедитесь, что все параметры, которые вам нужны, правильно поддерживаются вашей версией tmux. Регулярное обновление tmux
также поможет избежать подобных несоответствий.
Проверьте текущую версию tmux
командой:
tmux -V
Если вы используете устаревшую версию, обратитесь к документации для вашей текущей версии или задумайтесь о переходе на более новую версию, совместимую с вашими требованиями.
Заключение
Подводя итог, проблема возникает из-за несовместимости форматов вывода и ввода конфигурационных команд. Решением является использование set -g
для каждой строки из вывода tmux show -g
при добавлении в .tmux.conf
. Это гарантирует, что файл конфигурации будет считываться без ошибок. Также следите за версиями и особенностями выходных значений некоторых параметров, таких как prefix2
, чтобы избегать проблемного поведения.
Следуя этим рекомендациям, вы сможете избавиться от ошибки "неизвестная команда" и успешно настроить tmux
в соответствии с вашими предпочтениями. Если после всех действий ошибки сохраняются, проверьте, нет ли индивидуальных конфигурационных проблем или конфликта с другими настройками системы.