前提・実現したいこと
VScodeで.texファイルを書いている時、文中に数式を入れる時の$
を入力した際、ユーザースニペットを使わず、自動で$$
と補完できるようにしたいです。
大抵のエディタは(
を入力した時、同時に)
で閉じる動作をすると思います。これを$
に置き換えた動作を実現したいです。
以前はこの動作が実現できていたのですが、WindowsかVScodeのアップデートの影響なのか原因は不明ですが、この動作ができなくなってしまいました。
発生している問題
参考にした記事
https://code.visualstudio.com/api/language-extensions/language-configuration-guide や
https://qiita.com/BlueSilverCat/items/c245bd098396dc2eb656
によると、この動作を実現するためには、VScodeの言語構成ファイルであるlanguage-configuration.json
というファイルを編集する必要があるそうなので、その中のLaTeX用のC:\Users\xxx\AppData\Local\Programs\Microsoft VS Code\resources\app\extensions\latex\latex-language-configuration.json
を以下のように編集しました。
しかし、VScodeのウィンドウをリロードしても設定が適用されず、$
が$$
に補完されません。
latex_language_configuration.json
1"autoClosingPairs": [ 2 省略 3 [ // 追加部分 4 "$", 5 "$" 6 ], 7 [ 8 "{", 9 "}" 10 ], 11 [ 12 "[", 13 "]" 14 ], 15 [ 16 "(", 17 ")" 18 ], 19 [ 20 "`", 21 "'" 22 ] 23 ], 24 "surroundingPairs": [ 25 [ 26 "{", 27 "}" 28 ], 29 [ 30 "[", 31 "]" 32 ], 33 [ 34 "(", 35 ")" 36 ], 37 [ 38 "\"", 39 "\"" 40 ], 41 [ 42 "'", 43 "'" 44 ], 45 [ 46 "`", 47 "'" 48 ], 49 [ // 追加部分 50 "$", 51 "$" 52 ]
また、setting.jsonは以下のように変えました。
setting.json
1// ---------- Language ---------- 2 "[tex]": { 3 // スニペット補完中にも補完を使えるようにする 4 "editor.suggest.snippetsPreventQuickSuggestions": false, 5 // インデント幅を2にする 6 "editor.tabSize": 2, 7 "editor.autoClosingBrackets": "languageDefined", 8 "editor.autoClosingQuotes": "languageDefined", 9 "editor.autoSurround": "languageDefined", 10 }, 11 "[latex]": { 12 // スニペット補完中にも補完を使えるようにする 13 "editor.suggest.snippetsPreventQuickSuggestions": false, 14 // インデント幅を2にする 15 "editor.tabSize": 2, 16 "editor.autoClosingBrackets": "languageDefined", 17 "editor.autoClosingQuotes": "languageDefined", 18 "editor.autoSurround": "languageDefined", 19 }, 20 "[bibtex]": { 21 // インデント幅を2にする 22 "editor.tabSize": 2 23 },
試したこと
autoClosingPairs
の$
の部分を以下のようにopenとcloseにしても補完されませんでした。
{ "open": "$", "close": "$" },
また、回答してくださったujimushi_sradjp
様のご提案により、以下のように$
を\\$
に変えてみましたが、それも補完されませんでした。
{ "\\$", "\\$" },
しかし、LaTeXではなく、試しにbatファイルの言語構成ファイルであるC:\Users\xxx\AppData\Local\Programs\Microsoft VS Code\resources\app\extensions\bat\language-configuration.json
のautoClosingPairs
部分に$
の補完設定を以下のように記述し、.bat
ファイルに$
を入力したら、自動で$$
に補完することに成功しました。
"autoClosingPairs": [ [ "{", "}" ], [ "[", "]" ], [ "(", ")" ], [ // 追加部分 "$", "$" ], { "open": "\"", "close": "\"", "notIn": [ "string" ] } ],
また、.tex
ファイルの文字を選択し、選択範囲で$
を入力したら選択範囲が$
で囲まれたので、latex-language-configuration.json
のsurroundingPairs
の設定は適用されているのだと考えました。
ですが、試しにlatex-language-configuration.json
の全文をコメントアウトして保存し、再度ウィンドウをリロードしても選択範囲が$
で囲まれたので、そもそもlatex-language-configuration.json
が適用されておらず、編集するべきファイルではない可能性も出ました。
一体どうすれば$
を$$
に補完できるでしょうか?ご助言を頂きたいです。
以下の記事を参考にしました。
https://code.visualstudio.com/api/language-extensions/language-configuration-guide
https://qiita.com/BlueSilverCat/items/c245bd098396dc2eb656
環境は以下の通りです。
- Windows11:バージョン21H2(OS ビルド 22000.739)
- Visual Studio Code:バージョン 1.68.1

バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/07/14 12:22 編集