كيف يمكنني إنشاء vi - Vim عدم استخدام علامات التبويب (تحويل المساحات إلى علامات تبويب ، سيئة!) ، وجعل مفتاح علامة التبويب == 4 مسافات ، والمسافة البادئة للرمز التلقائي بعد كتل قوسية مجعدة مثل Emacs هل؟
أيضا ، كيف يمكنني حفظ هذه الإعدادات حتى لا تضطر إلى إدخالها مرة أخرى؟
لقد رأيت أسئلة أخرى متعلقة بهذا ، لكن يبدو دائمًا أنها بعيدة بعض الشيء عما أريد.
كما تمت الإشارة في بضع إجابات أدناه ، فإن الطريقة المفضلة الآن هي عدم استخدام smartindent ، ولكن بدلاً من ذلك استخدم ما يلي (في .vimrc ):
filetype plugin indent on
" show existing tab with 4 spaces width
set tabstop=4
" when indenting with '>', use 4 spaces width
set shiftwidth=4
" On pressing tab, insert 4 spaces
set expandtab
في ملفك .vimrc: ملف:
set smartindent set tabstop=4 set shiftwidth=4 set expandtab
تستغرق ملفات المساعدة بعض الوقت لتعتاد عليها ، ولكن كلما قرأت ، كلما زاد Vim:
:help smartindent
والأفضل من ذلك ، يمكنك تضمين هذه الإعدادات في المصدر للحصول على إمكانية النقل:
:help auto-setting
لمشاهدة إعداداتك الحالية:
:set all
كما graywh يشير في التعليقات ، تم استبدال smartindent بواسطة cindent الذي "يعمل بشكل أكثر ذكاء" ، على الرغم من أنه لا يزال يستخدم بشكل أساسي للغات ذات بناء جملة C- like:
:help C-indenting
مرتبط ، إذا فتحت ملفًا يستخدم كلاً من علامات التبويب والمسافات ، على افتراض أنك حصلت عليه
set expandtab ts=4 sw=4 ai
يمكنك استبدال جميع علامات التبويب بمسافات في الملف بأكمله بـ
:%retab
أفضل طريقة للحصول على المسافة البادئة الخاصة بنوع الملف هي استخدام filetype plugin indent on
في vimrc الخاص بك. بعد ذلك ، يمكنك تحديد أشياء مثل set sw=4 sts=4 et
في .vim/ftplugin/c.vim ، على سبيل المثال ، دون الحاجة إلى جعلها عمومية لجميع الملفات التي يتم تحريرها وسيتم بناء الجملة الأخرى غير الخاصة بالنوع C بطريقة صحيحة ، أيضًا (حتى اللمسات) .
للحصول على علامات تبويب ذات مساحة 4 في معظم الملفات ، قم بوضع علامة تبويب ذات عرض عريض بـ 8 أحرف في Makefiles ، ووضع مسافة بادئة تلقائية في العديد من الملفات بما في ذلك C/C++ ، ضع هذا في ملف ~/.vimrc
الخاص بك:
" Only do this part when compiled with support for autocommands.
if has("autocmd")
" Use filetype detection and file-based automatic indenting.
filetype plugin indent on
" Use actual tab chars in Makefiles.
autocmd FileType make set tabstop=8 shiftwidth=8 softtabstop=0 noexpandtab
endif
" For everything else, use a tab width of 4 space chars.
set tabstop=4 " The width of a TAB is set to 4.
" Still it is a \t. It is just that
" Vim will interpret it to be having
" a width of 4.
set shiftwidth=4 " Indents will have a width of 4.
set softtabstop=4 " Sets the number of columns for a TAB.
set expandtab " Expand TABs to spaces.
في العديد من أنظمة Linux ، مثل Ubuntu ، لا يوجد ملف .vimrc
افتراضيًا ، لذلك يوصى بإنشائه أولاً.
لا تستخدم ملف .viminfo
الموجود في الدليل الرئيسي. يتم استخدامه لغرض مختلف.
الخطوة 1: انتقل إلى الدليل الرئيسي الخاص بك
cd ~
الخطوة 2: إنشاء الملف
vim .vimrc
الخطوة 3: إضافة التكوين المذكور أعلاه
filetype plugin indent on
set tabstop=4
set shiftwidth=4
set expandtab
الخطوة 3: حفظ الملف ، عن طريق الضغط Shift + ZZ.
الطريقة الموصى بها هي استخدام المسافة البادئة المستندة إلى filetype واستخدام فقط smartindent و cindent إذا لم يكن ذلك كافيًا.
أضف ما يلي إلى .vimrc الخاص بك
set expandtab
set shiftwidth=2
set softtabstop=2
filetype plugin indent on
آمل أن يساعد كإجابة مختلفة.
تحرير الخاص بك ~/.vimrc
$ vim ~/.vimrc
أضف الأسطر التالية:
set tabstop=4
set shiftwidth=4
set softtabstop=4
set expandtab
من VIM wiki :
:set tabstop=4
:set shiftwidth=4
:set expandtab
تعتمد المسافة البادئة التلقائية على وضع بناء الجملة الحالي. أعلم أنك إذا كنت تقوم بتحرير Foo.Java ، فأدخل {
وضربه Enter المسافة البادئة السطر التالي.
بالنسبة إلى علامات التبويب ، هناك إعدادان. داخل Vim ، اكتب نقطتين ثم "تعيين tabstop = 4" الذي سيضع علامات التبويب لعرضها كأربعة مسافات. اضغط على النقطتين مرة أخرى واكتب "set expandtab" الذي سيضيف مسافات لعلامات التبويب.
يمكنك وضع هذه الإعدادات في ملف .vimrc (أو _vimrc على نظام التشغيل Windows) في دليلك الرئيسي ، لذلك عليك فقط كتابتها مرة واحدة.