Ошибка неизвестной команды при загрузке .tmux.conf

Вопрос или проблема

Итак, я создал мой ~/.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 в соответствии с вашими предпочтениями. Если после всех действий ошибки сохраняются, проверьте, нет ли индивидуальных конфигурационных проблем или конфликта с другими настройками системы.

Оцените материал
Добавить комментарий

Капча загружается...