não consigo encontrar o histórico zsh no OSX 10.8.5

não consigo encontrar o histórico zsh no OSX 10.8.5

Quando faço login no aplicativo Terminal no OSX, meu shell padrão é /bin/bash. Digitar echo $HISTFILEaponta /Users/monkeybrain/.bash_historye head $(echo $HISTFILE)mostra que o arquivo contém entradas do histórico.

Se eu digitar zshpara mudar de shell, algumas coisas estranhas acontecem. Em primeiro lugar, mesmo que meu prompt mude (parece que estou no novo shell), minha $SHELLvariável de ambiente ainda aponta para /bin/bash. A $HISTFILEvariável agora está vazia e não existe um arquivo como ~/.zsh_history. Além disso, não consigo usar Ctrl-Aou Ctrl-Enavegar pela linha de comando.

O que está acontecendo aqui?

Muito obrigado,

MB

Responder1

  • A SHELLvariável de ambiente geralmente não é modificada pelo shell. Geralmente contém o caminho completo para o shell de login do usuário atual,nãoo shell atualmente em execução. Na maioria dos casos, SHELLdeve ser definido antes do início do shell. zshnão altera o valor de SHELLe basho configura de volta para o shell de login se SHELLnão tiver sido definido.

  • Por padrão, HISTFILEnão está definido em zsh. Se você quiser salvar o histórico, você deve configurá-lo para o arquivo que deseja usar para isso:

    HISTFILE="${HOME}/.zsh_history"
    

    Você também precisa definir SAVEHISTvalores inteiros positivos para saber zshquantas linhas salvar no arquivo HISTFILE, o padrão é 0(ObrigadoCérebro de Macacopara a dica). Você provavelmente também deseja aumentar HISTSIZE, que indica quantas linhas de histórico estão disponíveis na sessão do shell. Seu padrão é apenas 30. Por exemplo:

    HISTSIZE=2000
    SAVEHIST=2000
    

    Isso geralmente é feito no ~/.zshrcarquivo de configuração.

  • zshtenta adivinhar suas preferências de vinculação de teclas verificando as variáveis ​​de ambiente EDITORe . VISUALSe algum deles contiver a string "vi" zshusará o viinsmodo de entrada. Nem Ctrl+ Anem Ctrl+ Eestão vinculados por padrão a este modo. Se você quiser usar o emacsmodo de entrada (o padrão em bash), você só precisa executar

    bindkey -e
    

    Isto também pode ser feito em~/.zshrc

Resumindo, parece que você está executando zshcom a configuração padrão. Se ainda não houver ~/.zshrc, basta criá-lo e adicionar as configurações necessárias.

informação relacionada