Quando escrevo um texto em alemão contendo algo como, abücd
por exemplo, e para um dw
na frente, ele exclui apenas o texto, ab
pois não interpreta ü
como um caractere de palavra.
Quando edito reStructuredText, tenho
iskeyword=38,42,43,45,47-58,60-62,64-90,97-122,_
Isso explica por que os trema não estão marcados, mas eu não entendo de onde isso vem. Quando abro o gVim, isso é definido como
iskeyword=@,48-57,_,192-255
De onde isso poderia estar vindo?
set encoding=utf-8
no seu.vimrc
..vim/vimrc
e:set enc?
me dáutf-8
. O mesmo comfenc
. Ainda não funciona.:set iskeyword&
éü
ainda não é reconhecido como uma parte de uma palavra?set iskeyword
). Deve ser algo como"@,48-57,_,128-167,224-235"
ou"@,48-57,_,192-255"
. Você está usando Vim ou Vi? (o valor padrão no Vi ("@,48-57,_"
) não reconhece ü; o valor padrão no vim é bom)iskeyword=@,48-57,_,192-255
. Agora funciona magicamente em uma instância nova do Vim. Isso é estranho, tenho que observar isso com mais cuidado.Respostas:
O
@
caractereiskeyword
inclui todos os caracteres para os quaisisalpha()
(função C) é VERDADEIRA; nas implementações modernas da libc (nos últimos 20 anos), isso também procura caracteres unicode.Seus segundos
iskeyword
usos97-122
(az) e64-90
(AZ), que não incluem todas as variantes dos vários sinais diacríticos (como o trema / diaeresis / trema).Portanto, a solução é substituir
97-122
e64-90
com@
.Este funky
iskeyword
vem do arquivo de sintaxe LISP; orst
arquivo de sintaxe inclui vários outros arquivos de sintaxe para destacar os blocos de código.Felizmente, você pode definir quais idiomas incluir na
g:rst_syntax_code_list
variável. O padrão é:Como é improvável que você precise destacar a sintaxe LISP no seu arquivo reStructuredText, provavelmente você pode removê-lo. Apenas adicione-o em qualquer lugar do seu arquivo vimrc, se estiver definido, o arquivo de sintaxe usará esse valor em vez de definir o seu próprio.
Na minha opinião, você provavelmente deseja usar:
Porque quem sabe quais efeitos colaterais descolados os outros arquivos de sintaxe causam ...
fonte
@
para os caracteres alfanuméricos foi realmente útil.Se alguém alinha gramáticas de outros idiomas em, por exemplo, arquivos de remarcação, as configurações desses idiomas parecem substituir as configurações da sintaxe de remarcação. Pode-se verificar se é esse o caso usando:
Para corrigir isso, pode-se definir um comando automático a ser executado sempre que entrar em um arquivo de remarcação (e provavelmente em outros idiomas também):
Colocar isso no meu
.vimrc
problema corrigido para mim. Eu estava usandovim-pandoc
sintaxe e línguas inlined incluindoracket
,python
,sh
e alguns. Eu acho que não é necessário definir um comando automático para deixar arquivos de remarcação, porque quando você digita arquivos de outros idiomas, seus arquivos de sintaxe devem definir suas palavras-chave, se bem entendi.fonte