posso limpar o killring atual em zsh?

1

O Yank não limpa o killring, então fica confuso depois de um tempo. Posso limpar?

Estou usando o Oh My Zsh.

    
por Eugene 12.02.2017 / 12:54

1 resposta

3

O tamanho do kill ring é determinado pelo tamanho do killring array. Isso é 8 por padrão.

A variável está disponível apenas nos widgets zle, portanto, não é possível manipulá-la na linha de comando, você precisa definir um widget e chamá-lo por meio de uma ligação de chave ou por meio de M-x . Aqui está um exemplo de um widget que anula o killring.

set_killring_size () {
  local empty=
  if ((!$+NUMERIC)); then
    # Wipe killring and re-create it to its current size
    NUMERIC=$#killring
    killring=()
  fi
  if ((NUMERIC <= $#killring)); then
    # Truncate killring to the specified size
    killring=("${(@)killring[1,$NUMERIC]}")
  else
    # Grow killring to the specified size
    killring=("${(@)killring}" "${(@s:_:)${(l:$((NUMERIC-$#killring-1))::_:)empty}}")
  fi
}
zle -N set_killring_size set-killring-size

Chame este widget sem nenhum argumento para limpar o killring: M-x set-killring-size RET . Chame-o com um prefixo numérico para definir o tamanho da eliminação: ESC 4 2 M-x set-killring-size RET .

    
por 13.02.2017 / 01:01

Tags