autocmd comportamento não como esperado

0

Estou tentando definir o hlsearch por padrão quando eu inserir um buffer no vim.

Executar :set hls manualmente ao inserir um buffer executa a ação esperada. No entanto, quando eu adiciono autocmd BufEnter * set hls ao meu .vimrc (e recarrego o vim), nada acontece ao abrir um buffer. Adicionar dois pontos na frente de set não altera o comportamento.

Para o contexto, estou tentando usar o script , mas ele está definido como "on" por padrão. Eu tentei as duas dicas mencionadas na seção "carregar na inicialização" da página sem sucesso.

Eu removi todo o resto do meu .vimrc, por isso não é interferência de outra coisa.

EDITAR:

Eu estou no Vim 7.4, versão 'enorme', adquirida com homebrew.

Aqui está o conteúdo do meu .vimrc quando eu testei a opção call AutoHighlightToggle() . Ele não é realçado no início, mas depois de dois z/ presses funcionar corretamente.:

nnoremap z/ :if AutoHighlightToggle()<Bar>set hls<Bar>endif<CR>

function! AutoHighlightToggle()
   let @/ = ''
   if exists('#auto_highlight')
     au! auto_highlight
     augroup! auto_highlight
     setl updatetime=4000
     echo 'Highlight current word: off'
     return 0
  else
    augroup auto_highlight
    au!
    au CursorHold * let @/ = '\V\<'.escape(expand('<cword>'), '\').'\>'
    augroup end
    setl updatetime=500
    echo 'Highlight current word: ON'
  return 1
 endif
endfunction

call AutoHighlightToggle()
    
por zplizzi 27.07.2016 / 04:52

1 resposta

1

O comando :se hls ativa apenas uma opção. Você verá visualmente nada mudar. Veja:

:help 'hlsearch'

(As citações devem ser digitadas.)

Se o que você está tentando fazer é fazer com que o Vim comece a destacar a última string de busca usada toda vez que um novo buffer for inserido, esse comando não o ajudará.

Infelizmente o Vim não tem nenhum inverso do comando :nohlsearch , que diz ao Vim para parar de destacar a última string pesquisada, e parece que o Vim se recusa a deixá-lo ficar em um autocmd (isto é, marcando a posição do cursor, executando o último procure novamente, depois retornando à marca). O Vim parece assumir que um autocmd nunca deve acionar o realce da pesquisa.

Se você precisar deste recurso, deve enviar um e-mail para a lista de desenvolvedores ou para o mantenedor do Vim diretamente e pedir que um comando :hlsearch seja adicionado.

    
por 29.07.2016 / 05:26

Tags