Vim: автоматическая замена табуляций пробелами при сохранении

#vim

#vim

Вопрос:

Мой vim всегда автоматически преобразует табуляции в пробелы всякий раз, когда я сохраняю (: w) Go файл (*.go), а это не то, что я хочу.

Мой vim клонирован из https://github.com/freedombird9/vim_anywhere . Кроме того, я установил vim-go с Vundle помощью.

Я просмотрел свою .vimrc и папку плагина на предмет возможных конфигураций, в основном конфигураций, подобных autocmd BufWritePre и :write , которые могли бы изменить поведение при сохранении. Но я не нашел ничего, что указывало бы на преобразование перед сохранением. Я также не видел такой настройки в vim-go.

Комментарии:

1. Откуда вы знаете, что он выполняет автоматическую замену при сохранении ?!!! вы уверены, что когда вы нажимаете tab, он вставляет настоящие вкладки?!!! у вашего vim_anywhere .vimrc есть set expandtab это означает, что он будет заменять каждую вставленную вами табуляцию пробелами. Сделайте это set list на go файле и проверьте, являются ли ваши табуляции настоящими символами табуляции.

2. При первом открытии / создании файла вы также можете проверить set expandtab? и посмотреть, показывает ли vim expandtab или _no_expandatb . Это базовая настройка vim для расширения табуляции на некоторое количество пробелов (количество, определенное базовой tabstop переменной. [см.: http://vimdoc.sourceforge.net/htmldoc /… ]

3. @dNitro Я пробовал это, это действительно табуляции (^ I), но после того, как я нажал: w, эти табуляции находятся в определениях структуры или инициализации преобразуются в пробелы. Вкладки в других местах вообще не затрагиваются.

4. @JFreebird vim-go выполняет автоматическое форматирование при сохранении, его отключение может помочь! попробуйте: добавьте let g:go_fmt_autosave = 0 в свой файл.vimrc .