2015-05-23 2 views
3

В vim я просто изменил свои вкладки с 2 до 4 пробелов. Это работает хорошо - когда я нажимаю вкладку, она откладывает 4 пробела. Когда я добавляю новые строки, которые имеют одинаковый отступ, он работает. Однако - когда мне нужен новый уровень отступов и нажмите enter, он будет только отступать 2 пробела.Отступ после новой строки после нового уровня отступа vim

previously fixed code{ 
    previously indented code; 
    if (new amount of indenting should happen){ 
     only this much is given by vim; 
     but hitting tab takes me here (where I want to be); 
    } 
} 

Любая идея, какие настройки мне, возможно, придется изменить, чтобы заставить это работать? Я пробовал все, что мог найти (autoindent, cindent, установка всех видов переменных типа tabstop), безрезультатно.

+1

это любая помощь http://stackoverflow.com/questions/10893676/why-doesnt-setting-ts-4-in-vimrc-work –

+0

Да это сделал - спасибо много. '' ': verbose set tabstop''' - это то, что я искал. – Zambezi

+0

при изменении новой строки и автоматического отступа используется пробел «ширина сдвига» – SolaWing

ответ

2

При проверке файла справки, запустив :help tabstop, вы получите Willl:

'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. 

так это в вашем .vimrc файл все в порядке.

set expandtab  "Use softtabstop spaces instead of tab characters for indentation 
set shiftwidth=4 "Indent by 4 spaces when using >>, <<, == etc. 
set softtabstop=4 "Indent by 4 spaces when pressing <TAB> 

set autoindent  "Keep indentation from previous line 
set smartindent  "Automatically inserts indentation in some cases 
set cindent   "Like smartindent, but stricter and more customisable 
Смежные вопросы