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 listadogs, cats, mice
  • se o usuário digitar i.dogs., quero que o preenchimento automático do vim forneça a listapoodle,dachshund,pitbull

fwiw, preciso usar essa funcionalidade em um idioma personalizado para facilitar a digitação / aprendizagem.

Respostas:


3

Você pode escrever uma conclusão do modo de inserção personalizada via 'omnifunc'ou 'completefunc'. Leia os detalhes em :help complete-functions; também existem exemplos.

Vim usa tipos de arquivos (por exemplo java, c, markdown) como uma abstração sobre extensões de arquivos, que são apenas uma maneira de representar o tipo de arquivo (os outros são por exemplo as #!/bin/bashlinhas hashbang no topo de um script executável). Você pode escrever uma detecção de tipo de arquivo personalizado, assim:

:autocmd BufNewFile,BufRead *.foo setf foo

E, em seguida, insira sua conclusão personalizada ~/.vim/ftplugin/foo_completion.vimcom conteúdos como este:

:setlocal completefunc=FooCompletion

Espero que esses indicadores ajudem; consulte a ajuda e os tipos de arquivos existentes para obter detalhes.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.