![](/img/trans.png)
[英]What is the shortcut for 'change language mode' in Visual Studio Code?
[英]In Visual Studio Code is there a way to scope settings and keybindings to a language mode?
在VS Code 中,我知道您可以創建包含全局用戶鍵綁定和設置的文件,並且您可以為鍵綁定和設置創建特定於工作區的文件,但是是否可以定義特定於語言模式的設置或鍵綁定?
例如,我希望Alt + /表示FSI: Send Line
當我處於 F# 模式時FSI: Send Line
,但不是當我處於降價模式或 JS 模式時。
我希望我的制表符在 Elm 模式下為 2 個空格,而在 C# 模式下為 4 個空格。
我知道您可以使用when
子句定義鍵綁定,如下所示:
{
"key": "alt+/",
"command": "fsi.SendLine",
"when": "resourceLangId == fsharp"
}
這是實現我所追求的目標的唯一方法嗎?
似乎能夠在他們自己的文件中的某個地方為模式 X 定義設置/鍵綁定是有意義的。 我不喜歡將語言模式行為分散在像這樣的大型全局文件中。
Visual Studio Code 已經聲明,目前(2016-10-19)不支持語言模式設置,但正在考慮中。 ( https://twitter.com/code/status/788301380557561857 )
VS Code Github 存儲庫上存在一些問題,要求提供此功能的變體。
要根據編程語言自定義 VS Code 設置和鍵綁定,您可以使用語言標識符、文件擴展名或擴展標識符。
對於設置,您可以使用語言條目(在settings.json
):
"[fsharp]": {
"editor.suggest.insertMode": "replace"
}
對於鍵綁定,您可以使用以下when
子句上下文(在keybindings.json
):
editorLangId
當編輯器的關聯語言 ID 匹配時為真。
{
"key": "ctrl+e",
"command": "workbench.action.files.saveAs",
"when": "editorLangId == fsharp"
}
resourceLangId
當資源管理器或編輯器標題語言 ID 匹配時為真。
{
"key": "ctrl+e",
"command": "workbench.action.files.saveAs",
"when": "resourceLangId == fsharp"
}
resourceExtname
當資源管理器或編輯器文件擴展名匹配時為真。
{
"key": "ctrl+e",
"command": "workbench.action.files.saveAs",
"when": "resourceExtname == .fs"
}
extension
當擴展的 ID 匹配時為真。
{
"key": "ctrl+e",
"command": "workbench.action.files.saveAs",
"when": "extension == ionide.ionide-fsharp"
}
注意:我沒有測試所有這些子句,但editorLangId
和resourceExtname
對我來說很好。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.