То же самое происходит в более простой форме:
function trythis
set -x foo bar
end
Если вы сейчас запустите Trythis
и ECHO $ foo
, он тоже не устанавливается. Это потому, что Fish's -x
само по себе не изменяет объем переменной, которая по умолчанию локальная к функции, если она уже не существует во всем мире или универсально.
Попробуйте:
eval (echo 'set -gx FOO 1;')
где G
для глобального. Это делает переменную работу как обычный POSIX EXPORT
значение ED. Интересно, что он работает так же с Eval
, поскольку он будет только с простой набором
; Если вы используете эту строку SANS g
прямо на командной строке $ foo
, поэтому EVAL
и замена процесса ()
Не ввел новый объем или подставку, а при выполнении этого способа в функции применяется объем функции.
Попробуйте использовать команду «Сброс».
То есть
$ reset
или в вашем случае :)
$ ⎼e⎽e├
Страница человека объясняет это более подробно
запустите команду (в строке состояния tmux), используя командный режим tmux (Cb :
по умолчанию):
# try (RESET, INT, XON, RETURN, `reset`, RETURN):
send-keys -R C-c C-q C-m " reset" C-m ; refresh-client
# if that doesn't work (destroy the pane):
kill-pane ; send-keys -R ; refresh-client
Первоначальный ответ невозможен: он предполагает, что вы можно как-то запустить reset
, когда окно полностью заблокировано.
Повреждение может быть связано с непреднамеренным присутствием управляющих кодов терминала/tmux в двоичных данных, что приводит к изменению шрифта или даже к закрытию сеанса tmux. В данном случае это не ошибка, а ожидаемое поведение. Если вы хотите просмотреть содержимое двоичного файла, я бы предложил использовать инструмент xxd
, чтобы предотвратить «случайную» строку байтов в двоичном файле, влияющую на tmux и терминал.