3

Я на Mac OS X Lion, и я установил tmux через brew.

Я установил простое окно с вертикальным разделением и горизонтальным разделением на правой панели для всего трех окон. Я также увеличил крайнюю левую панель с помощью resize-pane -R 30 . Я хочу поместить макет в скрипт, чтобы я мог быстро его переделать, поэтому я экспортировал настройки макета через tmux list-windows и получил следующее:

bash [318x64] [макет 5ff, 318x64,0,0 {189x64,0,0,128x64,190,0 [128x32,190,0,128x31,190,33]}]

Тем не менее, когда я беру строку макета и запускаю

tmux select-layout "5ff, 318x64,0,0 {189x64,0,0,128x64,190,0 [128x32,190,0,128x31,190,33]}"

я получил

невозможно установить макет: 5ff, 318x64,0,0 {189x64,0,0,128x64,190,0 [128x32,190,0,128x31,190,33]}

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

1 ответ1

4

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

tmux select-layout ' 5ff,318x64,0,0{189x64,0,0,128x64,190,0[128x32,190,0,128x31,190,33]}'
tmux select-layout '05ff,318x64,0,0{189x64,0,0,128x64,190,0[128x32,190,0,128x31,190,33]}'

Это легко пропустить, но это дополнительное заполнение фактически присутствует в выводе list-windows . Вот пример с одним дополнительным пробелом:

0: zsh* (3 panes) [193x46] [layout  71e,193x46,0,0{144x46,0,0,47,48x46,145,0[48x23,145,0,49,48x22,145,24,51]}] @44 (active)

И еще один с двумя лишними пробелами:

0: zsh* (3 panes) [193x46] [layout   49,193x46,0,0{81x46,0,0,47,111x46,82,0[111x23,82,0,49,111x22,82,24,51]}] @44 (active)

Приведенные выше примеры взяты из tmux 1.7, поэтому они включают дополнительное число для каждой панели по сравнению с вашими примерами.


В общем, вам нужно заключить в кавычки эти строки макета, чтобы предотвратить интерпретацию оболочки

  • запятые внутри фигурных скобок как «расширения скобок» (например, frob{ozz,nitz}) и
  • квадратные скобки как «расширение пути» (например, как *.[ch] glob/wildcard).

Цитирование также позволяет легко включать пробел в качестве требуемого отступа.

Непреднамеренное сглаживание вряд ли будет проблемой, потому что у вас, вероятно, нет файлов, которые бы соответствовали этим строкам с запятыми и цифрами, и большинство оболочек настроены (по умолчанию) для обработки несопоставленных глобусов как буквенных строк (они передаются команде в неизмененном виде). Однако раскрытие фигурной скобки всегда является проблемой (в оболочках, которые его поддерживают), поскольку оболочка раскроет строку макета в несколько аргументов. select-layout показывает вам свое сообщение об использовании, поскольку оно получило слишком много аргументов (после того, как оболочка выполнила раскладку в строке макета).

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