Отключение частичного отступа HTML в Vim

9

Предостережение: я не веб-разработчик.

Тем не менее, есть редкие случаи, когда мне приходится редактировать HTML. Когда я это делаю, я заметил поведение в Vim, которое мне не нравится, и надеюсь, что смогу изменить его с помощью конфигурации.

Когда я кодирую, я склоняюсь к переносу строк по 80 символов. Это часто означает, что мне нужно разделить теги HTML по строкам. То, что я хотел бы, это некоторые разумные отступы, когда это произойдет. Так, например, я мог бы иметь следующий код и хотел бы, чтобы он отступал аналогично:

<a href="http://someverylongurl.com/foo/bar/blaz/SinwzvO.jpg"><img
   src="http://someverylongurl.com/foo/bar/blaz/Sinwzv0.jpg"
   class="ri" alt="This is an image"></a>

Но по умолчанию автоиндентирование Vim будет делать отступ для разделенных тегов HTML на том же уровне, что и тег HTML, начинающийся в предыдущей строке. Другими словами, я получаю что-то вроде следующего:

<a href="http://someverylongurl.com/foo/bar/blaz/SinwzvO.jpg"><img
                                                              src="http://someverylongurl.com/foo/bar/blaz/Sinwzv0.jpg"
                                                              class="ri" alt="This is an image"></a>

Что именно то, чего я не хочу. Когда я печатаю, я обнаруживаю, что мне постоянно приходится возвращаться и исправлять такие отступы.

Мне вообще нравится Vim autoindent, и я не хочу просто отключать его повсеместно. Я бы предпочел просто отключить или изменить отступ тега HTML, но я не могу понять, как это сделать.

Можно ли это изменить?

(Я пытался найти в Stackoverflow этот вопрос, но не смог его найти. Если это дубликат, укажите мне оригинал.)

РЕДАКТИРОВАТЬ: Решение было найдено здесь https://www.reddit.com/r/vim/comments/3ogbna/disabling_partial_html_indentation_in_vim/cvy8p3u

РЕДАКТИРОВАНИЕ № 2: Хорошо, вышеупомянутое решение не решило проблему. Это все еще там.

Criswell
источник
1
Я нахожу удивительным пример отступа, который вы привели в последнем фрагменте: я попробовал его на своей стандартной установке Homebrew (версия 7.4), и она работает как я ожидал: когда я нажимаю <Enter> в конце строки, с autoindentвключенным vim отступ следующей строки как строки, которую я только что закончил. Поэтому я предполагаю, что у вас может быть плагин, который изменяет модель отступа по умолчанию.
Влад ГУРДИГА
@VladGURDIGA, да, я начинаю подозревать это. Мне придется погрузиться в мой vimrc и посмотреть, что я могу придумать. Мой vimrc здесь, кстати github.com/criswell/meh/blob/master/vim/.vimrc
criswell
также проверьте ~ / .vim /, поскольку все, что там есть, также загружено, обычно это ftplugins, colors и другие вещи автозагрузки. 8-)
Влад ГУРДИГА
Я также спросил на Reddit, и получил этот ответ, который, как оказалось, исправить это reddit.com/r/vim/comments/3ogbna/… . Я обновлю свой вопрос соответственно.
Крисвелл
Ницца! Спасибо за продолжение! :)
Влад ГУРДИГА

Ответы:

4

Я рекомендую плагин tidy-html5 .


Как веб-разработчик, я также рекомендую выравнивать теги HTML немного по-другому,

AirBnb React Styleguide (наиболее разборчивый)

<a href="http://someverylongurl.com/foo/bar/blaz/SinwzvO.jpg">
  <img
    src="http://someverylongurl.com/foo/bar/blaz/Sinwzv0.jpg"
    class="ri"
    alt="This is an image"
  >
</a>

Google HTML Styleguide (чаще)

<a href="http://someverylongurl.com/foo/bar/blaz/SinwzvO.jpg">
  <img src="http://someverylongurl.com/foo/bar/blaz/Sinwzv0.jpg"
       class="ri" alt="This is an image">
</a>

Это действительно поможет форматерам избежать сумасшедших отступов.

Atav32
источник