Я сейчас использую
:set noet|retab!
Но проблема, с которой я сталкиваюсь, заключается в замене всех экземпляров 4 пробелов на табуляции во всем файле. Мне нужно, чтобы vim заменял только 4 пробела в начале строк.
Если я удалю! в конце retab пробелы нигде не заменяются.
Я пробовал использовать пользовательскую функцию, которую кто-то создал:
" Retab spaced file, but only indentation
command! RetabIndents call RetabIndents()
" Retab spaced file, but only indentation
func! RetabIndents()
let saved_view = winsaveview()
execute '%s@^\( \{'.&ts.'}\)\+@\=repeat("\t", len(submatch(0))/'.&ts.')@'
call winrestview(saved_view)
endfunc
, но при запуске получаю приятное маленькое сообщение об ошибке:
:RetabIndents
Ошибка при обработке функции RetabIndent:
строка 2:
E486: Шаблон не найден: ^ ({4}) +