如何在Vim中编辑HTML?

mrm*_*rm8 11 html vim indentation ftplugin

我是Vim的新手,我正试着习惯它.我刚刚创建了一个.vimrc文件,让Vim显示行号并进行增量搜索.我还启用了语法高亮.现在我想启用一些东西来简化HTML编写.我在/ usr/share/vim中搜索了html.vim,发现了这个:

/usr/share/vim/vim72/syntax/html.vim
/usr/share/vim/vim72/ftplugin/html.vim
/usr/share/vim/vim72/indent/html.vim
Run Code Online (Sandbox Code Playgroud)

现在,我需要做些什么来启用HTML自动缩进?将这些文件复制到〜/ .vim?符号链接他们?或者Vim是否自动从/ ​​usr/share/vim /加载它们?(它已经有HTML语法高亮,所以我认为这是可能的 - 但它不会做HTML自动缩进)我听说set autoindent.vimrc会做的伎俩,但是.c文件是什么?我认为他们需要set cindent,但确实使用HTML?

rom*_*inl 19

你应该做的第一件事就是尝试vimtutor完成它几次.一旦涵盖了基础知识,您就可以开始使用插件...

SnipMate的灵感来自TextMate的片段,并且/很漂亮,默认情况下它有很多HTML片段,并且添加自己的片段非常容易.要使用它,请键入div然后点击Tab以获取:

<div id="|">

</div>
Run Code Online (Sandbox Code Playgroud)

""准备好你之间的插入符号; Tab再次点击将插入符号移到空白行:

<div id="myId">
    |
</div>
Run Code Online (Sandbox Code Playgroud)

美丽.但是,许多编辑都有这个功能.

如果你有很多HTML要写 - 比如每天发一些电子邮件/新闻简报 - 另一个名为SparkUp的插件允许你只用几个关键笔画和一些CSS知识来制作复杂的HTML.首先键入以下内容:

table[id=myTable] > tr*3 > td*2 > img
Run Code Online (Sandbox Code Playgroud)

然后你点击<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>
Run Code Online (Sandbox Code Playgroud)

插入第一个空的插入符号"".点击<C-n><C-p>转到下一个/上一个字段.

神奇.不过,该插件可供更多编辑使用.

我第二个文本对象和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>
Run Code Online (Sandbox Code Playgroud)

将光标放在>第一个<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>
Run Code Online (Sandbox Code Playgroud)

好耶!

说真的,Vim很棒.


Mic*_*ski 13

看一下AutoCloseTag插件,在键入时关闭标签.并且set autoindent应该为您处理HTML缩进.

您还应该阅读文档:help text-objects以了解使用内部和外部标记选择.例如,在正常模式下,您可以cit更改当前标记内的文本.或者在可视模式下,at将扩展视觉选择以将标签封装在光标周围.

最后,查看Surround.vim插件,它可以用标签包围选择或文本对象,或者更改它周围的标签.