Pet*_*ter 5 keyboard-shortcuts visual-studio-code
在VS Code中,我知道您可以创建包含全局用户键绑定和设置的文件,并且可以拥有用于键绑定和设置的工作区特定文件,但是是否可以定义特定于语言模式的设置或键绑定?
例如,我希望Alt+/表示FSI: Send Line
当我处于 F# 模式时,而不是当我处于 Markdown 模式或 JS 模式时。
当我处于 Elm 模式时,我希望制表符为 2 个空格,但在 C# 模式下为 4 个空格。
我知道您可以使用when
如下子句定义键绑定:
{
"key": "alt+/",
"command": "fsi.SendLine",
"when": "resourceLangId == fsharp"
}
Run Code Online (Sandbox Code Playgroud)
这是实现我所追求的目标的唯一方法吗?
似乎能够在自己的文件中的某处定义模式 X 的设置/键绑定是有意义的。我不喜欢将语言模式行为分散在像这样的大型全局文件中。
要根据编程语言自定义 VS Code 设置和键绑定,您可以使用语言标识符、文件扩展名或扩展标识符。
对于设置,您可以使用语言输入(在 中settings.json
):
"[fsharp]": {
"editor.suggest.insertMode": "replace"
}
Run Code Online (Sandbox Code Playgroud)
对于键绑定,您可以使用以下when
子句上下文(在keybindings.json
):
editorLangId
当编辑器的关联语言 ID 匹配时为 True。
{
"key": "ctrl+e",
"command": "workbench.action.files.saveAs",
"when": "editorLangId == fsharp"
}
Run Code Online (Sandbox Code Playgroud)
resourceLangId
当资源管理器或编辑器标题语言 ID 匹配时为 True。
{
"key": "ctrl+e",
"command": "workbench.action.files.saveAs",
"when": "resourceLangId == fsharp"
}
Run Code Online (Sandbox Code Playgroud)
resourceExtname
当资源管理器或编辑器文件扩展名匹配时为 true。
{
"key": "ctrl+e",
"command": "workbench.action.files.saveAs",
"when": "resourceExtname == .fs"
}
Run Code Online (Sandbox Code Playgroud)
extension
当扩展的 ID 匹配时为 True。
{
"key": "ctrl+e",
"command": "workbench.action.files.saveAs",
"when": "extension == ionide.ionide-fsharp"
}
Run Code Online (Sandbox Code Playgroud)
注意:
我没有测试所有这些条款,但对我来说工作得很好editorLangId
。resourceExtname
Visual Studio Code 表示,目前(2016-10-19)不支持语言模式设置,但正在考虑中。(https://twitter.com/code/status/788301380557561857)
VS Code Github 存储库上有几个问题请求此功能的变体。
https://github.com/Microsoft/vscode/issues/13532
https://github.com/Microsoft/vscode/issues/1073
归档时间: |
|
查看次数: |
1574 次 |
最近记录: |