新石器Wiki

近年はシリコン(石)から進化した便利なもので溢れる時代。そんな気になった事や試した事など記す。

ユーザ用ツール

サイト用ツール


サイドバー

Home The modern stone age.

サイドバー

記事ナビ


タグ一覧

タグ#
1
18
7
2

作者関連サイト

参考

スポンサーリンク

software:vscode:vscode-emadcs-keybindings


VSCodeをEmacsキー配列で使う

以下の記事で「VSCode(Visual Studio Code)」をインストールした。そして、Emacsキー配列で使うようにカスタマイズしたので備忘録を残す。

【VSCode】macOS, Windows, Ubuntuで共通なエディター環境を構築(インストール編)

基本キーボード配列変更

Emacs配列の場合は、CtrlキーとMetaキーが押しやすい位置にあった方が便利なので、以下の変更をする。

Windowsの場合

CtrlキーとCapsキーを入れ換えて、Ctrlキーが小指で押しやすい位置に移動する。

Windowsの場合、レジストリを書き換える事でキー配列は変更ができるので、Microsfotが配布していた「Remapkey」というツールを使って変更を行った。尚、このツールは現在では入手できないかもしれないが、同等機能のソフトが色々と出回っているので、どれらを利用してもよい。

macOSの場合

Emacsキー操作では、Metaキーとして使われるoptキーが親指で押しやすい位置にあった方が便利なのでcmdキーと入れ替える。Karabiner-Elementsを使って、vscodeでのみキー入れ替えを行う。
以下の「vscode.json」ファイルを作成し、~/.config/karabiner/assets/complex_modifications/ フォルダに保存。

vscode.json
{
  "title": "ALT <=> CMD in VSCode",
  "rules": [
    {
      "description": "Swap option and command in vscode",
      "manipulators": [
        {
          "type": "basic",
          "from": {
            "key_code": "left_option",
            "modifiers": {
              "optional": [
                "any"
              ]
            }
          },
          "to": [
            {
              "key_code": "left_command"
            }
          ],
          "conditions": [
            {
              "type": "frontmost_application_if",
              "bundle_identifiers": [
                "VSCode"
              ]
            }
          ]
        },
        {
          "type": "basic",
          "from": {
            "key_code": "left_command",
            "modifiers": {
              "optional": [
                "any"
              ]
            }
          },
          "to": [
            {
              "key_code": "left_option"
            }
          ],
          "conditions": [
            {
              "type": "frontmost_application_if",
              "bundle_identifiers": [
                "VSCode"
              ]
            }
          ]
        }
      ]
    }
  ]
}

上記設定を、Karabinerで有効にする。

尚、Ctrlキーについては、Mac標準キーボードでは、小指の横に配置されているので変更の必要はないが、もしもWindowsキーボードなどを使っている場合などは、このソフトなどで配列変更する。

Ubuntuの場合

CtrlキーとCapsキーを入れ換えて、Ctrlキーが小指で押しやすい位置に移動する。手順は、下記記事を参照。

【Ubuntu 20.04/18.04 LTS】CapsLockとControlキーを入れ替える

VSCodeのキーバインド変更

拡張機能を使ってEmacsキー準拠配列にカスタマイズする。いろいろな拡張機能が公開されているが「Awesome Emacs Keymap」がお勧めでインストールする。

拡張機能のインストール

VSCodeでは、様々な拡張機能が準備されている。まずは、Emacsキー配列に変更する拡張機能をインストールする。
サイドメニューの■マークが並んだアイコンをクリック。

検索フォームに「Awesome Emacs Keymap」と入力する。(全部入力しなくてもマッチする一覧がでる)
これで、基本的なEmacsキー操作になる。キー割り当ては、下記URLのドキュメント参照。

Awesome Emacs Keymap

キーバインドの調整

あとは、好みのキーバインドを追加する。キーバインドは、keybindings.json ファイルに記述する事で設定できる。

左下の歯車アイコン(設定)から「キーボードショートカット」を選択。

設定されているキーバインドの一覧が表示される。次に、右上の「キーボードショートカットを開く(JSON)」を押す。

keybindings.jsonファイルの編集画面となるので、キー割り当ての定義を記述する。

以下の定義を追加。

keybindings.json
[
    {
        "key": "ctrl+,",
        "command": "workbench.action.previousEditor",
        "when": ""
    },
    {
        "key": "ctrl+.",
        "command": "workbench.action.nextEditor",
        "when": ""
    },
    {
        "key": "ctrl+z ctrl+p",
        "command": "workbench.action.previousEditor",
        "when": ""
    },
    {
        "key": "ctrl+z ctrl+n",
        "command": "workbench.action.nextEditor",
        "when": ""
    },
    {
        "key": "ctrl+z ctrl+a",
        "command": "cursorTop",
        "when": "textInputFocus"
    },
    {
        "key": "ctrl+z ctrl+e",
        "command": "cursorBottom",
        "when": "textInputFocus"
    }
]

以下のキー定義となる。

キー割当て 説明 コマンド
C-, 左のタブへ切り換え workbench.action.previousEditor
C-. 右のタブへ切り換え workbench.action.nextEditor
C-z C-p 左のタブへ切り換え workbench.action.previousEditor
C-z C-n 右のタブへ切り換え workbench.action.nextEditor
C-z C-a バッファー先頭に移動 cursorTop
C-z C-e バッファー末尾に移動 cursorBottom

関連記事

参考

software/vscode/vscode-emadcs-keybindings.txt · 最終更新: 2021/07/21 10:55 by yoko