سؤال

إن "matchit" المساعد همة المفترض أن تسمح لك لاستخدام % مفتاح للقفز بين مطابقة بداية/نهاية الكلمات عند تحرير HTML ، وكذلك /* و */ التعليق المحددات عند تحرير أنواع أخرى من التعليمات البرمجية.

لقد اتبعت التعليمات بدقة في ":help matchit"،ولكن % لا يزال لا يعمل بالنسبة لي.

يبدو من الغباء أن نسأل "لماذا لا تعمل ؟ ؟" بدلا من ذلك أنا أسأل كيف يمكن تشخيص المشكلة ؟ مؤشرات إلى المراجع هي موضع ترحيب, ولكن محددة همة البرنامج المساعد-تقنيات التصحيح المفضلة.

هنا هو ~/.همة الدليل:

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

أنا على التوالي همة 7.2 تحت Cygwin (تثبيت خريف عام 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

في همة ، :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.همة ، html.همة ، tohtml.همة, css.همة و جافا سكريبت.همة كلها موجودة.

:echo b:match_words

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

Hm, هذه تبدو ذات أهمية كبيرة.أنا الآن أبحث عن طريق :help matchit-debug لمعرفة كيفية إصلاح b:match_words.

هل كانت مفيدة؟

المحلول

شكرا هذا المنشور من vim_use القائمة البريدية ، وجدت سلسلة من الأوامر التي يعمل:

vim -u NONE somefile.html

(يبدأ هذا همة دون القراءة .vimrc)

ثم ،

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

انها ليست مثالية, ولكن لا يبدو أن العمل .vimrc.وأنها لا تعمل عند syntax on تسبق الكشف عن نوع الملف, لذلك أظن أن هناك تضارب في التفاعل بين بناء الجملة تسليط الضوء على الاشياء و الاشياء مطابقة.

نصائح أخرى

استخدم الأمر التالي لمعرفة ما إذا كان البرنامج المساعد تم تحميله:

:let loaded_matchit

إذا كنت تحصل على متغير غير معرف خطأ ، ثم المساعد كان لا يتم تحميل - يجب عليك التأكد من أن '/cygdrive/ص/.همة' في 'runtimepath' خيار (استخدام ':set runtimepath?')

نلاحظ أيضا أن matchit البرنامج المساعد لا تحميل إذا كانت متوافقة' الخيار تشغيل.

قد تحتاج إلى قراءة من خلال :he matchit .قسم التكوين قد تساعد.

:he matchit-debug - تصحيح معلومات محددة matchit

:he debug العام همة التصحيح (يمكنك أن تفعل كل أنواع توقف/الخطوة من خلال الاشياء)

مشترك مسكتك (لا قضيتك على الرغم من) هو نوع الملف html يمكن رصدت إذا كنت تستخدم قالب المساعد.(على سبيل المثال.بلدي html تحولت إلى html.djangotemplate) في محاولة :set ft? للعثور على نوع الملف.قد تحتاج إلى نسخ b:match_words في ftplugin للقالب نوع الملف.

:echo b:match_words - يجب أن تعطي قائمة html تبحث regex هو

أيضا في حالة واضحة :scriptnames يجب أن تظهر matchit.همة في مكان ما

حظا سعيدا

ليس لدي أي فكرة عن همة (إلى جانب استخدام الكثير), ولكنني وجدت أن وضع followng سطرين في بلدي .vimrc ساعد الكثير:

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

أنا متأكد من أن هناك طريقة مناسبة, ولكن على الأقل هذا عملت بالنسبة لي.

الهتافات ،

يورج

حصلت الأوامر أعلاه للعمل في بلدي .vimrc عن طريق إزالة أكثر من حماقة أخرى في ~/همة مثل ~/.همة/ftdetect و ~/.همة/ftplugin.تبدأ مع نظيفة ~/.همة فقط نسخ في ما هو محدد لك تجنب أي شيء قد لديك إصدار أحدث في $VIMRUNTIME, وينبغي أن تعمل.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top