2009-09-17 5 views
2

Плагин «matchit» для vim должен позволить вам использовать ключ %, чтобы перескакивать между совпадающими начальными и конечными тегами при редактировании HTML, а такжеи */ комментарий разделителей, когда редактирование других видов кода.Отладка плагина matchit в vim (под Cygwin)

Я выполнил точные инструкции в «:help matchit», но % все еще не работает для меня.

Кажется глупым спросить: «Почему это не работает?» так вместо этого я спрашиваю Как я могу диагностировать проблему? Указатели на ссылки приветствуются, но предпочтительны особые методы отладки vim-plugin.

Вот ~/.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 . 

Я бегу Vim 7.2 под Cygwin (установлен Fall 2008). cygcheck показывает:

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 

В Vim :set шоу:

--- 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 

Следует отметить, что синтаксис и Filetype оба признаны в качестве HTML. (Синтаксическая окраска просто прекрасна.)

Если необходима дополнительная информация, просьба прокомментировать.

UPDATE:

За ответ на too much php:

После попытки vim -V1, я изменил мою .vimrc включить линию

set nocp 

поэтому вариант compatible не включен.

:let loadad_matchit

loaded_matchit  #1 

:set runtimepath?

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

(~ является /cygdrive/y)

За ответ на michael:

:scriptnames

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 

Обратите внимание, что matchit.vim, html.vim, tohtml.vim, css.vim и javascript.vim все присутствуют.

:echo b:match_words

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

Хм, это выглядит весьма актуальным. Теперь я просматриваю :help matchit-debug, чтобы узнать, как исправить b:match_words.

ответ

2

Благодаря this posting из списка рассылки vim_use, я нашел последовательность команд, которая работает:

vim -u NONE somefile.html 

(это начинается Vim без чтения .vimrc)

Затем

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

Это не идеальный вариант, но он, похоже, не работает с .vimrc. И это не работает, когда syntax on предшествует обнаружению типа файла, поэтому я подозреваю, что существует конфликт во взаимодействии между элементами подсветки синтаксиса и соответствующими материалами.

1

Используйте следующую команду, чтобы увидеть, если был загружен плагин:

:let loaded_matchit 

Если вы получаете неопределенную переменную ошибку, то плагин не был загружен - вы должны убедиться, что «/ cygdrive/г /. vim 'находится в вашем параметре «runtimepath» (используйте «:set runtimepath?»)

Также обратите внимание, что плагин matchit не загружается, если включена опция «совместимая».

1

Возможно, вы захотите прочитать :he matchit. Может потребоваться раздел конфигурации.

:he matchit-debug - отладочная информация, специфичные для matchit

:he debug - общая отладка ВИМ (вы можете сделать все виды точек останова/шаг через материал)

Обычным Гоча (не ваш случай, хотя) является HTML Filetype может быть изменен, если вы используете плагин шаблона. (Например, мой html превращен в html.djangotemplate) Попробуйте :set ft?, чтобы найти свой тип файла. вам может потребоваться скопировать b:match_words в ftplugin для типа файла шаблона.

:echo b:match_words - должен дать список HTML ищет

также в случае очевидного :scriptnames должен показать matchit.vim REGEX где-то

Good Luck

1

Я не имею ни малейшего понятия о Vim (кроме использования это много), но я обнаружил, что поставив followng две строки в моей .vimrc помогло:

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

Я сюр что есть правильный путь, но по крайней мере это сработало для меня.

Cheers,

Йорг

0

Я получил команды выше, чтобы работать в моем .vimrc путем удаления большинство других дерьмом в ~/Vim, такие как ~/.vim/ftdetect и ~/.vim/ftplugin. Начните с чистой ~/.vim и только копий в чем конкретно вам, избегая всего, что могло бы иметь более новую версию в $ VIMRUNTIME, и она должна работать.