Имеете дело с отступом кода в Vim? - PullRequest
4 голосов
/ 07 октября 2010

Я работаю в инженерной команде из 4 человек, в основном пишу javascript, время от времени балуюсь ruby ​​и python. Так что, как команда, мы постоянно обмениваемся кодом, и, как и большинство программистов, каждый член команды имеет свой любимый уровень отступов и связанных настроек. Я один из двух членов команды, которые используют и любят Vim в качестве основного редактора кода. Я люблю свою команду, но мне также нравится мой отступ , в котором используются символы табуляции в 4 пробела. Для большего контекста, вот что я использую в моем .vimrc:

set ts = 4 sts = 4 sw = 4 expandtab " 4 space tabs

С таким большим количеством совместного использования кода и совместного редактирования, происходящего в команде, основные файлы кода обычно начинают появляться как масса смешанного табуляции и пробела, так что даже классический трюк Vim выбора всего и нажатия = к умному отступу не имеет большого эффекта.

В любом случае, мой вопрос таков: в Vim (в частности, MacVim) есть лучший (более надежный) способ преобразования файла кода из грязного смешанного отступа в предпочтительный отступ? Будь то настройка .vimrc или команда, которую я ввожу при редактировании файла, мне все равно.

Спасибо за любые предложения заранее!

Ответы [ 2 ]

11 голосов
/ 07 октября 2010

Использование :retab.

Сказав это, я настоятельно рекомендую вам, как команде, согласовать и использовать стиль отступов при совместной работе над определенным проектом.

1 голос
/ 08 октября 2010

У нас один и тот же случай использования javascript и ruby ​​в одном магазине.

autocmd FileType * set tabstop=4|set shiftwidth=4
autocmd FileType ruby set tabstop=2|set shiftwidth=2
set expandtab

Я нахожу, что мне нравятся 4 пробела для javascript, но ruby ​​выглядит намного лучше только с двумя пробелами.

Я согласен с Язером, вам нужно установить стандарт (пробел FTW)

Как только вы решили избавиться от всех символов табуляции, используйте grep, чтобы найти файлы: retab

grep -P '\t' * -R -c
...