我正在使用 Visual Studio Code 文本编辑器输入 LaTeX.tex
文档。大多数文本编辑器都会自动为您关闭括号,因此当您输入“{”时,它会添加“}”,然后将光标移到它们之间。由于美元符号用于表示 LaTeX 中的内联数学语句(例如 $\bigcup$),因此我希望 $ 自动用另一个 $ 关闭,然后自动将光标移到它们之间。我知道有些人更喜欢 \(...\),但这不是我要问的。有没有可以更改此设置的设置?
注意:由于 $...$ 和 $$...$$ 之间存在一些混淆,我更改了这个问题的文字。
答案1
请注意,VS Code 的内置语言支持扩展支持对选定的文本进行换行,就像在选定文本时$selection$
按下按钮一样(请参阅$
surroundingPairs
https://github.com/microsoft/vscode/blob/main/extensions/latex/latex-language-configuration.json)。因此,唯一缺少的是没有选择任何内容的情况(如果autoClosingPairs
它是内置实现的话,就会出现这种情况)。
使用键盘快捷键
你可以通过定义一个键绑定来解决这个问题,这个键绑定可以输入美元符号,然后将插入符号向左移动(把它放在你的 keybindings.json 中(Preferences: Open Keyboard Shortcuts (JSON)
在命令面板)):
{
"key": "shift+4", // or whatever it is on your keyboard layout
"command": "runCommands",
"args": {
"commands": [
{
"command": "type",
"args": {"text": "$$" },
},
"cursorLeft",
],
},
"when": "editorTextFocus && (!editorHasSelection) && (editorLangId == latex || editorLangId == tex)"
},
老实说,我认为shift+4
当您实际上只想输入一美元时使用会很烦人(我敢打赌您会对此感到厌烦并将其更改为其他内容),这可能就是为什么它没有内置到 VS Code 的属性中的原因autoClosingPairs
。
使用用户摘要
你可以采取不同的方法,只需使用用户摘要,将类似这样的内容放入您的代码片段文件中(使用Snippets: Configure User Snippets
命令面板中的命令):
"dollar math": {
"scope": "tex,latex",
"prefix": "dm", // this is what you type in the editor to get the snippet suggestion
"body": ["\\$$1\\$"],
},
旁注:此功能请求已在 VS Code 的流行 LaTeX 扩展之一中提出过多次:https://github.com/James-Yu/LaTeX-Workshop/issues/968,https://github.com/James-Yu/LaTeX-Workshop/issues/544,https://github.com/James-Yu/LaTeX-Workshop/issues/235每次,它都会被拒绝(好吧 - 我完全尊重这一点),并显示以下消息:
这将允许用户在用户级别配置自动关闭括号。
我还没有尝试过,但你可以编辑*-language-configuration.json
此扩展安装中的各种文件(查看其syntax/
子目录)。扩展通常安装.vscode/extensions/
在用户主目录中的目录中。您要编辑的属性是autoClosingPairs
您要更改的多个语言配置文件中的任何一个。
从技术上讲,您可以对 VS Code 安装中修改 LaTeX 的内置语言配置 JSON 文件执行相同的操作,但一旦您这样做,VS Code 可能会开始发出损坏警告。