كيفية اكتشاف السادس (وليس vim) في .vimrc؟
سؤال
أحمل vimrc إلى جميع الأجهزة التي أعمل عليها ومن الطبيعي أن تحتوي على خيارات غير موجودة في vimrc القديم.
إذا قمت عن طريق الخطأ ببدء جلسة vi على جهاز لا يكون فيه vi اسمًا مستعارًا لـ vim و/أو لم يتم تثبيت vim، يقرأ vi vimrc ويلقي مجموعة من الأخطاء المزعجة لإعلامي بأن الخيار كذا وكذا غير مدعوم.
أعلم أنه يمكنني دائمًا كتابة "vim" بدلاً من "vi" وتعيين متغير EDITOR على vim (لـ visudo وما إلى ذلك...)، ولكن هل هناك سطر يمكنني إضافته إلى الجزء العلوي من vimrc الذي سيخرج من البرنامج النصي في وقت مبكر إذا تمت قراءة الملف بواسطة السادس؟
المحلول
إذا لم يكن vi في الواقع رابطًا لـ vim، فلا ينبغي قراءته .vimrc, ، ينبغي أن يقرأ .exrc.حقيقة أنه يقرأ .vimrc تشير إلى أنه في الواقع إصدار سابق من vim.إذا كان الأمر كذلك، يمكنك استخدام إنشاء vim "if" لوضع الميزات الأحدث بين قوسين، مثل هذا:
:if version >= 500
: version-5-specific-commands
:endif
يكتب:
:help if
عندما تكون في vim لمزيد من المعلومات.
نصائح أخرى
إذا كنت ترغب في الحصول على أكثر تحديدا في الشيكات الخاصة بك يمكنك التحقق من السمات الفردية للغاية.
ولدي هذا في بلدي .vimrc:
if has("eval")
" Syntax stuff
let java_highlight_all=1
endif
if has("autocmd")
" Buffers
autocmd BufEnter * cd %:p:h
endif
وغير همة، لا قراءة .vimrc، انها تبحث عن .exrc. يمكنك الكشف عن الإصدارات القديمة من همة باستخدام "إذا النسخة> = 500"
و"السادس" يقرأ vimrc لأنه بالتأكيد جمعت فيم مع اسم "السادس". ومن المحتمل جمعت "ليكون السادس للغاية متوافقة"، لذلك يمكنك محاولة للتحقق ميزة "متوافقة" للكشف عن "سادسا":
if !has("compatible")
let g:loaded_matchparen=1
syntax off
endif