Visual Studio Code 中的 Emmet
對 Emmet 片段和擴展的支持內置於 Visual Studio Code 中,無需安裝其他擴展。 Emmet 2.0 支持大多數 Emmet Actions,包括擴展 Emmet 縮寫和片段。
如何展開 Emmet 縮寫和片段
默認情況下,vscode會在 html
, haml
, pug
, slim
, jsx
, xml
, xsl
, css
, scss
, sass
, less
和 stylus
文件,以及從上述任何文件繼承的任何語言(如handlebar
和php
)中啟用Emmet功能。
當您開始輸入 Emmet 縮寫時,您將看到該縮寫顯示在建議列表中。如果您打開了建議文檔彈出窗口,您將在鍵入時看到擴展的預覽。如果您在樣式表文件中,展開的縮寫會顯示在建議列表中,並在其他 CSS 建議中排序。
使用 Tab
鍵 進行 Emmet 擴展
如果要使用 Tab
鍵擴展 Emmet 縮寫,請添加以下設置:
"emmet.triggerExpansionOnTab": true
當文本不是 Emmet 縮寫時,此設置允許使用 Tab
鍵進行縮進。
禁用 quickSuggestions 時的 Emmet
如果您禁用了 editor.quickSuggestions
設置,您將不會在鍵入時看到建議。您仍然可以通過按 Ctrl+Space
手動觸發建議並查看預覽。
在建議中禁用 Emmet
如果您根本不想在建議中看到 Emmet 縮寫,請使用以下設置:
"emmet.showExpandedAbbreviation": "never"
您仍然可以使用命令 Emmet: Expand Abbreviation 來擴展您的縮寫。您還可以將任何鍵盤快捷鍵綁定到命令 id editor.emmet.action.expandAbbreviation
。
Emmet 建議排序
為確保 Emmet 建議始終位於建議列表的頂部,請添加以下設置:
"emmet.showSuggestionsAsSnippets": true,
"editor.snippetSuggestions": "top"
其他文件類型中的 Emmet 縮寫
要在默認情況下不可用的文件類型中啟用 Emmet 縮寫擴展,請使用 emmet.includeLanguages
設置。
Language | Identifier |
---|---|
ABAP | abap |
Windows Bat | bat |
BibTeX | bibtex |
Clojure | clojure |
Coffeescript | coffeescript |
C | c |
C++ | cpp |
C# | csharp |
CSS | css |
Diff | diff |
Dockerfile | dockerfile |
F# | fsharp |
Git | git-commit and git-rebase |
Go | go |
Groovy | groovy |
Handlebars | handlebars |
Haml | haml |
HTML | html |
Ini | ini |
Java | java |
JavaScript | javascript |
JavaScript React | javascriptreact |
JSON | json |
JSON with Comments | jsonc |
LaTeX | latex |
Less | less |
Lua | lua |
Makefile | makefile |
Markdown | markdown |
Objective-C | objective-c |
Objective-C++ | objective-cpp |
Perl | perl and perl6 |
PHP | php |
Plain Text | plaintext |
PowerShell | powershell |
Pug | jade , pug |
Python | python |
R | r |
Razor (cshtml) | razor |
Ruby | ruby |
Rust | rust |
SCSS | scss (syntax using curly brackets), sass (indented syntax) |
ShaderLab | shaderlab |
Shell Script (Bash) | shellscript |
Slim | slim |
SQL | sql |
Stylus | stylus |
Swift | swift |
TypeScript | typescript |
TypeScript React | typescriptreact |
TeX | tex |
Visual Basic | vb |
Vue | vue |
Vue HTML | vue-html |
XML | xml |
XSL | xsl |
YAML | yaml |
確保對映射的兩側使用語言標識符,右側是 Emmet 支持的語言的語言標識符(參見上面的列表)。
例如:
"emmet.includeLanguages": {
"javascript": "javascriptreact",
"razor": "html",
"plaintext": "pug"
}
Emmet 不了解這些新語言,因此在非 HTML/CSS 上下文中可能會出現 Emmet 建議。為避免這種情況,您可以使用以下設置。
"emmet.showExpandedAbbreviation": "inMarkupAndStylesheetFilesOnly"
注意:如果您之前使用
emmet.syntaxProfiles
來映射新的文件類型,從 VS Code 1.15 開始,您應該使用設置emmet.includeLanguages
。emmet.syntaxProfiles
僅用於自定義最終輸出。
Emmet 多光標
您也可以將大多數 Emmet 操作與多光標一起使用:
使用過濾器
過濾器是特殊的后處理器,可在擴展后的縮寫輸出到編輯器之前對其進行修改。有兩種使用過濾器的方法;通過 emmet.syntaxProfiles
設置全局設置或直接在當前縮寫中。
下面是使用 emmet.syntaxProfiles
設置對 HTML 文件中的所有縮寫應用 bem
過濾器的第一種方法的示例:
"emmet.syntaxProfiles": {
"html": {
"filters": "bem"
}
}
要僅為當前縮寫提供過濾器,請將過濾器附加到您的縮寫。例如, div#page|c
將對 div#page
縮寫應用comment
過濾器。
BEM過濾器(bem)
如果您使用 Block Element Modifier (BEM) 方式編寫 HTML,那么 bem
過濾器使用起來非常方便。要了解有關如何使用 bem
過濾器的更多信息,請閱讀 Emmet 中的 BEM 過濾器。
您可以使用 Emmet 首選項中記錄的 bem.elementSeparator
和 bem.modifierSeparator
首選項自定義此過濾器。
評論過濾器 (c)
此過濾器在重要標簽周圍添加注釋。默認情況下,“重要標簽”是那些帶有 id 和/或 class 屬性的標簽。
例如 div>div#page>p.title+p|c
將被擴展為:
<div>
<div id="page">
<p class="title"></p>
<!-- /.title -->
<p></p>
</div>
<!-- /#page -->
</div>
您可以使用 Emmet Preferences 中記錄的 filter.commentTrigger
、filter.commentAfter
和 filter.commentBefore
首選項自定義此過濾器。
filter.commentAfter
首選項的格式在 VS Code Emmet 2.0 中有所不同。
例如,而不是:
"emmet.preferences": {
"filter.commentAfter": "\n<!-- /<%= attr('id', '#') %><%= attr('class', '.') %> -->"
}
在 VS Code 中,你會使用一個更簡單的:
"emmet.preferences": {
"filter.commentAfter": "\n<!-- /[#ID][.CLASS] -->"
}
修剪過濾器 (t)
此過濾器僅在為 Emmet: Wrap with Abbreviation 命令提供縮寫時適用。它從包裹的線中刪除線標記。