Lorsque j'écris un texte allemand contenant quelque chose comme abücd
par exemple et dans un dw
devant, il ne supprimera que le ab
car il n'interprète pas ü
comme un caractère de mot.
Lorsque je modifie reStructuredText, j'ai
iskeyword=38,42,43,45,47-58,60-62,64-90,97-122,_
Cela explique pourquoi les trémas ne sont pas marqués, mais je ne comprends pas d'où cela vient. Quand je viens d'ouvrir gVim, cela est réglé sur
iskeyword=@,48-57,_,192-255
D'où cela pourrait-il venir?
set encoding=utf-8
votre.vimrc
..vim/vimrc
et:set enc?
me donneutf-8
. Même chose avecfenc
. Cela ne fonctionne toujours pas.:set iskeyword&
n'estü
toujours pas reconnu comme faisant partie d'un mot?set iskeyword
). Ce devrait être quelque chose comme"@,48-57,_,128-167,224-235"
ou"@,48-57,_,192-255"
. Utilisez-vous Vim ou Vi? (la valeur par défaut dans Vi ("@,48-57,_"
) ne reconnaît pas ü; la valeur par défaut dans Vim est très bien)iskeyword=@,48-57,_,192-255
. Cela fonctionne maintenant comme par magie dans une nouvelle instance de Vim. C'est étrange, je dois observer cela plus attentivement.Réponses:
Le
@
caractère dansiskeyword
inclut tous les caractères pour lesquelsisalpha()
(fonction C) est VRAI; dans les implémentations libc modernes (20 dernières années), cela recherche également les caractères unicode.Votre deuxième
iskeyword
utilise97-122
(az) et64-90
(AZ), qui n'inclut pas toutes les variantes avec les différents diacritiques (comme le tréma / tréma / tréma).La solution est donc de remplacer
97-122
et64-90
par@
.Ce funky
iskeyword
vient du fichier de syntaxe LISP; lerst
fichier de syntaxe comprend un tas d'autres fichiers de syntaxe pour mettre en évidence les blocs de code.Heureusement, vous pouvez définir les langues à inclure avec la
g:rst_syntax_code_list
variable. La valeur par défaut est:Comme il est peu probable que vous ayez besoin de la coloration syntaxique LISP dans votre fichier reStructuredText, vous pouvez probablement le supprimer. Ajoutez-le simplement n'importe où dans votre fichier vimrc, s'il est défini, le fichier de syntaxe utilisera cette valeur au lieu de définir la sienne.
À mon avis, vous voudrez probablement utiliser:
Parce que qui sait quels effets secondaires géniaux provoquent les autres fichiers de syntaxe ...
la source
@
statut des caractères alphanumériques a été très utile.Si l'on incorpore des grammaires provenant d'autres langues dans, par exemple, des fichiers de démarques, les paramètres de ces langues semblent remplacer les paramètres de la syntaxe de démarques. On peut vérifier si c'est le cas en utilisant:
Afin de résoudre ce problème, on peut définir une commande automatique à exécuter chaque fois que l'on entre dans un fichier de démarque (et probablement aussi dans d'autres langues):
Mettre cela dans mon
.vimrc
fixe le problème pour moi. J'utilisais lavim-pandoc
syntaxe et les langues inline y comprisracket
,python
,sh
et quelques - uns. Je pense qu'il n'est pas nécessaire de définir une commande automatique pour quitter les fichiers de démarque, car lorsque vous entrez des fichiers dans d'autres langues, leurs fichiers de syntaxe doivent définir leurs mots-clés, si je comprends bien.la source