2017-06-12 171 views
3

html:默认情况下,emmet将扩展为5。为什么不能为扩展html:5添加链接标签?

<!DOCTYPE html> 
<html lang="en"> 
<head> 
    <meta charset="UTF-8"> 
    <title></title> 
</head> 
<body> 

</body> 
</html> 

我想自定义如下何时展开HTML:在我的VIM 5。

<!DOCTYPE html> 
<html lang="en"> 
<head> 
    <meta charset="UTF-8"> 
    <title></title> 
    <link href="" > 
</head> 
<body> 

</body> 
</html> 

这是我的尝试。

vim snippets.json 
#to change the line containing doc": as 
doc": "html>(head>meta[charset=${charset}]+meta:vp+meta:edge+link[href=\"\"])+body", 

为什么仍然没有链接标记何时展开html:5?

+0

使用插件的问题跟踪器。 – romainl

回答

5

我假设你使用的是emmet-vim插件。

它存储了完整emmet配置,包括摘录部分,里面 的.vim/autoload/emmet.vim文件,这就是为什么它不看你对独立snippets.json文件中的变化。

这里是plugin documentation在vim.org说:

您可以自定义配置压倒一切的扩张行为。 该配置将在加载插件中合并。

let g:user_emmet_settings = { 
\ 'indentation' : ' ', 
\ 'perl' : { 
\ 'aliases' : { 
\  'req' : 'require ' 
\ }, 
\ 'snippets' : { 
\  'use' : "use strict\nuse warnings\n\n", 
\  'warn' : "warn \"|\";", 
\ } 
\ } 
\} 

所以,你必须做什么,<link/>添加到html:5片断,是以下内容添加到您的~/.vimrc文件:

let g:user_emmet_settings = { 
\ 'html' : { 
\  'snippets' : { 
\   'html:5': "<!DOCTYPE html>\n" 
\     ."<html lang=\"${lang}\">\n" 
\     ."<head>\n" 
\     ."\t<meta charset=\"${charset}\">\n" 
\     ."\t<title></title>\n" 
\     ."\t<link href=\"\">" 
\     ."</head>\n" 
\     ."<body>\n\t${child}|\n</body>\n" 
\     ."</html>" 
\  } 
\ } 
\} 
现在

,当你重新启动Vim,输入html:5 <c-y>,它会产生你想要的东西:

<!DOCTYPE html> 
<html lang="en"> 
<head> 
    <meta charset="UTF-8"> 
    <title></title> 
    <link href=""> 
</head> 
<body> 

另外,安装Vim WebAPI plugin,并用它加载自定义snippets.json,像这样:

~/.vimrc

let g:user_emmet_settings = webapi#json#decode(join(readfile(expand('~/snippets.json')), "\n")) 

~/snippets.json

{ 
"html" : { 
    "snippets": { 
     "html:5": "<!DOCTYPE html>\n <html lang=\"${lang}\">\n<head>\n \t<meta charset=\"${charset}\">\n \t<title></title>\n \t<link href=\"\"> </head>\n <body>\n\t${child}|\n</body>\n </html>" 
     } 
    } 
} 
相关问题