Entrando. (ponto) cancela a pesquisa de histórico incremental de zsh

1

Pesquisa do histórico Ctrl + R no meu zsh cancela se eu inserir o caracter de . do ponto.

Se eu pressionar Ctrl + R , o prompt bck-i-search: será exibido e o histórico será pesquisado de acordo com as palavras que eu inserir. Mas assim que eu digito . , a pesquisa é cancelada, o último resultado encontrado é mostrado no prompt e um . apareceu na posição do cursor.

foo@bar ~ vi footnote.txt
bck-i-search: foo

E assim que eu inserir o caracter . , este é o resultado:

foo@bar ~ vi .footnote.txt

É possível permitir que o caractere de ponto faça parte da string de pesquisa?

Estou usando o zsh com "oh-my-zsh".

Editar:

Após passar de linha a linha através do meu .zshrc, detectei o motivo desse comportamento:

## Quick ../../..
rationalise-dot() {
    if [[ $LBUFFER = *.. ]]; then
        LBUFFER+=/..
    else
        LBUFFER+=.
    fi
}
zle -N rationalise-dot
bindkey . rationalise-dot

Esta função é usada para alterar automaticamente uma série de ... em ../.. .

Gostaria de manter esse recurso, mas ainda permitindo o . nas sequências de pesquisa.

    
por leviathan 10.03.2018 / 10:19

1 resposta

2

Por padrão, . é um caractere comum. Se se comportar desta maneira para você, é por causa de algo em sua configuração, possivelmente algo enterrado dentro de oh-my-zsh.

Uma ligação no mapa de teclado principal substitui o comportamento do caractere mesmo durante a pesquisa incremental. Para restaurar o comportamento comum do personagem durante a pesquisa incremental, você precisa vinculá-lo a self-insert explicitamente.

bindkey -M isearch . self-insert
    
por 10.03.2018 / 11:33