conclusão do histórico oh-my-zsh

conclusão do histórico oh-my-zsh

Recentemente mudei para zsh, usandoRobbyRusselloh-my-zsh. Antes disso eu usava o bash com muitas coisas personalizadas e só estou faltando uma coisa porque o zsh está tentando ser 'muito inteligente':

Se eu digitar git commite o zsh passar por todos gitos comandos recentes. O que eu realmente quero é passar por todos os comandos que começam com git commit(não apenas git).

Como posso conseguir esse comportamento em (oh-my-)zsh?

Responder1

Encontrei a solução para o meu problema noDocumentação ZSH. Oh-my-zsh parece mapear as teclas e para algo como

bindkey '\e[A' history-search-backward
bindkey '\e[B' history-search-forward

O que produz o comportamento exato que descrevi acima. A documentação ZSH descreve o comportamento de history-search-backwardcomo

Pesquise para trás no histórico por uma linha que comece com oprimeira palavra no buffer.



O que eu queria era o seguinte mapeamento, que inseri no meu ~/.zshrc:

bindkey '\e[A' history-beginning-search-backward
bindkey '\e[B' history-beginning-search-forward

O comportamento de history-beginning-search-backwardé o seguinte:

Pesquise uma linha no históricocomeçando com a linha atual até o cursor. Isso deixa o cursor em sua posição original.

Além disso, se \e[Anão funcionar com as setas para cima ou para baixo, pressione <ctrl-v><KEY (e.g., up arrow)>outro terminal que forneça ^[OA. Então você pode usar isso em vez de \e[A. O processo é descrito aqui:http://zshwiki.org/home/zle/bindkeys

Responder2

Eu queria o mesmo comportamento para zsh com oh-my-zshplugin instalado e encontrado history-substring-search.

Consegui o mesmo comportamento descrito acima adicionando o plugin ao meu ~/.zshrc:

plugins=(git brew npm history-substring-search)

Acho que este plugin não existia quando esta questão foi levantada. Apenas uma maneira alternativa de conseguir a mesma coisa.

informação relacionada