Skip to content

VS Code で「単語削除」にショートカットを割り当てる

Linux や macOS を利用していると Ctrl+W で「単語を削除する」というショートカットを頻繁に利用します。 ですが、VS Code ではこの機能があるものの、デフォルトではショートカットキーが割当たっておらず、手軽に利用出来ません。 そこで今回はこのショートカット設定を実施してみます。 今回は macOS 14.2 + VS Code 1.84.2 を利用しています。

Step.1

VS Code のメニューから CodeSettingsKeyboard Shortcuts を選択します。 表示された検索窓に ctrl+w と入力すると、この組み合わせには予め Switch Window というショートカットが割当たっていることが分かります。 ショートカットキーが重複してしまう為、この Switch Window 機能のショートカットは後の手順で削除します。

file

Step.2

VS Code に「単語を削除する」という機能は幾つかあり、微妙に挙動が異なります (単語を削除する際、デリミタも削除するのか、しないのか、等)。 私の場合は deleteWordStartLeft 機能を利用したい為、検索窓に deleteWordStartLeft と入力するとショートカットキーの割当が無いことが分かります。

file

Step.3

Switch Window のショートカットキーを削除したいのですが、GUI 上からは (ショートカットキーの変更は可能なのですが) 割当の削除は出来ないようです。 その為、右上のファイルアイコンをクリックしてショートカットキーを定義している keybindings.json ファイルを開きます。

file

Step.4

私の環境では何も定義していなかった為、keybindings.json の中身は空でした。

file

今回は以下のように定義しました。 Switch Window は内部的に workbench.action.switchWindow と表現されていますが、このコマンドに対して - (マイナス) 記号を付与することで無効化します。 また、deleteWordStartLeft には Ctrl+W を割り当てます。 これでショートカットキーが重複することなく、定義することが出来ます。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
// Place your key bindings in this file to override the defaults
[
    {
        "key": "ctrl+w",
        "command": "-workbench.action.switchWindow"
    },
    {
        "key": "ctrl+w",
        "command": "deleteWordStartLeft"
    },
]

file

これで設定は完了です。 ショートカットキーの変更は VS Code を再起動することなく、即座に反映されます。

実際の挙動

カーソル位置の「左側にある単語」を削除したい場合に Ctrl+W を利用します。 今回は以下の位置で Ctrl+W を押してみます。

file

すると「カーソル位置の左側にある単語」が削除され、且つ、デリミタ文字 (今回は空白) の右側でカーソルが停止します。

file

今回利用した deleteWordStartLeft 以外にも deleteWord 〜 という機能はありますが、「カーソルの停止位置が異なる」など、挙動が異なります。