OS X Lion имеет функцию «Возобновить», т.е. при повторном открытии приложения оно восстанавливает все окна и их содержимое. Это работает и для Терминала. Но если вы используете Zsh вместо Bash, он не восстанавливает открытый каталог. Как я могу это исправить?
terminal.app
zsh
osx-lion
Симон Перепелица
источник
источник
Ответы:
ОБНОВЛЕНИЕ : Это не совсем правильно, по причинам, указанным в комментариях. Используйте ответ ниже . Спасибо @ChrisPage за прохождение лишней мили :)
Ответ может быть найден путем обратного инжиниринга, как это делает bash
/etc/bashrc
. Я перепробовал множество подходов со всей сети, но путь Apple, кажется, работает лучше всего (см. Рисунок).В вашем
.zshrc
добавьте следующееСчастливого возобновления.
источник
chpwd
какprintf '\e]7;%s\a' "$PWD_URL"
и в двойных кавычках. Спасибо за чаевые.Вот моя адаптация / etc / bashrc для zsh. Я включил процентное кодирование всех символов URL, которые в нем нуждаются, что важно, если вы хотите, чтобы это работало со всеми допустимыми именами файлов и каталогов.
Это регистрирует
precmd
ловушку, которая позволяет регистрировать более одной функции в других сценариях и файлах конфигурации.ОБНОВЛЕНО март 2019 года: установлено
LC_ALL
пустое значение, чтобы оно не перекрывалосьLC_CTYPE
. Используетсяprecmd
для обновления рабочего каталога в каждом приглашении, а неchpwd
для обновления его каждый раз, когда он изменяется - командные конвейеры могут временно его менять, и терминал не должен отображать их. Кроме того, может быть полезно, чтобы каждая подсказка обновляла состояние терминала, если оно было изменено во время предыдущей команды. Используетсяprintf -v
для явной записи в переменную вместо использования синтаксиса subshell.источник
terminalapp
плагин..zprofile
или что-то еще, как я делал до того, как понял, что это действительно доступно вoh-my-zsh
. Это на самом деле то же самое решение, и вы заслуживаете всяческих похвал.