5

この記事は最終更新日から3年以上が経過しています。

投稿日

更新日

VS Codeで自作スニペットをキーボードショートカットで呼び出す

はじめに

私事で恐縮ですが,先日LaTeXの執筆環境をTeXstudioからVS Codeに乗り換えました.TeXstudioではctrl+shift+mのキーボードショートカットでインライン数式モードの$ (カーソル位置) $を出力することができ,便利に使っていました.前の環境で使っていた機能を新しい環境でも使いたいと思うのが世の常だと思います.VS Codeでこの機能を実現するためにはスニペットをキーボードショートカットで呼び出す必要がありました.

VS Codeのバージョンは1.28.2でWindowsです.

スニペットの設定

latex.jsonに以下を追加.タブストップを使ってカーソルの位置を指定しています.また,このスニペットはキーボードショートカット専用にしたいので"prefix"には半角スペースだけを入力してサジェストに表示されないようにしています.

latex.json
"inline_math":{
    "prefix": " ",
    "body": "\\$ $1 \\$$0",
    "description": "インライン数式"
}

キーバインドの設定

keybindings.jsonに以下を追加."args""langId"に言語を指定して,"name"に設定したスニペットの名前をつけてやる.また,デフォルトで割り当てられていたキーボードショートカットを無効にしています.

keybindings.json
{
    "key":"ctrl+shift+m",
    "command":"editor.action.insertSnippet",
    "args":{
        "langId": "latex",
        "name": "inline_math"
    },
    "when": "editorTextFocus && editorLangId == 'latex'"
},
{
    "key": "ctrl+shift+m",
    "command": "-workbench.actions.view.problems"
}

おわりに

VS Codeにおいてctrl+shift+m$ (カーソル位置) $を出力できるようになりました.

ちなみにキーボードショートカットで単純にテキストを出力するだけなら以下をkeybindings.jsonに追加すれば良いです.ただし,カーソルの位置の指定などは出来ないようです.

keybindings.json
{
    "key":"ctrl+shift+m",
    "command":"type",
    "args":{"text":"Hello, World!"},
    "when": "editorTextFocus"
}

参考URL

新規登録して、もっと便利にQiitaを使ってみよう

  1. あなたにマッチした記事をお届けします
  2. 便利な情報をあとで効率的に読み返せます
ログインすると使える機能について

コメント

この記事にコメントはありません。
あなたもコメントしてみませんか :)
新規登録
すでにアカウントを持っている方はログイン
5