2

vimの「matchit」プラグインを使用すると、%キーを使用して、HTMLを編集するときに一致する開始タグと終了タグの間をジャンプしたり、他の種類のコードを編集するときにコメント区切り文字/*を使用したりできます。*/

:help matchit「 」の正確な指示に従いましたが、%それでも機能しません。

「なぜこれがうまくいかないのか」と尋ねるのはばかげているようです。代わりに、どうすれば問題を診断できますか?参照へのポインタは大歓迎ですが、特定のvim-plugin-debuggingテクニックが推奨されます。

〜/.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 .

Cygwin(2008年秋にインストール)でvim7.2を実行しています。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

特に、構文とファイルタイプは両方ともHTMLとして認識されます。(構文の色付けは問題ありません。)

追加情報が必要な場合は、コメントしてください。

アップデート:

あまりにも多くの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

マイケルによる回答ごと:

: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

4

5 に答える 5

2

vim_useメーリングリストからのこの投稿のおかげで、私は機能する一連のコマンドを見つけました:

vim -u NONE somefile.html

(これは.vimrcを読まずにvimを開始します)

それで、

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

理想的ではありませんが、.vimrcでは機能しないようです。また、ファイルタイプの検出に先行する場合は機能しないsyntax onため、構文の強調表示と一致するものの間の相互作用に競合があると思われます。

于 2010-02-12T23:33:21.243 に答える
1

私はvimについての手がかりを持っていません(それをたくさん使うことを除いて)、しかし私は私の.vimrcに次の2行を入れることが大いに役立つことを発見しました:

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

適切な方法があると確信していますが、少なくともこれは私にとってはうまくいきました。

乾杯、

ジョーグ

于 2010-02-11T22:54:04.120 に答える
1

を読み通したいと思うかもしれません:he matchit。構成に関するセクションが役立つ場合があります。

:he matchit-debug-matchitに固有のデバッグ情報

:he debug-一般的なvimデバッグ(あらゆる種類のブレークポイント/ステップスルーを実行できます)

一般的な落とし穴(ただし、あなたの場合ではありません)は、テンプレートプラグインを使用している場合、htmlファイルタイプにニックネームを付けることができることです。(たとえば、私のhtmlはhtml.djangotemplateに変換され:set ft?ます)ファイルタイプを見つけてみてください。b:match_wordsテンプレートファイルタイプのftpluginにコピーする必要がある場合があります。

:echo b:match_words -htmlに見える正規表現のリストを提供する必要があります

また、明らかな場合は:scriptnamesどこかにmatchit.vimを表示する必要があります

幸運を

于 2009-09-18T01:57:43.380 に答える
1

次のコマンドを使用して、プラグインがロードされたかどうかを確認します。

:let loaded_matchit

未定義の変数エラーが発生した場合は、プラグインがロードされていません。「/ cygdrive / y / .vim」が「runtimepath」オプションに含まれていることを確認する必要があります(「:set runtimepath?」を使用)

また、「互換性のある」オプションがオンになっている場合、matchitプラグインはロードされないことに注意してください。

于 2009-09-17T23:29:12.473 に答える
0

〜/ .vim / ftdetectや〜/ .vim / ftpluginなど、〜/ vimの他のほとんどのがらくたを削除することで、上記のコマンドを.vimrcで機能させることができました。クリーンな〜/ .vimから始めて、自分に固有のものだけをコピーし、$ VIMRUNTIMEに新しいバージョンがある可能性のあるものはすべて避けてください。そうすれば、機能するはずです。

于 2010-03-28T00:05:44.397 に答える