VIM Python المسافة البادئة لا تعمل؟
-
18-09-2019 - |
سؤال
لدي همة 7 (معزز) على CentoS 5، ويأتي مع كل الإضافات / البرامج النصية VIM المعتادة للذهاب.
$ find /usr/share/vim/vim70/ -name \*python\*
/usr/share/vim/vim70/syntax/python.vim
/usr/share/vim/vim70/ftplugin/python.vim
/usr/share/vim/vim70/indent/python.vim
/usr/share/vim/vim70/autoload/pythoncomplete.vim
أعتقد أنه عند فتح ملف ينتهي في .py (vim file.py
) سيقوم تلقائيا بتحميل هذه الإضافات، لكنني لست متأكدا من أن هذا هو الحال. ما أريده هو:
صحافة التبويب واحصل على أربع مسافات. السيارات المسافة البادئة السطر التالي للأجنحة، الشرطية، إلخ.
لدي هذا يعمل من خلال إعداد TabStop بشكل صريح، ونوست النوبة، وما إلى ذلك في ملف .vimrc الخاص بي. أليس هذا ما سبق بيثون الملفات هي؟ لماذا يجب علي ضبط هذه الأشياء في بلدي .vimrc
ب كيف يمكنني الحصول على هذه الميزات من الإضافات VIM بدلا من ذلك؟
الحالي .vimrc:
syntax on
set hls
set expandtab
set textwidth=0
set tabstop=4
set softtabstop=4
set shiftwidth=4
set autoindent
set backspace=indent,eol,start
set incsearch
set ignorecase
set ruler
set wildmenu
set smarttab
filetype indent on
filetype on
filetype plugin on
المحلول
وضع Tabstop، ShiftWidth، إلخ ... في Vimrc الخاص بك هو الصحيح. هذه مجموعة الإعدادات العالمية الخاصة بك، وكذلك بمثابة معلمات لدعم المسافة البادئة الخاصة ب FileType.
تستخدم الإضافات المسافة البادئة للغة هذه الإعدادات، ولكن عادة ما يتم تعيين تعبير المسافة البادئة (:he inde
) مناسبة للغة. وبالتالي يجب أن يكون indenter python indenter تلقائيا بعد عبارة افتتاحية كتلة (def، class، for ...)، ومحتاجها بعد إغلاق واحد (عودة، تمر، متابعة ...) والقيام بذلك وفقا ل TS، SW، ... لقد قمت بتعيين.
إذا كنت لا تزال غير متأكد إذا تم تحميل البرنامج المساعد للحصول على مخزن مؤقت، فما عليك سوى القيام به :filetype
لإظهار إعدادات الكشف والمكون الإضافي وإعدادات المسافة البادئة :set ft?
لرؤية النوع المكتشف.
نصائح أخرى
فهمي هو أن ملف Python.vim هو مجرد ملف تسليط الضوء على بناء الجملة ربما، لأن ملفات Python قد تكون مسافة بادئة طرق. بيب 8. ينص على أربعة مسافات، ولكن يمكن أن تكون الملفات القديمة مختلفة بما في ذلك استخدام علامات التبويب.
تستخدم بعض ملفات Python Legacy لدينا في الواقع مساحات لكل مسافة بادئة. لذلك أترك Python المسافة البادئة إلى VIM وتكوينها لكل ملف ولكل فيلينتي نموذج. يتيح لي السطر التالي في .vimrc إعدادات Python الخاصة التي تختلف عن القول عن XML و XHTML و HTML (مسافتين).
au FileType python setl shiftwidth=4 tabstop=4
يمكنك أيضا تعيين إعدادات محددة حسب الملف مع الموديلات وهو مفيد إذا كان لديك ملفات قديمة.
# vi: set tabstop=2 expandtab textwidth=70 filetype=python: