Конфигурация Vim: Как развернуть вкладки только при сохранении? - PullRequest
3 голосов
/ 01 февраля 2012

Я люблю табуляции и предпочитаю пробелы в отступе.

Но я бы хотел преобразовать табуляции в группы из 4 пробелов при сохранении файлов.(Поскольку файл может быть открыт и отредактирован в других средах). И, конечно, эти сгенерированные пробелы должны быть преобразованы обратно во вкладки, если я снова открою файл.(Предположим, что в исходном тексте нет 4 смежных пробелов)

Ответы [ 2 ]

2 голосов
/ 01 февраля 2012

ну в твоих .vimrc:

set noexpandtab
set tabstop=4
set shiftwidth=4
fun MyRetab()
    set expandtab
    retab
    set noexpandtab
endfun
au FileWritePre *.YOURFILEEXTENSION call MyRetab()

Но я не знаю, что вы подразумеваете под "эти пробелы все равно должны распознаваться как вкладки, если я снова открою файл."

Если вы пишете файловые пространства вместо вкладок, ну, это не может быть легко отменено AFAIK. РЕДАКТИРОВАТЬ : см. страницу супер-retab wiki для удаления!

ПРИМЕЧАНИЕ если у вас есть вкладка (и) в строковом содержимом вашего источника, это также заменит это!

1 голос
/ 01 февраля 2012

В дополнение к ответу Жолта Ботыкай, вы можете попробовать использовать retab!, который пытается заменить пробелы символами табуляции там, где это необходимо.Казалось, это работало довольно хорошо, когда я только что попробовал, но я получил несколько ошибочных вкладок.Я полагаю, это зависит от того, насколько хорошо вы предполагаете, что нет других последовательностей из 4 пробелов, кроме развернутых табуляций.

ОДНАКО ... все это кажется рискованным делом.По моему опыту, когда есть стандарты кодирования / кодирования, подобные этим, всегда легче придерживаться их с самого начала.«Исправление» файла таким образом вызывает проблемы.

Я думаю, что Vim хорошо эмулирует поведение, похожее на табуляцию, используя только пробелы.Вы пробовали использовать smarttab и expandtab?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...