Preenchimento automático do Vim para incluir pontuação entre palavras

4

Atualmente estou programando em Tcl / Tk. Eu tenho alguns widgets chamados .entry,stdin e .entry,stdout e estou usando o supertab para autocompletar. A vírgula está lá porque estou usando um pacote chamado gridplus e é assim que eu posso acessar a funcionalidade padrão do widget Tk.

A ideia de usar o preenchimento automático é que, quando eu digito .entry, e pressiono a tecla tab, ele mostra APENAS stdin e stdout como respostas possíveis. No entanto, quando faço isso, mostra todas as palavras possíveis no arquivo, em vez de apenas stdin e stdout . E quando tentei autocomplpop e neocomplcache nem aparece o menu depois de .entry,

Eu acho que vim está interpretando o , como um separador de palavras, mesmo que não haja espaço. Quando tentei trocar , para _ , funciona porque acho que vim está interpretando como uma palavra. Então, eu acho que tem mais a ver com a interpretação vim do que uma palavra é, ao invés de uma questão de plugin. No entanto, estou me perguntando se é possível alterar esse comportamento?

    
por milarepa 31.08.2013 / 13:03

2 respostas

4

Altere a opção 'iskeyword' para controlar como o vim decide o que é uma palavra. No seu caso, você pode adicionar uma vírgula a ela para informar ao vim que suas palavras também são vírgulas:

:set iskeyword+=,

Não é perfeito para sua necessidade, mas acho que é melhor que o padrão.

Confira: ajuda é palavra-chave enquanto você está nisso.

    
por 31.08.2013 / 16:38
1

I guess is more to do with vim interpretation of what a word is, rather than a plugin matter.

Não realmente, já que as pessoas que escrevem os plugins presumivelmente sabem o que estão fazendo, e esse comportamento é proposital e não acidental. Infelizmente, não é o que é bom para você neste caso.

A conclusão interna (ver :help E535 e omnicompletion no wiki), não será melhor ou - eu percebo que, na verdade, usa uma vírgula como um separador para as coisas em um dicionário, por isso, se você adicionar "isso, o que", ele incluirá a conclusão de "this" e "what", mas não "this, what". [No entanto, veja a resposta da holygeek para a solução].

O que você quer não é impossível - o plug-in omnicppcomplete será concluído para C ++ em '.', '- >', e '::', então por que não um que faz isso por ','? O problema é mais provável que ninguém tenha escrito nada sozinho nessas linhas ...

    
por 31.08.2013 / 15:27