VS CodeのVimプラグインには、settings.jsonという設定ファイルがあり、プラグインの設定をそこに記述します。また、ctrl+,キーで表示されるGUIからvimを検索し、各項目を設定することもできます。

設定やり方の概要

setting.json で 設定する

エディタ内の振る舞いを設定するには、settings.jsonファイルにvimプラグインに設定を追加します。ただしCtrl+alt+oのような3つ以上の複合キーバインドはvimプラグインでは設定できないので、そういう場合は後述のkeybinding.jsonに設定を追加することで解決できます。

以下のような記述を追加します。

"vim.normalModeKeyBindingsNonRecursive": [
    {
        "before": ["j", "j"],
        "commands": [
            "workbench.action.navigateDown",
            "workbench.action.navigateDown"
        ]
    },
    {
        "before": ["k", "k"],
        "commands": [
            "workbench.action.navigateUp",
            "workbench.action.navigateUp"
        ]
    }
],

この例では、jを2回押すことで下に移動し、kを2回押すことで上に移動するように設定しています。このように、beforeに押されたキーの配列、commandsに実行されるコマンドの配列を指定します。commandsには、VS
Codeのコマンドを指定することができます。

commands以外にもafterを指定して、キーの割り当てを置換することができます。以下はインサートモードで ctrl+h<left>に割り当てる設定です。Ctrl+h<C-h>と記述することに注意してください

"vim.insertModeKeyBidnings": [
    // Assign Ctrl+h to Cursor Left in Insert mode
    {
        "before": ["<C-h>"],
        "after": ["<left>"]
    }
]

また、設定画面のGUIからキーバインドを設定する場合は、ctrl+,キーで表示される設定画面からvimを検索し、vim.normalModeKeyBindingsNonRecursiveを設定してください。

vim.commandLineModeKeyBindingsを設定するには、以下のような記述をsettings.jsonに追加します。

"vim.commandLineModeKeyBindings": [
    {
        "before": [":"],
        "commands": [
            "workbench.action.terminal.openNativeConsole",
            "workbench.action.terminal.selectAll",
            "workbench.action.terminal.copySelection",
            "workbench.action.terminal.clearSelection"
        ]
    }
]

この例では、:を押すことでターミナルを開き、選択したテキストをコピーすることができます。commandsには、VS
Codeのコマンドを指定することができます。

beforeには、:などのコマンドラインモードに入るキーを指定します。

GUIからキーバインドを設定する場合は、ctrl+,キーで表示されるGUIからvim.commandLineModeKeyBindingsを設定してください。

コマンド名の調べ方

commandsに指定するコマンドは、以下の方法で調べることができます。

  1. メニューバーからFile > Preferences > Keyboard Shortcutsを開きます。
  2. 検索バーにコマンド名を入力します。
  3. コマンドが表示されるので、そのままコピーしてcommandsに貼り付けます。

また、コマンド名にはworkbench.editor.などのプレフィックスがつく場合があるので、必要に応じて指定してください。

keybinding.jsonで設定する

エディタ以外部分のvscodeの振る舞いを設定するには keybinding.json を編集します。

keybinding.jsonは、キーバインドを設定するためのファイルです。ここで設定されたキーバインドは、VS
Code全体で有効になります。以下はkeybinding.jsonを使用して、ctrl+shift+alt+oを押すことで、ターミナルを開く設定の例です。

[
  {
    "key": "ctrl+shift+alt+o",
    "command": "workbench.action.terminal.toggleTerminal"
  }
]

keyには、キーバインドを指定します。commandには、実行されるコマンドを指定します。コマンドは、commandsに指定するコマンドと同様に、メニューバーから調べることができます。

VS CodeのGUIからキーバインドを設定する場合は、ctrl+,キーで表示する設定画面からkeybindingsを検索し、keybindings.jsonを編集してください。

keybinding.jsonの場所は、OSによって異なります。Windowsでは、C:\\Users\\[ユーザー名]\\AppData\\Roaming\\Code\\Userにあります。macOSでは、~/Library/Application Support/Code/Userにあります。Linuxでは、~/.config/Code/Userにあります。

vscodeをvim風に操作する設定

以下は個人的な設定の一部です。

ctrl+w で ファイル閉じるを無効化する

keybinding.jsonに記述します

{
    "key": "ctrl+w",
    "command": "-workbench.action.closeActiveEditor"
  }

QuickOpenのセレクタの上下操作をvim風にする

QuickOpenとはctrl+p, ctrl+shift+pで開くウィンドウのことです。keybinding.jsonに記述します。

{
    "key": "ctrl+j",
    "command": "workbench.action.quickOpenSelectNext",
    "when": "inQuickOpen"
 },
 {
    "key": "ctrl+k",
    "command": "workbench.action.quickOpenSelectPrevious",
    "when": "inQuickOpen"
 },

編集中にでるサジェストのセレクタの上下操作をvim風にする

keybinding.jsonに記述します。

{
    "key": "ctrl+j",
    "command": "selectNextSuggestion",
    "when": "suggestWidgetMultipleSuggestions && suggestWidgetVisible&& textInputFocus"
  },
  {
    "key": "ctrl+k",
    "command": "selectPrevSuggestion",
    "when": "suggestWidgetMultipleSuggestions && suggestWidgetVisible&& textInputFocus"
  },

エディタのタブグループを閉じる

setting.jsonに記述します。ノーマルモード時に:tabcと入力することでカレントのタブグループを閉じます

"vim.normalModeKeyBindingsNonRecursive": [
    {
      "before": [
        ":",
        "t",
        "a",
        "b",
        "c",
      ],
      "commands": [
        "workbench.action.closeEditorsInGroup"
      ]
    }
  ],

このエントリは随時加筆しています。

Udemy 独学でのアプリ開発に限界を感じたら

プログラミング初学者の皆さんに、 Udemy を強くお勧めしたいと思います。 Udemy は世界中のトップレベルのプログラミング講師が提供するオンライン講座を取り揃えています。以下は、 Udemy で学ぶことのメリットについての詳細です。

1. Udemy の豊富なコースの選択肢

Udemyには、数千ものコースがあります。初心者から上級者まで、プログラミングのあらゆるレベルを網羅しています。また、様々なプログラミング言語やツールに関するコースも多数あり、希望に合わせたコースを選ぶことができます。

2. 実践的な学習方法

Udemyのコースは、理論だけでなく実践的な学習も行えます。多くのコースには、プログラムの作成や実際のプロジェクトに取り組む演習が含まれています。これにより、理論だけでなく実践的なスキルも身につけることができます。

3. Udemy には質の高い講師陣

Udemyの講師陣には、世界中のトップレベルのプログラマーが多数在籍しています。彼らは、実務での経験を活かして、分かりやすい講義を行っています。

4. 初学者が始めるのにとても手頃な価格

Udemyのコースは、他のオンライン講座と比べて手頃な価格で提供されています。また、一度購入すると、終身アクセスが得られるので、自分のペースで学習することができます。

以上の理由から、プログラミング初学者の方には、Udemyが最適な学習プラットフォームであると考えられます。ぜひ一度、Udemyのコースを体験してみてください。


ウェブ開発の人気オンラインコース


ITとソフトウェアの人気オンラインコース


デザインの人気オンラインコース