أفضل طريقة لتنظيم إعدادات filetype في .vim و .vimrc؟

StackOverflow https://stackoverflow.com/questions/2889766

  •  04-10-2019
  •  | 
  •  

سؤال

أنا أعاني من خلال Dim dotfiles لترتيبها. لقد لاحظت أنه مع مرور الوقت أضفت العديد من إعدادات Filetype المحددة بطرق مختلفة غير متناسقة. لنفترض أنني أخصب Python:

  • au BufRead,BufNewFile *.py (do something). لا أحب هذا لأن بعض ملفات Python قد لا تحتوي على .py إنهاء.

  • au FileType python (do something). يبدو أن هذا خيارًا أفضل لأنه لا يعتمد على الملف الذي يحتوي على .py إنهاء. العيب هو أن Vim لا يعرف عن بعض الأنواع. يمكنني جعل VIM التعرف على أنواع إضافية ، لكن لدي أيضًا العديد من الطرق غير المتسقة للقيام بذلك: أ .vim/filetype.vim ملف ، آخر في .vim/after/filetype.vim ومختلف set filetype الأوامر في .vimrc.

  • أضف .vim/ftplugin/python.vim ملف مع إعدادات FILETYPE محددة. انا افهم ال $VIMRUNTIME/ftplugin/python.vim يمكن أن تتجاوز أي إعدادات أجريها هنا. مشكلة واحدة هي أنني لست متأكدًا من كيفية تفاعل هذا .vim/filetype.vim و .vim/after/filetype.vim.

  • أضف .vim/after/ftplugin/python.vim. أفهم أن هذا يتم تحميله بعد $VIMRUNTIME/ftplugin/python.vim لذلك يمكن أن يكتب الإعدادات من هناك. كما في الطريقة السابقة ، لست متأكدًا من كيفية تفاعله مع filetype.vim الملفات.

لذلك لديّ أربع طرق على الأقل للقيام بذلك ، دون ذكر ملفات بناء الجملة والمكونات الإضافية الخاصة بـ fileType. يبدو لي أن أفضل طريقة للقيام بذلك هي وضع إعدادات محددة في filetype في after/ftplugin لذلك لا يتم الكتابة فوق ، و filetypes.vim في after لنفس السبب.

ومع ذلك ، قبل أن أتابع أود أن أسأل ما إذا كان لدى أي شخص اقتراحات حول أفضل طريقة للتعامل مع إعدادات محددة.

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

المحلول

أقوم بتخزين إعدادات Python الخاصة بي $HOME/.vim/ftplugin/python.vim, ، بما أنني لا أفعل أي شيء لأتعارض معه $VIMRUNTIME/ftplugin/python.vim.

الحفاظ على هذه الإعدادات في ftplugin يبقى الملف لي .vimrc لطيفة وعامة وأسهل في الحفاظ عليها (لا تزال كبيرة جدًا بعد أكثر من عشر سنوات من استخدام VIM).

أذا أردت انقلب ماذا ftpluginS مع توزيع VIM الخاص بك ، ثم $HOME/.vim/after/ftplugin/python.vim هو ما تريد ، كما هو قراء after هؤلاء.

بصورة مماثلة $HOME/.vim/filetype.vim سيتم الحصول عليها من قبل $VIMRUNTIME/filetype.vim وهذا بدوره سيتم الحصول عليه من قبل $HOME/.vim/after/filetype.vim.

استدعاء :scriptnames سوف تسرد جميع أسماء البرامج النصية المصدر ، بالترتيب تم الحصول عليها لأول مرة.

:help filetype يوفر معلومات شاملة جدا عن كل هذا.

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