vim: como personalizar o preenchimento automático sensível ao contexto?

1

Por exemplo, para qualquer arquivo que termine em .foo , eu gostaria do seguinte comportamento no vim:

  • se o usuário digitar i. , quero que o preenchimento automático do vim forneça a lista dogs, cats, mice
  • se o usuário digitar i.dogs. , quero que o preenchimento automático do vim forneça a lista poodle,dachshund,pitbull

fwiw, eu preciso usar essa funcionalidade em uma linguagem personalizada para facilitar a digitação / aprendizagem.

    
por kfmfe04 30.11.2012 / 22:17

1 resposta

3

Você pode escrever um preenchimento de modo de inserção personalizado por meio de 'omnifunc' ou 'completefunc' . Leia os detalhes em :help complete-functions ; há também exemplos.

O vim usa tipos de arquivos (por exemplo, java , c , markdown ) como uma abstração sobre extensões de arquivo, que são apenas uma maneira de representar o tipo de arquivo (outras são por exemplo as linhas #!/bin/bash hashbang no parte superior de um script executável). Você pode escrever uma detecção personalizada de tipo de arquivo, assim:

:autocmd BufNewFile,BufRead *.foo setf foo

Em seguida, coloque sua conclusão personalizada em ~/.vim/ftplugin/foo_completion.vim com conteúdo como este:

:setlocal completefunc=FooCompletion

Espero que esses ponteiros ajudem; por favor consulte a ajuda e os tipos de arquivos existentes para os detalhes.

    
por 30.11.2012 / 22:53

Tags