我想模仿 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/