Question

Le " matchit " Le plug-in pour vim est censé vous permettre d'utiliser la touche % pour basculer entre les balises de début / fin correspondantes lors de l'édition de HTML, ainsi que / * et * / les délimiteurs de commentaires lors de l'édition d'autres types de code.

J'ai suivi les instructions exactes dans ": help matchit ", mais % ne fonctionne toujours pas pour moi.

Il semble ridicule de demander "Pourquoi cela ne fonctionne-t-il pas?" Je demande donc Comment puis-je diagnostiquer le problème? Les pointeurs sur les références sont les bienvenus, mais les techniques spécifiques de débogage du plug-in vim-plugin sont préférées.

Voici le répertoire ~ / .vim:

$ ls -ltaGR ~/.vim
/cygdrive/y/.vim:
total 0
drwxr-xr-x 1 spause 0 Sep 17 13:20 ..
drwxr-xr-x 1 spause 0 Sep 16 13:59 doc
drwxr-xr-x 1 spause 0 Sep 16 13:58 .
drwxr-xr-x 1 spause 0 Sep 16 13:58 plugin

/cygdrive/y/.vim/doc:
total 24
-rw-r--r-- 1 spause  1961 Sep 16 13:59 tags
drwxr-xr-x 1 spause     0 Sep 16 13:59 .
-rw-r--r-- 1 spause 19303 Sep 16 13:58 matchit.txt
drwxr-xr-x 1 spause     0 Sep 16 13:58 ..

/cygdrive/y/.vim/plugin:
total 32
drwxr-xr-x 1 spause     0 Sep 16 13:58 ..
-rw-r--r-- 1 spause 30714 Sep 16 13:58 matchit.vim
drwxr-xr-x 1 spause     0 Sep 16 13:58 .

J'utilise vim 7.2 sous Cygwin (installé à l'automne 2008). cygcheck indique:

1829k 2008/06/12 C:\cygwin\bin\cygwin1.dll
Cygwin DLL version info:
    DLL version: 1.5.25
    DLL epoch: 19
    DLL bad signal mask: 19005
    DLL old termios: 5
    DLL malloc env: 28
    API major: 0
    API minor: 156
    Shared data: 4
    DLL identifier: cygwin1
    Mount registry: 2
    Cygnus registry name: Cygnus Solutions
    Cygwin registry name: Cygwin
    Program options name: Program Options
    Cygwin mount registry name: mounts v2
    Cygdrive flags: cygdrive flags
    Cygdrive prefix: cygdrive prefix
    Cygdrive default prefix:
    Build date: Thu Jun 12 19:34:46 CEST 2008
    CVS tag: cr-0x5f1
    Shared id: cygwin1S4

Dans vim, : set affiche:

--- Options ---
  autoindent          fileformat=dos      shiftwidth=3
  background=dark     filetype=html       syntax=html
  cedit=^F            scroll=24           tabstop=3
  expandtab           shelltemp           textmode
  viminfo='20,<50,s10,h

Notamment, la syntaxe et le type de fichier sont tous deux reconnus comme HTML. (La coloration de la syntaxe convient parfaitement.)

Si des informations supplémentaires sont nécessaires, veuillez commenter.

MISE À JOUR:

Par réponse, trop de php :

Après avoir essayé vim -V1 , j'avais modifié mon .vimrc pour inclure une ligne

set nocp

pour que l'option compatible ne soit pas activée.

: laissez loadad_matchit

loaded_matchit        #1

: définir runtimepath?

runtimepath=~/.vim,/usr/share/vim/vimfiles,/usr/share/vim/vim72,/usr/share/vim/vimfiles/after,~/.vim/after

( ~ est / cygdrive / y )

Par réponse, michael :

: noms de script

  1: /cygdrive/y/.vimrc
  2: /usr/share/vim/vim72/syntax/syntax.vim
  3: /usr/share/vim/vim72/syntax/synload.vim
  4: /usr/share/vim/vim72/syntax/syncolor.vim
  5: /usr/share/vim/vim72/filetype.vim
  6: /usr/share/vim/vim72/colors/evening.vim
  7: /cygdrive/y/.vim/plugin/matchit.vim
  8: /cygdrive/y/.vim/plugin/python_match.vim
  9: /usr/share/vim/vim72/plugin/getscriptPlugin.vim
 10: /usr/share/vim/vim72/plugin/gzip.vim
 11: /usr/share/vim/vim72/plugin/matchparen.vim
 12: /usr/share/vim/vim72/plugin/netrwPlugin.vim
 13: /usr/share/vim/vim72/plugin/rrhelper.vim
 14: /usr/share/vim/vim72/plugin/spellfile.vim
 15: /usr/share/vim/vim72/plugin/tarPlugin.vim
 16: /usr/share/vim/vim72/plugin/tohtml.vim
 17: /usr/share/vim/vim72/plugin/vimballPlugin.vim
 18: /usr/share/vim/vim72/plugin/zipPlugin.vim
 19: /usr/share/vim/vim72/syntax/html.vim
 20: /usr/share/vim/vim72/syntax/javascript.vim
 21: /usr/share/vim/vim72/syntax/vb.vim
 22: /usr/share/vim/vim72/syntax/css.vim

Notez que matchit.vim, html.vim, tohtml.vim, css.vim et javascript.vim sont tous présents.

: echo b: mots-clés

E121: Undefined variable: b:match_words
E15: Invalid expression: b:match_words

Hm, cela semble très pertinent. Je cherche maintenant dans : help matchit-debug pour savoir comment corriger b: match_words .

Était-ce utile?

La solution

Merci à cette publication dans vim_use , j'ai trouvé une séquence de commandes qui fonctionne:

vim -u NONE somefile.html

(cela démarre vim sans lire .vimrc)

Ensuite,

:set nocp
:source /usr/share/vim/vim72/macros/matchit.vim
:filetype plugin on
:filetype detect
:syntax on

Ce n’est pas idéal, mais cela ne semble pas fonctionner avec .vimrc. Et cela ne fonctionne pas lorsque la syntaxe sur précède la détection du type de fichier. Je suppose donc qu'il existe un conflit dans l'interaction entre les éléments mettant en évidence la syntaxe et les éléments correspondants.

Autres conseils

Utilisez la commande suivante pour voir si le plug-in a été chargé:

:let loaded_matchit

Si vous obtenez une erreur de variable non définie, le plug-in n'a pas été chargé. Assurez-vous que '/cygdrive/y/.vim' est dans votre option 'runtimepath' (utilisez ': set runtimepath? ')

Notez également que le plug-in matchit ne se charge pas si l'option "compatible" est activée.

Vous voudrez peut-être lire à travers : il correspond . La section sur la configuration pourrait vous aider.

: il matchit-debug - informations de débogage spécifiques à matchit

: il débogue - débogage général de vim (vous pouvez faire toutes sortes de choses sur les points d'arrêt / les étapes)

Un piège commun (mais ce n’est pas votre cas) est que le type de fichier html peut être pseudonyme si vous utilisez un plugin de modèle. (Par exemple, mon code HTML est converti en fichier html.djangotemplate) Essayez : set ft? pour trouver votre type de fichier. vous devrez peut-être copier b: match_words dans le ftplugin du type de fichier du modèle.

: echo b: match_words - devrait donner une liste des expressions rationnelles au format HTML

également en cas de évident: les noms de script doivent indiquer matchit.vim quelque part

Bonne chance

Je n’ai aucune idée de vim (à part l’utiliser beaucoup), mais j’ai constaté que le fait de placer les deux lignes suivantes dans mon fichier .vimrc a beaucoup aidé:

:source /usr/share/vim/addons/plugin/matchit.vim
:source /usr/share/vim/vim72/ftplugin/html.vim

Je suis sûr qu'il existe un moyen approprié, mais au moins cela a fonctionné pour moi.

A bientôt,

Joerg

J'ai obtenu les commandes ci-dessus pour fonctionner dans mon .vimrc en supprimant la plupart des autres conneries de ~ / vim, telles que ~ / .vim / ftdetect et ~ / .vim / ftplugin. Commencez avec un ~ / .vim propre et uniquement copier dans ce qui vous est spécifique, en évitant tout ce qui pourrait avoir une version plus récente dans $ VIMRUNTIME, et cela devrait fonctionner.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top