# vim --version
VIM - Vi IMproved 7.4 (2013 Aug 10, compiled Mar 31 2015 23:36:07)
# cat /root/.vimrc
map <F2> :w\|!sh % <cr>
map <F3> :w\|!bash % <cr>
map <F4> :w\|!python % <cr>
map <F5> :w\|!python % &<cr>
highlight RedundantWhitespace ctermbg=DarkBlue guibg=red
match RedundantWhitespace /\s\+$\|\t/
syntax on
highlight Comment ctermfg=green
Je commence à éditer l'exemple de highcharts htm:
# vi /var/www/js/highcharts/examples/dynamic-master-detail/index.htm
Je naviguer à travers le code et je suis en utilisant uniquement les touches fléchées et les Home, Page Up, Page Downet les Endclés.
Après 2 minutes, ce problème visuel se produit; la moitié de l'écran sous mon curseur perd sa coloration syntaxique et devient une couleur. Si je frappe Page Downou Page Up, la coloration syntaxique est restaurée.
Tout code html avec javascript à l'intérieur est affecté.
minlines
paramètre de votre coloration syntaxique actuelle aide? C'est-à-dire,:syn sync minlines=800
(ajustez au besoin).Réponses:
Cela pourrait être un problème avec le système de vim pour reconnaître puis mettre en évidence les "mots-clés" syntaxiques ne recevant pas suffisamment de contexte pour reconnaître les mots-clés.
Les concepts de base du système de syntaxe de vim (recherche et balisage des éléments de syntaxe de base) sont expliqués dans
:h usr_44
Fondamentalement, vim utilise l'expression régulière pour reconnaître les éléments syntaxiques dans un fichier, une fois ceux-ci identifiés, puis des règles de mise en surbrillance sont appliquées pour coloriser ces constructions de code (c'est-à-dire pour faire une "mise en évidence de la syntaxe"), mais comme expliqué dans
:h 44.10
vim ne commence pas l'analyse à partir de la au début du fichier, il démarre un certain nombre de lignes (par exemple 10 ou 100 lignes) vers le haut à partir du haut de votre fenêtre actuelle.Si une construction syntaxique, par exemple une balise HTML d'ouverture ou une définition de fonction, etc. démarre plus haut que le point où vim commence l'analyse, la syntaxe reims de vims se casse.
Habituellement, pour résoudre ce problème, vous augmentez le moment où vim commence l'analyse.
Pour savoir combien de lignes au-dessus de la ligne supérieure de la fenêtre de visualisation commencent son utilisation d'analyse:
Voici ma sortie lors de la visualisation d'un fichier HTML:
si j'avais un problème avec la synchronisation - juste pour ce fichier - j'augmenterais les minlines avec
Si vous rencontrez ce problème à plusieurs reprises, il est un peu plus difficile. En effet, la valeur de synchronisation est souvent définie dans un fichier de syntaxe dédié au type de fichier que vous modifiez, par exemple pour moi
syntax sync minlines
pour les types de fichiers html est défini dans le fichier de syntaxel'analyse syntaxique et les valeurs de configuration pour les fichiers css sont dans
shell est dedans
sh.vim
et ainsi de suite.Ces scripts de syntaxe fonctionnent uniquement au moment où vous ouvrez un fichier du type
foo.css
,bar.html
,baz.sh
etc, donc définir une ligne dans votre vimrc ne fonctionnera pas parce que ces scripts soufflaient vos paramètres de distance, une solution consiste à utiliser un autocmd qui se déclenche lorsque vous entrer dans le fichierla source
Je les reçois avec des
CMakeList.txt
fichiers. Il fait partie du mécanisme de mise en évidence de la syntaxe. Je l'obtiens également en HTML "long" (quelques pages vraiment) où j'ai duJavaScript
code. Pour ceux-ci, j'utilise la commande suivante:Et dans la plupart des cas, cela résout le problème.
Notez que la commande rendra vim très lent si vous éditez un très gros fichier. Dans la plupart des cas, pour moi, la "lenteur" est plus que supportable.
la source