سؤال

كيف يمكنني منع همة من استبدال المساحات مع علامات التبويب عندما autoindent هو ؟

على سبيل المثال:إذا كان لدي اثنين من علامات التبويب و 7 مسافات في بداية السطر ، tabstop=3, وأنا اضغط Enter السطر التالي له أربع علامات تبويب و 1 مساحة في بداية, ولكن أنا لا أريد ذلك...

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

المحلول

ربما يكون فكرة جيدة عدم استخدام علامات على الإطلاق.

:set expandtab

إذا كنت تريد استبدال كافة علامات التبويب في ملفك إلى 3 مساحات (والتي سوف تبدو مشابهة جدا tabstop=3):

:%s/^I/   /

(حيث ^I هو علامة التبويب حرف)

من همة على الانترنت مساعدة:

'tabstop' 'ts'      number  (default 8)
        local to buffer
Number of spaces that a <Tab> in the file counts for.  Also see
|:retab| command, and 'softtabstop' option.

Note: Setting 'tabstop' to any other value than 8 can make your file
appear wrong in many places (e.g., when printing it).

There are four main ways to use tabs in Vim:
1. Always keep 'tabstop' at 8, set 'softtabstop' and 'shiftwidth' to 4
   (or 3 or whatever you prefer) and use 'noexpandtab'.  Then Vim
   will use a mix of tabs and spaces, but typing <Tab> and <BS> will
   behave like a tab appears every 4 (or 3) characters.
2. Set 'tabstop' and 'shiftwidth' to whatever you prefer and use
   'expandtab'.  This way you will always insert spaces.  The
   formatting will never be messed up when 'tabstop' is changed.
3. Set 'tabstop' and 'shiftwidth' to whatever you prefer and use a
   |modeline| to set these values when editing the file again.  Only
   works when using Vim to edit the file.
4. Always set 'tabstop' and 'shiftwidth' to the same value, and
   'noexpandtab'.  This should then work (for initial indents only)
   for any tabstop setting that people use.  It might be nice to have
   tabs after the first non-blank inserted as spaces if you do this
   though.  Otherwise aligned comments will be wrong when 'tabstop' is
   changed.

نصائح أخرى

كل ما أريده هو autoindented الخط أن يكون بالضبط نفس المسافة البادئة أحرف كما في السابق خط.

:help copyindent

'copyindent' ci' منطقية (الافتراضي إيقاف);المحلية إلى المخزن المؤقت ؛ {في السادس}

نسخ بنية القائمة خطوط المسافة البادئة عند autoindenting a خط جديد.عادة جديدة indent يتم بناؤها من خلال سلسلة من علامات التبويب تليها المساحات المطلوبة (ما لم 'expandtab' هو تمكين ، في هذه الحالة فقط المساحات المستخدمة).تمكين هذا الخيار يجعل جديد خط نسخ مهما كانت الأحرف المستخدمة في الطعج على القائمة خط.إذا كان البند الجديد هو أكبر من الحالية خط يتم تعبئة المساحة المتبقية بطريقة عادية.

ملاحظة: 'copyindent' هو إعادة تعيين عند 'متوافق' يتم تعيين.
انظر أيضا 'preserveindent'.

:help preserveindent

'preserveindent' 'بي' منطقية (الافتراضي إيقاف);المحلية إلى المخزن المؤقت ؛ {في السادس}

عند تغيير المسافة البادئة من السطر الحالي ، الحفاظ على قدر من indent هيكل ممكن.عادة المسافة البادئة يتم استبدال سلسلة من علامات التبويب تليها المساحات المطلوبة (ما لم 'expandtab' هو تمكين ، في هذه الحالة فقط المساحات المستخدمة).تمكين هذا الخيار يعني المسافة البادئة الحفاظ على العديد من الشخصيات الموجودة ممكن بالنسبة الطعج و فقط إضافة علامات التبويب أو مسافات كما هو مطلوب.

ملاحظة:عند استخدام ">>" عدة مرات مما أدى المسافة البادئة هو مزيج من علامات التبويب و المساحات.قد لا يعجبك هذا.
ملاحظة: 'preserveindent' هو إعادة تعيين عند 'متوافق' يتم تعيين.
انظر أيضا 'copyindent'.
استخدام :retab لتنظيف المساحة البيضاء.

يمكنك تحويل كل TAB إلى SPACE

:set et
:ret!

أو تحويل جميع SPACE إلى TAB

:set et!
:ret!

هنا جزء من بلدي .vimrc:

set autoindent
set expandtab
set softtabstop=4
set shiftwidth=4

هذا يعمل بشكل جيد بالنسبة لي لأنني بالتأكيد لا تريد علامات التبويب في بلدي شفرة المصدر.يبدو من سؤالك أنك تريد أن تبقى اثنين من علامات التبويب و سبعة أماكن على السطر التالي ، وأنا لست متأكدا من أن هناك طريقة لتعليم همة لاستيعاب هذا النمط.

ربما الجزء السفلي من هذا يمكن أن تساعدك ؟

المعيار السادس يفسر المفتاح tab حرفيا ، ولكن هناك شعبية السادس المستمدة من البدائل التي هي أكثر ذكاء ، مثل vim.للحصول على همة تفسير التبويب باعتبارها `المسافة البادئة" القيادة بدلا من إدراج--التبويب الأوامر ، هل هذا:

set softtabstop=2

إذا كنت تريد استبدال كافة علامات التبويب مع المساحات على أساس وضع 'الملخص', يمكنك استخدام :retab.كما يمكن أن تفعل العكس.

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