Frage

Die „matchit“ Plugin für Vim soll, damit Sie den % Schlüssel verwenden, um zwischen passendem Start / End-Tags zu springen, wenn HTML-Bearbeitung, sowie /* und */ Kommentarbegrenzer, wenn andere Arten von Code zu bearbeiten.

Ich habe die genaue Anweisungen in „:help matchit“ gefolgt, aber % noch für mich nicht funktioniert.

Es scheint dumm zu fragen: „Warum funktioniert das nicht?“ so stattdessen ich frage Wie kann ich das Problem diagnostizieren? Zeiger auf Referenzen sind willkommen, aber spezifische vim-plugin-Debugging-Techniken werden bevorzugt.

Hier ist das ~ / .vim Verzeichnis:

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

Ich verwende Vim 7.2 unter Cygwin (installiert Herbst 2008). cygcheck zeigt:

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

In vim, :set zeigt:

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

Vor allem die Syntax und Dateityp werden sowohl als HTML erkannt. (Die Syntaxfärbung ist gut so.)

Wenn zusätzliche Informationen benötigt wird, bitte kommentieren.

UPDATE:

Per Antwort von zu viel php :

Nach vim -V1 versucht, hatte ich meinen .vimrc geändert, um eine Linie schließen

set nocp

so die compatible Option ist nicht auf.

: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

(~ ist /cygdrive/y)

Per Antwort von 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

Beachten Sie, dass matchit.vim, html.vim, tohtml.vim, css.vim und javascript.vim sind alle vorhanden.

:echo b:match_words

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

Hm, das sieht sehr relevant. Ich bin jetzt durch :help matchit-debug suchen, um herauszufinden, wie b:match_words zu beheben.

War es hilfreich?

Lösung

Dank diesem Posting von der vim_use Mailing-Liste, fand ich eine Folge von Befehlen, die funktionieren:

vim -u NONE somefile.html

(dies startet vim ohne .vimrc Lesung)

Dann

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

Es ist nicht ideal, aber es scheint nicht von .vimrc zu arbeiten. Und es funktioniert nicht, wenn syntax on die Datei des Typs Erkennung vorausgeht, so dass ich vermute, es ist ein Konflikt in der Interaktion zwischen der Syntax-Hervorhebung Sachen und Sachen entsprechen.

Andere Tipps

Verwenden Sie den folgenden Befehl ein, um zu sehen, ob das Plugin geladen wurde:

:let loaded_matchit

Wenn Sie einen undefinierten Variable Fehler bekommen, dann ist das Plugin nicht geladen wurde - Sie sollten sicherstellen, dass '/cygdrive/y/.vim' ist in dem 'runtimepath' Option (use ':set runtimepath?')

Beachten Sie auch, dass die matchit Plugin nicht geladen, wenn die Option ‚compatible‘ eingeschaltet ist.

Sie möchten vielleicht durch :he matchit lesen. Der Abschnitt über die Konfiguration könnte helfen.

:he matchit-debug - Debugging-Informationen spezifisch für matchit

:he debug - allgemeine vim Debugging (Sie alle Arten von Breakpoint tun können / Schritt durch Sachen)

Eine gemeinsame Gotcha (nicht Ihr Fall aber) ist die HTML-Datei des Typs geklaut werden kann, wenn Sie eine Vorlage Plugin verwenden. (Z. B. meine html in html.djangotemplate gedreht) Versuchen :set ft? Ihren Dateityp zu finden. Sie könnten b:match_words in die ftplugin für die Vorlage Dateityp.

kopieren müssen

:echo b:match_words - sollte eine Liste von HTML suchen regex die geben

auch bei der offensichtlichen :scriptnames sollte irgendwo zeigen matchit.vim

Good Luck

Ich habe keine Ahnung über vim (außer es viel verwendet wird), aber ich fand, dass die followng zwei Zeilen in meinem .vimrc setzen viel geholfen:

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

Ich bin sicher, dass es eine richtige Art und Weise ist, aber zumindest das funktionierte für mich.

Cheers,

Joerg

Ich habe über die Befehle in meinem .vimrc zu arbeiten, indem die meisten der anderen Mist in ~ / vim, wie ~ / .vim / ftdetect und ~ / .vim / ftplugin. Beginnen Sie mit einem sauberen ~ / .vim und nur Kopieren Sie in dem, was Sie ist spezifisch, vermeidet alles, was könnte hat eine neuere Version in $ VIMRUNTIME, und es sollte funktionieren.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top