Если внутри ваших файлов редактирования есть физические вкладки, вы действительно можете изменить внешний вид ширины вкладок, изменив 'tabstop'
значение параметра. Внутри текста вкладки останутся прежними.
Однако, как и у вас :set expandtab
, внутри ваших файлов не должно быть никаких вкладок (если они были последовательно отредактированы), и любые ваши изменения будут вставлять соответствующее количество пробелов при каждом нажатии Tab. Это приводит к поведению, о котором вы сообщаете: новые правки будут вставлять 2 пробела для каждой вкладки, но существующие строки сохранят отступ в 4 пробела.
Если вы хотите изменить ширину отступа при использовании пробелов, вы должны физически изменить количество пробелов; например, уменьшить 4 пробела до 2. Vim предлагает :retab
команду ( :help change-tabs
), но ее использование с отступом на основе пробелов является громоздким, а также влияет на любые пробелы, а не только на отступ в начале строки. Для этого проще использовать :substitute
. Следующая команда делит пополам количество пробелов в начале строк:
:%substitute/^\( \+\)\1/\1/e
TL; DR : с помощью физических вкладок внутри текста вы можете изменить внешний вид с помощью 'tabstop'
значения, с физическими пробелами вы должны преобразовать количество пробелов внутри текста.