パルカワ2

最近はFlutterをやっています

VSCode環境改善活動

定期的にVSCodeやInteliJでGitの操作をしたい期がやってくる。4年前も挑戦して挫折している。

最近はInteliJを使ってなくてVSCodeだけになってる。Gitの操作をするときは、VSCodeからiTerm2に移動していてまあそれでも大きくは困ってないんだけど、VSCodeからiTerm2に移動するときはVSCodeで開いてるディレクトリでGitを操作すること以外していないのでVSCodeで完了させたい気がしてきた。

VSCodeGUIでGitを操作することもやってみたけど、自分には無理だったのでVSCodeのTerminalを使うことにする。

TerminalとEditorの移動をキーバインドでできるようにする

VSCodeのUserInterfaceドキュメントを見て何から何に移動したいのか確認する。以下を満たしたい。

  • 特定のEditor GroupsからPanel(Terminal)に移動する
  • Panel(Terminal)から特定のEditor Groupsに移動する

キーバインドの設定を検索する。

  • Terminal: Focus Terminalというのがあったのだけど、デフォルトではキーバインドが設定されていない(!)
  • パネルのターミナルにフォーカスを当てると ^` と表示されていてcontrol+@で移動できるのでこれで良い
  • Editor Groupsには、command+1-9で移動できる

ちなみにcommand+0でサイドバーに移動できる。エクスプローラーとか具体的なのは command+shift+eとか。

また他のパネルは、command+shift+mなどなのでcommand+shift+なんかに統一したい気持ちを抑えてcontrol+@を使う。

ただターミナルにフォーカスが当たっているときにcontrol+@したらEditor Group 1に戻れるように追加した。

[
    {
        "key": "ctrl+[BracketLeft]",
        "command": "workbench.action.focusFirstEditorGroup",
        "when": "terminalFocus"
    }
]

Terminalを開いたらtmuxを開くようにする

tmuxのキーバインドに手が慣れているのでそうした。すでにセッションがある場合は、attachするなどは不要だと思ったのでやっていない。複数のディレクトリをVSCodeで開くのでattachされるとむしろ困るかもしれない。

  • コマンドパレットを出して、Terminal: Select Default Profile を選択
  • tmuxを選択

Terminalを開いたらVSCodeで開いてるディレクトリを開く

VSCodeでTerminalを操作するときは、ほぼ確実にVSCodeで開いてるディレクトリに移動している。

設定に以下を追加

    "terminal.integrated.cwd": "./",

ちゃんとキーバインドを覚える

環境というか自分の問題である…………。

InteliJからVSCodeを使うようになってからキーバインドがわからないままになってたりしてたんだけどちゃんと確認した。

あと最近もともと使えてたキーバインドが使えなくなったりして困ってたんだけどちゃんと原因を調べたりした。Karabiner-Elementsの設定がオフになってた……。

TerminalからVSCodeを開くようにする

日々何個かのディレクトリを行き来している。たくさん開いてると重くなる気がするので不要になったらウインドウを閉じている。再度開く必要があるとき毎回マウスでポチポチしていたけど、fzfで移動出来たら便利じゃんと思ったので作った。 ちなみにすでに開いてるとそのウインドウに移動してくれる。

control+@ -> control+v -> 文字入力 -> 移動 という感じになって楽

fzf-open-vscode() {
  local repo=$(ghq list | fzf --preview "ghq list --full-path --exact {} | xargs exa --color=never --no-permissions --no-user --no-filesize --git-ignore --sort name --tree --level 2")
  if [ -n "$repo" ]; then
    repo=$(ghq list --full-path --exact $repo)
    BUFFER="cd ${repo} && code . && cd -"
    zle accept-line
  fi
  zle clear-screen
}
zle -N fzf-open-vscode
bindkey '^v' fzf-open-vscode

まとめ

手癖でiTermを開いてしまうことがあるけど減らしていける気がする