Как редактировать HTML в Vim?

Я новичок в Vim и пытаюсь к этому привыкнуть. Я просто создал файл.vimrc и заставил Vim отображать номера строк и выполнять пошаговый поиск. Я также включил подсветку синтаксиса. Теперь я хочу, чтобы было проще сделать написание HTML. Я искал html.vim в / usr / share / vim и нашел это:

/usr/share/vim/vim72/syntax/html.vim
/usr/share/vim/vim72/ftplugin/html.vim
/usr/share/vim/vim72/indent/html.vim

Теперь, что мне нужно сделать, чтобы включить HTML автоматический отступ? Скопируйте эти файлы в ~/.vim? Симлинк им? Или Vim автоматически загружает их из /usr/share/vim/? (Это уже делает подсветку синтаксиса HTML, так что я думаю, что это возможно - но это не делает автоматический отступ HTML) Я слышал set autoindent в.vimrc добились бы цели, но что с файлами.c? Я думал, что им нужно set cindent, но cindent работает с HTML?

2 ответа

Решение

Самое первое, что вы должны сделать, это попробовать vimtutor и завершите это пару раз. Как только основы будут рассмотрены, вы можете начать играть с плагинами...

SnipMate вдохновлен фрагментами TextMate и / так прекрасен, по умолчанию имеет множество фрагментов HTML, и добавить свои собственные очень просто. Чтобы использовать это, введите div затем нажмите Tab, чтобы получить:

<div id="|">

</div>

с кареткой между "" готов для вас, чтобы ввести идентификатор; снова нажмите Tab, чтобы переместить курсор на пустую строку:

<div id="myId">
    |
</div>

Красивая. Однако, многие редакторы имеют эту функцию.

Если у вас есть много HTML для написания - скажем, несколько электронных писем / новостных рассылок в день - другой плагин под названием SparkUp позволяет вам создавать сложный HTML с помощью всего нескольких нажатий клавиш и некоторого знания CSS. Вы начинаете набирать что-то вроде:

table[id=myTable] > tr*3 > td*2 > img

тогда вы нажмете <C-e> (CtrlE), чтобы получить:

<table cellspacing="0" id="myTable">
  <tr>
    <td>
      <img src="|" alt="" />
    </td>
    <td>
      <img src="" alt="" />
    </td>
  </tr>
  <tr>
    <td>
      <img src="" alt="" />
    </td>
    <td>
      <img src="" alt="" />
    </td>
  </tr>
  <tr>
    <td>
      <img src="" alt="" />
    </td>
    <td>
      <img src="" alt="" />
    </td>
  </tr>
</table>

с кареткой внутри первого пустого "", Удар <C-n> а также <C-p> перейти к следующему / предыдущему полю.

Magical. Плагин доступен для большего количества редакторов.

Я второй текстовые объекты и Surround.vim, которые невероятно полезны.

Еще одна интересная особенность - режим визуального блока (:help visual-block), где вы можете выбрать столбцы текста. Скажем, у вас есть:

<ul>
    <li><p>My text doesn't mean anything</p></li>
    <li><p>My text doesn't mean anything</p></li>
    <li><p>My text doesn't mean anything</p></li>
    <li><p>My text doesn't mean anything</p></li>
</ul>

поместите курсор на > из первых <li>затем нажмите <C-v>и переместите курсор вниз к четвертому <li>, Удар I (заглавная I), чтобы войти в режим INSERT непосредственно перед > и введите class="myElement" затем <Esc> чтобы получить:

<ul>
    <li class="myElement"><p>My text doesn't mean anything</p></li>
    <li class="myElement"><p>My text doesn't mean anything</p></li>
    <li class="myElement"><p>My text doesn't mean anything</p></li>
    <li class="myElement"><p>My text doesn't mean anything</p></li>
</ul>

Хо да!

Серьезно, Вим великолепна.

Посмотрите на плагин AutoCloseTag, чтобы закрывать теги по мере их ввода. А также set autoindent должен обрабатывать отступ HTML.

Также вы должны прочитать документы в :help text-objects чтобы узнать об использовании внутреннего и внешнего выбора тегов. Например, в обычном режиме вы можете сделать c, чтобы изменить текст внутри текущего тега. Или в визуальном режиме a t расширит визуальный выбор для инкапсуляции тега вокруг курсора.

Наконец, посмотрите на плагин Surround.vim, который может окружать выделенный или текстовый объект тегом или изменять тег вокруг него.

Другие вопросы по тегам