Отступ раздражение с CSS в Vim - PullRequest
12 голосов
/ 26 марта 2010

В последнее время я перешел из TextMate в Vim, и мне действительно нравится этот переключатель. Тем не менее, у меня есть проблемы с тем, как Vim обрабатывает отступы в фигурных скобках, используя синтаксис CSS. Я использую simple_pairs.vim, который может иметь или не иметь какое-то отношение к моей проблеме, но я так не думаю, так как все хорошо работает в PHP, JavaScript и т. Д. Позвольте мне объяснить…

Я обычно группирую свои правила CSS по контексту, используя отступы, например:

ul#nav {
  margin: 10px;
}
  ul#nav li {
    float: left;
    margin-right: 4px;
  }

Это означает, что когда я набираю свое правило ul#nav li, затем { (который автоматически вставляет соответствующий }) и нажимаю ввод, я хочу, чтобы закрывающая скобка была на том же уровне отступа, что и ul#… , но вместо этого я получаю что-то вроде этого:

ul#nav {
  margin: 10px;
}
  ul#nav li {
}

Так что я должен сделать отступ для дополнительного шага (ов) вручную. Как я уже сказал, делать то же самое в PHP, JavaScript и т. Д. Работает нормально. Кто-нибудь знает, как я могу это исправить? Я не достаточно разбираюсь в файлах определения синтаксиса Vim, чтобы я мог выяснить, что в файле синтаксиса PHP делает его работу, и перенести его на CSS… Спасибо.

Ответы [ 3 ]

11 голосов
/ 27 апреля 2011

Я нашел очень хороший код отступа для вложенных фигурных скобок:

https://gist.github.com/762326/bcbd35239db7f26447f1c2323037d20a5219471d

Вы можете сохранить его в .vim / indent / css.vim, и он сделает работу с отступом CSS намного лучше, чем по умолчанию.

Кроме того, он работает и для файлов .less, но вам, возможно, придется связать их с ним в файле .vimrc.

Сценарий на github написан тем же помощником, что и официальный css.vim, только на 6 лет новее. У них есть несколько разных линий.

3 голосов
/ 16 октября 2010

Я сделал это для CSS-файлов:

au BufEnter *.css set nocindent
au BufLeave *.css set cindent

У меня не было установлен smartindent, но вы также можете добавить это.

Это говорит о том, что при вводе буфера файла .css вы должны сбросить cindent и установить его обратно, когда выходите из буфера.

0 голосов
/ 26 марта 2010

Это связано с cindent и smartindent. Один из них вызывает такое поведение.

Я забыл, какой (возможно, оба?), Но я удалил их из моего ~/.vimrc файла и сохранил только autoindent

...