LINUX.ORG.RU

Vim автоматическое преобразование табов в пробелы при :wq

 


1

0

На предыдущей системе очень удобно был настроен Vim - при открытии файла происходил :retab! и все четверные пробелы становились табами (так удобнее редактировать), а при :wq наоборот, табы заменялись обратно пробелами. Пытаюсь сделать так же на новой системе, добавил в .vimrc:

autocmd BufRead * :retab! – ок, при открытии файла 4 пробела становятся табом

autocmd BufWritePre * :silent %s/\t/ /ge – при сохранении табы преобразуются в 4 пробела. Вот только как сделать, чтобы это происходило при сохранении и закрытии файла (:wq), а не при обычном сохранении (:w)?



Последнее исправление: xox (всего исправлений: 2)

сильно не тестировал

augroup autoretab
	au!
	au ExitPre * bufdo if &ma && &mod | exe "setl et ts=4 | retab | up" | endif
	au BufRead * setl noet ts=4 | retab!
augroup END

habamax ★★★
()
Ответ на: комментарий от xox

autocmd QuitPre * :silent %s/\t/ /ge | :wq!

будет ругаться если netrw или help или любой буфер без имени, либо файл ридонли и тд и тп.

habamax ★★★
()
Ответ на: комментарий от habamax

в качестве костыля сойдёт :DD Жаль, что предыдущая система вместе с vimrc утрачена безвозвратно

xox
() автор топика
Ответ на: комментарий от xox

запись в файл происходит с табуляциями

А точно, проверка на &mod была лишней

augroup autoretab
    au!
    au ExitPre * bufdo if &ma | exe "setl et ts=4 | retab | up" | endif
    au BufRead * setl noet ts=4 | retab!
augroup END
habamax ★★★
()

Чем удобнее?

anonymous
()

clang-format.

Форматированием кода должна заниматься отдельная утилита, а не редактор, обмазанный костылями.

ox55ff ★★★★★
()
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.