Estou tendo a seguinte estrutura de classes CSS
.mAIcon
.mAIcon-reject
.mAIcon-edit
.mAIcon-accept
.event
e assim por diante.
Dentro dos meus arquivos HTML, quero preencher automaticamente esses nomes de classe.
Mas quando eu digito
<span class="mAIcon mA|">
e quero completar automaticamente o resto, a única coisa que recebo é
<span class="mAIcon mAIcon|">
Para obter o que realmente quero, preciso digitar um extra -
e, por exemplo, e
e usar o preenchimento automático novamente. Mas então eu recebo tudo o que começa com uma e
, até a classe event
. Isso é realmente irritante e torna o preenchimento automático bastante inútil nesse caso.
Eu uso a conclusão de palavra-chave genérica do Vim com o i_CTRL-N
comando e não tenho nenhum plug-in de conclusão adicional instalado.
É possível incluir a -
detecção de nomes de classe CSS para o preenchimento automático?
autocompletion
Raphael Ahrens
fonte
fonte
<c-x><c-n>
, que também deve ser especificado na sua pergunta.'iskeyword'
e, embora as palavras-chave sejam usadas também para outros comandos (efeitos colaterais), essa ainda é a maneira correta de alcançar o que você deseja sem usar outros tipos de conclusão (automática).ctags
deve ser capaz de gerar tags para o seu projeto. Em seguida, você pode concluir a marcação comi_CTRL-X_CTRL-]
. No entanto, vejo nos documentos que a conclusão de tags também usa aiskeyword
opção, portanto, posso estar errado. De qualquer forma, você provavelmente quer ler:h ins-completion
.Respostas:
Sim, você pode definir quais caracteres são considerados parte das palavras-chave com a
'iskeyword'
opção:Você pode adicionar o seguinte snippet ao seu
vimrc
para restringir essa opção aos arquivos CSS e HTML:fonte
iskeyword
tem muitos efeitos colaterais. Por exemplodw
nosome-text
agora irá excluirsome-text
, em vez de apenassome
. Não necessariamente uma coisa ruim, mas algo para estar ciente.js
ecoffee
arquivos também. Porque me vejo completando aulas de CSS frequentemente em Javascript e raramente tenho código que executa subtração sem espaço. No código que eu edito,diff = foo - bar;
é mais comum quediff=foo-bar;
Resolvi o problema escrevendo um pequeno script python que cria um arquivo de tags. O script procura classes CSS e imprime uma linha de tag para cada classe.
No momento, eu corro o script manualmente com
que adiciona os arquivos ao arquivo de tags. Isso funciona, pois a conclusão da tag não é limitada pela
iskeyword
configuração.Aqui está o conteúdo do script, que também está disponível no GitHub .
fonte