2017-06-12 77 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>" 
     } 
    } 
} 
相關問題