我想模仿 Textmates CTRL+ALT+w,它在同一行上创建一对新的打开和关闭 HTML 标签。

在 VIM 环绕中,我为此在编辑模式下使用 CTRL+st,但它总是在设置标签后缩进并创建一个新行,因此它看起来像这样(* = 光标位置):

<p>
  *
</p>

有没有办法实现这一目标? :
<p>*</p>

最佳答案

我猜您的问题是所选区域是“按行”的。例如,如果您使用 V 选择一些生命并用标签将其包围,则标签将放置在所选行的上方一行和下方一行。

您可能希望在围绕它之前使用 v 创建一个“字符明智”选择。

无论如何,请发布您创建的 map ,以便我们帮助调试。

更新

在评论中进行了一些澄清之后,我会告诉你环绕插件不是最好的选择。正如它的名字所描述的,它被创建来处理被包围的内容。因此,您可能需要环绕内容。

在您的情况下,我建议您查看 HTML AutoCloseTag 。一旦你输入 > ,这个插件就会关闭 html 标签。它当然更合适,并且比环绕声使用更少的击键。

<p         <--- Now when you type ">", if becomes:
<p>|</p>   <--- Where "|" is the cursor.

显然,您将在每个标签中获得这种行为。但如果你喜欢它,这可能会很方便。

关于Vim 环绕 : Create new tag but don't indent/new line,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6097363/

10-11 04:42