12

我是 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

现在,我必须做什么才能启用 HTML 自动缩进?将这些文件复制到 ~/.vim?符号链接他们?还是 Vim 会自动从 /usr/share/vim/ 加载它们?(它已经做了 HTML 语法高亮,所以我认为这是可能的 - 但它不做 HTML 自动缩进)我set autoindent在 .vimrc 中听说可以做到这一点,但是 .c 文件有什么用呢?我认为他们需要set cindent,但 cindent 是否适用于 HTML?

4

2 回答 2

22

您应该做的第一件事是尝试vimtutor完成几次。一旦涵盖了基础知识,您就可以开始使用插件了……</p>

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

<div id="|">

</div>

与插入符号之间""准备好让你输入一个id;再次点击Tab以移动空白行上的插入符号:

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

美丽的。不过,许多编辑器都有此功能。

如果你有很多 HTML 要写——比如每天写几封电子邮件/简报——另一个名为SparkUp的插件可以让你只用几个键和一些 CSS 知识来生成复杂的 HTML。您首先输入以下内容:

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>转到下一个/上一个字段。

神奇。不过,该插件可用于更多编辑器。

我第二个文本对象和 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>。在 the 之前点击I(大写 I)进入 INSERT 模式,然后>输入class="myElement"then<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>

嗬嗬!

说真的,Vim 很棒。

于 2011-05-10T07:12:07.787 回答
13

查看AutoCloseTag 插件以在您键入标签时关闭标签。并且set autoindent应该为您处理 HTML 缩进。

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

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

于 2011-05-09T20:56:55.670 回答