Visual Studio Codeをインストールするときにやったこと

AtomからVScodeに移行したメモです。 自分しか使ってないようなkey-bindとかもありますが、 同じように設定に困ったら参考にしてください。

カラーテーマ

Atom One Dark Theme

表示関連

goのソースコードのみタブを半角スペース2つへ

    "[go]": {
        "editor.insertSpaces": true,
        "editor.tabSize": 2,
        "editor.autoIndent": false
    }

全角スペースを強調

以下パッケージをインストール

EvilInspector

半角スペースを強調

表示空白文字の表示の切り替え

折り返し

    "editor.wordWrap": "on"

key-bind系

パッケージ

エディタの分割

defaultのまま

{
  "key": "ctrl+alt+cmd+[IntlYen]",
  "command": "workbench.action.splitEditor"
}

cmd+cでESCされてしまう(vimパッケージによる)

ショートカットを削除

{
  "key": "",
  "command": "extension.vim_cmd+c"
}

行を跨いて左右の移動ができない(vimパッケージによる)

ショートカットを削除

{
  "key": "",
  "command": "extension.vim_left"
}
{
  "key": "",
  "command": "extension.vim_right"
}

go to def

ショートカットを変更

定義へ

{
  "key": "cmd+d",
  "command": "editor.action.goToDeclaration",
  "when": "editorHasDefinitionProvider && editorTextFocus && !isInEmbeddedEditor"
}

定義から戻る

{
  "key": "shift+cmd+d",
  "command": "workbench.action.navigateBack"
}

置換

ショートカットを変更

{
  "key": "shift+cmd+f",
  "command": "editor.action.startFindReplaceAction"
}

移動

ショートカットを変更

行頭へ

{
  "key": "ctrl+a",
  "command": "cursorLineStart",
  "when": "editorTextFocus"
}

行末へ

{
  "key": "ctrl+e",
  "command": "cursorLineEnd",
  "when": "editorTextFocus"
}

Go関連

パッケージ

Go for Visual Studio Code

合わせて必要なパッケージをターミナルからインストールしておく。

go get -u -v github.com/nsf/gocode
go get -u -v github.com/rogpeppe/godef
go get -u -v github.com/zmb3/gogetdoc
go get -u -v github.com/golang/lint/golint
go get -u -v github.com/lukehoban/go-outline
go get -u -v sourcegraph.com/sqs/goreturns
go get -u -v golang.org/x/tools/cmd/gorename
go get -u -v github.com/tpng/gopkgs
go get -u -v github.com/newhook/go-symbols
go get -u -v golang.org/x/tools/cmd/guru
go get -u -v github.com/cweill/gotests/...
go get github.com/derekparker/delve/cmd/dlv

go tests generate

ショートカットを登録

{
  "key": "shift+cmd+g",
  "command": "go.test.generate.function"
}

go testsの実行(*_test.goで以下コマンドを実行)

{
  "key": "f5",
  "command": "go.test.file"
}

go testsのcoverageを表示

{
    "go.buildFlags": ["-cover"]
}

markdown

preview

{
  "key": "ctrl+shift+m",
  "command": "markdown.showPreviewToSide",
  "when": "editorLangId == 'markdown'"
}

previewと本文が一緒に動かないようにしたい

{
    "markdown.preview.scrollPreviewWithEditorSelection": false
}

ターミナル

ターミナルへ移動

{
  "key": "ctrl+cmd+t",
  "command": "workbench.action.terminal.focusPrevious"
}

ターミナルのカーソルを縦棒(|)にする

{
    "terminal.integrated.cursorStyle": "line"
}

その他

メッセージボックスを消す

f:id:cipepser:20180305164959p:plain

以下ショートカットを追加

    {
        "key": "escape",
        "command": "workbench.action.closeMessages",
        "when": "globalMessageVisible"
    }

最後に

最終的なkeybindings.jsonsettings.jsonは、Githubに上げてあります。

References