Dumping current .zshrc do terminal

0

Eu queria fazer edições rápidas em um .zshrc, mas o vim disse que não pode ser escrito ou algo assim. Então eu parei, com: q !. Então eu queria reabrir este arquivo ... e estava vazio.

Ainda tenho o terminal aberto, que funciona com a configuração anterior. Como posso restaurar o .zshrc completo (ou tão próximo de completo) dele? Eu já salvei meus aliases com o comando "alias".

    
por Ezo 20.02.2016 / 13:57

1 resposta

1

Primeiro, não há como obter o ~/.zshrc real de uma sessão de shell em execução. Isso se deve principalmente ao fato de que ~/.zshrc é essencialmente um script de shell e apenas as configurações que ele faz na sessão de shell, mas não a lógica por trás das configurações.

No entanto, você pode obter algumas informações de uma sessão de shell em execução, que pode ajudá-lo a recriar algumas das configurações que estavam perdidas em seu .zshrc:

  • Como você já observou, é possível obter seus aliases do shell incorporado em alias . Com alias -L , você pode obter uma lista de chamadas para alias , que você pode colocar em seu novo ~/.zshrc exatamente como está.
  • A chamada de setopt fornece uma lista das opções de shell que não estão definidas para os valores padrão.
  • set imprimirá uma lista de todos os parâmetros e seus valores. Muito provavelmente não foi definido explicitamente na sua configuração, mas algumas delas foram. Configurações como os prompts ( PROMPT , PROMPT2 , PROMPT3 , PROMPT4 , RPROMPT e RPROMPT2 ), histórico ( HISTSIZE , SAVEHIST , HISTFILE , etc.), editor padrão ( EDITOR ) e pager ( PAGER ) podem ser encontrados lá, então dar uma olhada pode valer a pena.
  • autoload dará pelo menos alguma indicação sobre quais módulos foram carregados. Você pode ignorar qualquer declaração de função que comece com um sublinhado, pois é mais provável que ela seja carregada pelo sistema de conclusão. Embora o resto possa não ter sido necessariamente carregado explicitamente, pelo menos dará alguma indicação.
  • zstyle -L imprimirá uma lista das configurações feitas com zstyle como lista de comandos (assim como alias -L ).
  • bindkey -L imprimirá seu mapa de teclado atual como uma lista de comandos. Se a lista for muito longa e não tiver (muitos) comandos começando com vi- , seu shell provavelmente funcionará no modo emacs, nesse caso, colocar bindkey -e em seu novo zshrc provavelmente restaurará a maioria das configurações. Para o resto, você pode diferenciar as saídas de bindkey -L na execução e um novo shell. Se você utilizou o modo vicmd , essas configurações poderão ser recuperadas com bindkey -aL .
  • functions fornece as listagens das funções definidas na sua sessão. Novamente, nem todos eles podem ter sido definidos na sua configuração, mas é um ponto de partida.
por 29.02.2016 / 15:39