VimmerのためのVScodeを120%活かすキーバインド[暫定]

#はじめに
[こちら](https://amzn.to/2Ric6pT)を参考にしました

VScodeにまつわるおすすめ設定には様々なものがありますが、私のようなVimmerはVscodeのキーバインドなど覚えたくないのです。この記事を見てくれているということは、あなたもきっと同じ心境なのでしょう。

やりたいことは極力マウスを使わずにvscodeのキーバインドはいじらず`vscodevim`を120%活かす方法です。

# 参考

[こちらを読んでいただけると良いと思います！](https://amzn.to/2Ric6pT)

#方法
ToggleとFocusの２つだけに焦点をあてます。

##Toggle
これはONOFFにする機能です。たとえばサイドバーを開いたり閉じたりするような機能のことをいいます。

そして使用するToggleがサイドバーとターミナルで両方ともデフォルトの設定が存在します。

```terminal:Toggle
  // --------------------------------------
  // Toggle
  // --------------------------------------

  // サイドバーのtoggle
  {
    "key": "ctrl+b",
    "command": "workbench.action.toggleSidebarVisibility"
  },

  // ターミナルのtoggle
  {
    "key": "ctrl+`",
    "command": "workbench.action.terminal.toggleTerminal"
  },
```

## Focus
これはタブやサイドバーなどあれこれ開くことができますが、それらをアクティブな状態にし操作できるようにする機能です。

そして使用するFocusはエスクプローラーとターミナルとエディターです。こちらは設定する必要があります。

```terminal:Focus
  // --------------------------------------
  // Focus
  // --------------------------------------

  // エクスプローラーへフォーカス
  { "key": "ctrl+h", "command": "workbench.files.action.focusOpenEditorsView" },

  // ターミナルへフォーカス
  { "key": "ctrl+j", "command": "workbench.action.terminal.focus" },

  // エディターへフォーカス
  {
    "key": "ctrl+k",
    "command": "workbench.action.focusActiveEditorGroup"
  },
```

## おまけ


## vimのバインドを１つ無効化

サイドバーのtoggleと被るので無効化する。

```
  // --------------------------------------
  // 無効
  // --------------------------------------
  {
    "key": "ctrl+b",
    "command": "-extension.vim_ctrl+b",
    "when": "editorTextFocus && vim.active && vim.use<C-b> && !inDebugRepl && vim.mode != 'Insert'"
  },
```

# まとめ

```
[
  // --------------------------------------
  // 無効
  // --------------------------------------
  {
    "key": "ctrl+b",
    "command": "-extension.vim_ctrl+b",
    "when": "editorTextFocus && vim.active && vim.use<C-b> && !inDebugRepl && vim.mode != 'Insert'"
  },


  // --------------------------------------
  // 有効
  // --------------------------------------


  // --------------------------------------
  // TOGGLE
  // --------------------------------------

  // サイドバーのtoggle
  {
    "key": "ctrl+b",
    "command": "workbench.action.toggleSidebarVisibility"
  },

  // ターミナルのtoggle
  {
    "key": "ctrl+`",
    "command": "workbench.action.terminal.toggleTerminal"
  },


  // --------------------------------------
  // FOCUS
  // --------------------------------------

  // エクスプローラーへフォーカス
  { "key": "ctrl+h", "command": "workbench.files.action.focusFilesExplorer"},

  // ターミナルへフォーカス
  { "key": "ctrl+j", "command": "workbench.action.terminal.focus" },

  // エディターへフォーカス
  {
    "key": "ctrl+k",
    "command": "workbench.action.focusActiveEditorGroup"
  },


  // --------------------------------------
  // エクスプローラー
  // --------------------------------------

  // ファイルを開く
  {
    "key": "o",
    "command": "list.select",
    "when": "explorerViewletFocus && listFocus &&explorerViewletVisible && !inputFocus"
  },
  // ファイルを削除
  {
    "key": "d",
    "command": "deleteFile",
   "when": "explorerViewletFocus && listFocus &&explorerViewletVisible && !inputFocus"
  }, 
  // ファイル名を変更
  {
    "key": "n",
    "command": "renameFile",
    "when": "explorerViewletFocus && listFocus &&explorerViewletVisible && !inputFocus"
  },
  // Reflesh
  {
    "key": "r",
    "command": "workbench.files.action.refreshFilesExplorer",
    "when": "explorerViewletFocus && listFocus &&explorerViewletVisible && !inputFocus",
  },


  // --------------------------------------
  // 設定ファイル
  // --------------------------------------

  // keyboard shortcuts を開く
  {
    "key": "ctrl+shift+/",
    "command": "workbench.action.openGlobalKeybindings"
  },
  // keybindings.json　を開く
  {
    "key": "ctrl+shift+k",
    "command": "workbench.action.openGlobalKeybindingsFile"
  },
  // settings.json を開く
  {
    "key": "ctrl+shift+s",
    "command": "workbench.action.openSettingsJson"
  },
]
```