التصحيح matchit المساعد في همة (تحت Cygwin)
-
10-07-2019 - |
سؤال
إن "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, وينبغي أن تعمل.