$shibayu36->blog;

株式会社はてなでエンジニアをしています。プログラミングや読書のことなどについて書いています。

vscodeのFiles ExplorerのショートカットをEmacs風に

vscodeを触っていて、Files Explorerを素早く操作できないことにストレスを感じていた。そこで素早く操作できるようにキーバインドを調整してみた。新しいキーバインドを覚えられないので、Emacs風になるようにセットアップしてみた。

    // Files ExplorerにC-x C-fでフォーカス
    {
        "key": "ctrl+x ctrl+f",
        "command": "workbench.explorer.fileView.focus"
    },
    // ディレクトリはEnterで開く
    {
        "key": "enter",
        "command": "list.toggleExpand",
        "when": "listFocus && !inputFocus && explorerViewletVisible && filesExplorerFocus && explorerResourceIsFolder"
    },
    // C-oするとFiles Explorerにフォーカスしたままファイルを開く
    {
        "key": "ctrl+o",
        "command": "filesExplorer.openFilePreserveFocus",
        "when": "explorerViewletVisible && filesExplorerFocus && !explorerResourceIsFolder && !inputFocus"
    },
    // Files Explorerのディレクトリにフォーカスした状態でC-x C-fするとNew Fileする
    {
        "key": "ctrl+x ctrl+f",
        "command": "explorer.newFile",
        "when": "listFocus && !inputFocus && explorerViewletVisible && filesExplorerFocus && explorerResourceIsFolder"
    },
    // Enterにrenameが割り当てられていると、Enterでファイルを開けないのでRenameのキーバインドから外す
    {
        "key": "enter",
        "command": "-renameFile",
        "when": "explorerViewletVisible && filesExplorerFocus && !explorerResourceIsRoot && !explorerResourceReadonly && !inputFocus"
    },
    // ディレクトリにフォーカスした状態でC-c C-gで、そのディレクトリ内からFindする
    {
        "key": "ctrl+c ctrl+g",
        "command": "filesExplorer.findInFolder",
        "when": "explorerResourceIsFolder && explorerViewletVisible && filesExplorerFocus && !inputFocus"
    },
    {
        "key": "shift+alt+f",
        "command": "-filesExplorer.findInFolder",
        "when": "explorerResourceIsFolder && explorerViewletVisible && filesExplorerFocus && !inputFocus"
    }

これでFiles Explorerの操作が高速になったので便利。