Vim: é possível adicionar uma modeline para: syntax sync fromstart in a file?

3

Eu estou escrevendo uma página muito longa para documentar um compilador e eu estava pensando que seria bom se o realce do doxygen estivesse por perto. Somente se eu fizer uma busca para avançar no arquivo, ele perde a trilha, já que o número de linha naquele comentário é realmente grande (1066 agora).

Descobri que você poderia dizer ao sistema para sincronizar desde o início do arquivo usando:

:syntax sync fromstart

O que funciona muito bem. Agora eu queria saber se eu poderia ter isso (ou talvez definir o número de linhas?) Nas informações de modeline para que funcione como é toda vez que eu abro o arquivo.

Eu também notei as minlines, mas isso também é algo específico para a sintaxe e não parece que eu possa escrever:

vim: minlines=10000

Isso é visto como um erro.

    
por Alexis Wilke 01.07.2015 / 06:13

1 resposta

2

Acredito que o que você está procurando é o que é conhecido no Vimscript como um evento autocmd on BufEnter . Adicionar a seguinte linha ao seu .vimrc irá executar o comando desejado para cada arquivo que você abrir:

autocmd BufEnter * :syntax sync fromstart

Se você deseja abrir apenas algumas extensões de arquivo, basta substituir o * acima por um padrão mais específico para o nome do arquivo, como *.at ou algo assim. Se você ainda estiver perdendo o destaque, também poderá acionar o comando automático em outro evento como inserindo o modo Inserir .

Há muita coisa que você pode fazer com esses pares de eventos de autocommand. Se você estiver interessado em aprender um pouco mais sobre eles, recomendo também ler alguns parágrafos deste guia on-line . Por uma questão de clareza, ou para aqueles que vêm depois de você, aqui está uma ótima taquigrafia visual deste guia:

:autocmd BufNewFile * :write
         ^          ^ ^
         |          | |
         |          | The command to run.
         |          |
         |          A "pattern" to filter the event.
         |
         The "event" to watch for.

O exemplo acima é um autocommand que salva automaticamente um arquivo sempre que você insere um comando como vim newfile na linha de comando.

    
por 03.04.2016 / 21:18