Во-первых, нет способа получить актуальный ~/.zshrc
из запущенного сеанса оболочки. Это в основном связано с тем, что ~/.zshrc
по сути является сценарием оболочки, и только настройки, которые он вносит в сеанс оболочки, но не логика, лежащая в основе настроек.
Тем не менее, вы на самом деле можете получить некоторую информацию из запущенного сеанса оболочки, которая может помочь вам воссоздать некоторые настройки, которые были в вашем потерянном .zshrc:
- Как вы уже заметили, вы можете получить псевдонимы из встроенного
alias
оболочки. С alias -L
вы можете получить список вызовов alias
, который вы можете поместить в свой новый ~/.zshrc
как есть.
- Вызов
setopt
дает вам список параметров оболочки, для которых не установлены значения по умолчанию.
set
выведет список всех параметров и их значений. Многое из этого, вероятно, не было явно указано в вашей конфигурации, но некоторые из них были. Такие настройки, как приглашения (PROMPT
, PROMPT2
, PROMPT3
, PROMPT4
, RPROMPT
и RPROMPT2
), история (HISTSIZE
, SAVEHIST
, HISTFILE
и т.д.), Редактор по умолчанию (EDITOR
) и пейджер (PAGER
), можно найти там, поэтому можно посмотреть стоить того.
autoload
покажет, какие модули были загружены. Вы можете игнорировать любое объявление функции, начинающееся с подчеркивания, так как они, скорее всего, загружаются системой завершения. Хотя остальные могут не обязательно быть загружены явно, это по крайней мере даст некоторое указание.
zstyle -L
выведет список настроек, выполненных с помощью zstyle
качестве списка команд (как alias -L
).
bindkey -L
распечатает вашу текущую раскладку в виде списка команд. Если список довольно длинный и не имеет (много) команд, начинающихся с vi-
ваша оболочка, вероятно, работала в режиме emacs, и в этом случае установка bindkey -e
в ваш новый zshrc
, вероятно, восстановит большинство настроек. В остальном вы можете различить вывод bindkey -L
в рабочей и новой оболочке. Если вы использовали режим vicmd
эти настройки можно получить с помощью bindkey -aL
.
functions
дает вам список функций, определенных в вашей сессии. Опять же, не все из них могут быть заданы в вашей конфигурации, но это отправная точка.