当前位置:  开发笔记 > 编程语言 > 正文

如何在Vim中快速关闭HTML标签?

如何解决《如何在Vim中快速关闭HTML标签?》经验,为你挑选了10个好方法。

已经有一段时间了,因为我不得不做任何类似HTML的代码Vim,但最近我又遇到了这个问题.说我写的很简单HTML:

This is a title

如何快速写下title,head和html的结束标记?我觉得我在这里错过了一些非常简单的方法,不会让我一个接一个地写下它们.

当然,我可以使用CtrlP自动填充单个标签名称但是我的笔记本电脑键盘上的东西实际上是正确的括号和斜线.



1> hakamadare..:

我发现使用xmledit插件非常有用.它增加了两个功能:

    当你打开一个标签(例如

    ),它一旦扩展标记为你键入右>

    和插入模式将光标置于标签内.

    如果您然后立即键入另一个>(例如您键入

    >),它会将其扩展为

并将光标置于标记内,在插入模式下缩进一次.

的XML VIM插件添加代码折叠和嵌套代码匹配到这些特征.

当然,如果您在Markdown中编写HTML内容并使用%!通过您选择的Markdown处理器过滤Vim缓冲区,则根本不必担心关闭标记:)


我不喜欢这个插件,因为它没有提供一种简单的方法来让你的光标超过生成的标签.例如,如果你想写"有一个天",你可以先输入"有一个好",然后再写为"有一个好看| ".然后,您需要右箭头或退出插入模式以继续句子的其余部分.这就是为什么按下键来插入结束标记的解决方案更好.
我用`git clone https://github.com/sukima/xmledit.git~/.vim/bundle/xmledit`安装了xmledit插件.但它仅在编辑.xml文件时有效.当文件ext是.html或.htm时,它不起作用.
@Chad目前,我的解决方案是将文件复制粘贴到同一目录中,将其重命名为"html.vim",这样它也会影响HTML文件.现在,我在〜/ .vim/ftplugin(xml.vim和html.vim)中有两个完全相同的文件.

2> sjh..:

我喜欢简单的东西,

imap ,/ 


有些人想写",/",所以我宁愿使用不同的快捷方式.另一个细节是应该关闭全向完成,而不是等待额外的输入.所以:`imap `
做什么?它对我没有任何作用.

3> Krzysiek Goj..:

我发现让vim为我编写开始和结束标记更方便,而不仅仅是关闭标记.你可以使用Tim Pope的优秀ragtag插件.用法如下所示(让|标记光标位置)键入:

span|

CTRL+x SPACE

你明白了

|

您也可以使用CTRL+ x ENTER代替CTRL+ x SPACE,然后就可以了


|

Ragtag可以做的不仅仅是它(例如插入<%=围绕此%>或DOCTYPE的东西).您可能想查看ragtag的作者的其他插件,尤其是环绕声.



4> Ian P..:

看一下这个..

closetag.vim

Functions and mappings to close open HTML/XML tags

https://www.vim.org/scripts/script.php?script_id=13

我使用类似的东西.



5> 小智..:

如果你正在做任何精心设计的事情,那么火花很好.

他们网站的一个例子:

ul > li.item-$*3 扩展为:

用一个.

要做问题中给出的例子,

html > head > title{This is a title}

产量


  
    This is a title
  



6> Preet Kukret..:

还有一个zencoding vim插件:https://github.com/mattn/zencoding-vim

教程:https://github.com/mattn/zencoding-vim/blob/master/TUTORIAL


更新:现在称为Emmet:http://emmet.io/


本教程的摘录:

1. Expand Abbreviation

  Type abbreviation as 'div>p#foo$*3>a' and type ','.
  ---------------------
  

--------------------- 2. Wrap with Abbreviation Write as below. --------------------- test1 test2 test3 --------------------- Then do visual select(line wize) and type ','. If you request 'Tag:', then type 'ul>li*'. ---------------------
  • test1
  • test2
  • test3
--------------------- ... 12. Make anchor from URL Move cursor to URL --------------------- http://www.google.com/ --------------------- Type 'a' --------------------- Google ---------------------


emmet能否关闭已经扩展的标签?

7> Keith Pinson..:

制图

我喜欢让我的块标签(而不是内联)立即关闭并尽可能简单地使用快捷方式(我喜欢尽可能避免使用特殊键CTRL,尽管我用它closetag.vim来关闭我的内联标签.)我喜欢用这个启动标签块时的快捷方式(感谢@kimilhee;这是他的答案的起飞):

inoremap > >Fo">O

样品用法

类型-

[Tab]

结果-

|

where |表示光标位置.

说明

inoremap 表示在插入模式下创建映射

> 表示关闭尖括号和制表符; 这是匹配的

> 表示结束第一个标记并从插入中退出到正常模式

F< 意味着找到最后一个开口角括号

l 意味着将光标向右移动一个(不要复制开口尖括号)

yt> 表示从光标位置向上移动直到下一个闭合角括号之前(即复制标签内容)

o 表示在插入模式下启动新行并添加一个开口尖括号和斜杠

" 表示从默认寄存器(")中以插入模式粘贴

> 表示关闭结束标记并从插入模式中退出

O 意味着在光标上方的插入模式下开始一个新行并插入一个空格



8> kimilhee..:

allml(现在为Ragtag)和Omni-completion( )在.py或.java等文件中不起作用.

如果要在这些文件中自动关闭标记,可以像这样映射.

imap  F$a

(^ R是Contrl + R:您可以输入类似Control + v然后按Control + r)

如果你输入..(|是光标位置)

ABCDE |

并键入^ j

然后它关闭这样的标签..

ABCDE |



9> Sheharyar..:
查看 vim-closetag

这是一个非常简单的脚本(也可以作为vundle插件使用),可以为您关闭(X)HTML标记。从README

如果这是当前内容:


  
  

现在,按>,内容将是:

|

现在,如果>再次按,内容将是:


   |

注意:|这里是光标



10> mloskot..:

这是基于易于发现的Web编写的另一个简单解决方案:

    自动关闭HTML标签

    :iabbrev

    打开完成

    autocmd FileType xml set omnifunc=xmlcomplete#CompleteTags

推荐阅读
臭小子
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有