ショートカットで作業をカッコよく高速化（vscode、mac、chrome）

# 概要
できる限りキーボードから手を離さず、素早くコーディングをするためのショートカットを厳選した。
基本的にvscodeでコーディングだが、コーディング中は当然調べものをすることが頻繁に起きるので、chromeとエディターを行ったり来たりするために必要なショートカットも調べてまとめた。
gif動画は画面操作系を抽出している。短くするためにもちろん早送り。
主にエディター、ターミナル、ブラウザ操作だが、 動画の動きがキーボードのみでできる様になる。


![window_move.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/245823/2cf4e4b7-7b99-e132-0e7a-bef966c433a0.gif)

# 全般
|key|operation|
|---|---|
|cmd +  tab| アプリケーション切替|
|ctrl　＋　↓　| アプリケーション内ウィンドウ切替|
|ctrl　＋　↑　|全ウインドウ表示|
|option + backspace（windows: Ctrl + backspace）|  直前の単語を消す

- cmd tabでvscodeとchromeを切り替えてる。必要とあらばfinderとの切り替えも行う。
- 同一アプリケーション内のウィンドウ切り替えをctrl +↓でやる
- 直前単語消しはあちこちで使える

# chrome

参考[https://boxil.jp/beyond/a6976/](https://boxil.jp/beyond/a6976/)

Google検索キーボードショートカット[https://chrome.google.com/webstore/detail/google-search-results-sho/dchaandmcifgjemlhiekookpgjmkcelg](https://chrome.google.com/webstore/detail/google-search-results-sho/dchaandmcifgjemlhiekookpgjmkcelg)

|key|operation|
|---|---|
|cmd + L , option +  Enter|   タブを複製|
|ctrl　+ shift + tab  , ctrl + tab| タブを移動（左、右）|
|space   , shift + space|page up down|
|cmd + w　|閉じる|
|cmd + t |  新しく開く|
|cmd + L|検索窓をアクティブに：|
- Google検索キーボードショートカットは検索結果をカーソルで選択可能になる拡張機能。検索した後のページ行ったり来たりはほとんどキーボード上でできる様になる。

# vscode
## 全般
cmd + K+Sでキーボードショートカットが出てくる。
細かくカスタムしたい人はkeybinding.jsonを開いて追記する。

- shortcut document
    - [https://code.visualstudio.com/api/references/commands]
- 参考
    - [https://insider.10bace.com/2019/02/22/vs-codeとかのショートカットのはなし/](https://insider.10bace.com/2019/02/22/vs-code%E3%81%A8%E3%81%8B%E3%81%AE%E3%82%B7%E3%83%A7%E3%83%BC%E3%83%88%E3%82%AB%E3%83%83%E3%83%88%E3%81%AE%E3%81%AF%E3%81%AA%E3%81%97/)　
    - [https://qiita.com/oruponu/items/ae9c720d4522c1606daf](https://qiita.com/oruponu/items/ae9c720d4522c1606daf)

|key|operation|
|---|---|
|cmd + shift + p| コマンドパレット　困ったらこれ|
|cmd + K+ S|keyborad short cutを開く|
|cmd + w| ファイルを閉じる|
|cmd + n　|新しいファイルを開く（要カスタマイズ）|
|cmd + ctrl + n　|新しいフォルダを開く（要カスタマイズ）|
|cmd +  shift +  E（cmd + 0）|ファイルエクスプローラー表示|
|ctrl + Enter| 新しいペインでファイルを開く|
|cmd + L |行選択（カーソルで複数）|
|ファイル選択(ファイルエクスプローラーで)|space|
|terminarlをアクティブに|ctrl + t|

```
{
"key": "ctrl+t",
"command": "workbench.action.terminal.focus"
    }
```

## editor
|key|operation|
|---|---|
|cmd + shift + tab| 閉じた履歴タブを開く|
|cmd + shift + k| 一行削除|
|cmd + option + ←→（cmd + shift + [,]）|タブ移動|
|ctrl + tab|タブ移動|
|ctrl + cmd + ←→|active editorのペイン移動|
|ctrl + k + ctrl + q|　最後の編集一にもどる|
|option +  ←→　|次の単語へ移動　shiftと一緒に使えば選択|
|cmd + ←→|末尾、先頭へ移動　shiftと一緒使えば選択|
|ctrl + cmd +  option +  ¥（ctrl + shift+5）|editor　or terminal  横分割|
|cmd + shift + option +  ¥|editor 垂直分割(defaultだと６つのボタンで指が釣りそうになるため、カスタマイズ)|
|cmd + t|  シンボル検索|
|cmd + shift + o| シンボル移動|
|option + ↕︎|　現在行を移動|
|option(alt) + pageup(down)|5行ずつ上下(要カスタマイズ)|
|option(alt) + pageup(down) + shift|5行ずつ上下選択(要カスタマイズ)|
|ctrl + cmd + +(-)|拡大(縮小)|

- 複数行カーソル移動したいけどデフォルトではなさそう。  
以下の設定をkeybinding.jsonに記述して、5行ずつ移動、選択をできる様にした。vimみたいに

```
{"key": "alt+pageup",
"command": "cursorMove",
"args": {
"to": "up",
"by": "line",
"value": 5
},
"when": "editorTextFocus"
},
{
"key": "alt+pagedown",
"command": "cursorMove",
"args": {
"to": "down",
"by": "line",
"value": 5
},
{
"key": "alt+pageup",
"command": "cursorMove",
"args": {
"to": "up",
"by": "line",
"value": 5,
},
"when": "editorTextFocus"
},
{
"key": "alt+pagedown",
"command": "cursorMove",
"args": {
"to": "down",
"by": "line",
"value": 5
},
"when": "editorTextFocus"
},
{"key": "alt+shift+pageup",
"command": "cursorMove",
"args": {
"to": "up",
"by": "line",
"value": 5,
"select": true
},
"when": "editorTextFocus"
},
{
"key": "alt+shift+pagedown",
"command": "cursorMove",
"args": {
"to": "down",
"by": "line",
"value": 5,
"select": true
},
"when": "editorTextFocus"
},
```


- editor resizeはカスタムしないと無い[https://stackoverrun.com/ja/q/12023625](https://stackoverrun.com/ja/q/12023625) 
- ただ拡大、縮小だから全体的にサイズが変わってしまう

```

{

"key": "ctrl+cmd+[semicolon]",

"command": "workbench.action.increaseViewSize",

},

{

"key": "ctrl+cmd+[Minus]",

"command": "workbench.action.decreaseViewSize",

}
```


## terminal
|key|operation|
|---|---|
|ctrl + shift + ^ | 新規terminal|
|ctrl + shift + @ |terminalを開く(閉じる)|
|option + cmd + カーソル(editorと同じ)|terminalペイン 移動|
|shift + cmd + [|terminalグループ 移動|
|ctrl + cmd + option + ¥（ctrl + shift+5）|editor　or terminal  分割|
|ctrl + cmd + カーソル|terminarl リサイズ|
|cmd + w | terminal kill(カスタマイズ)|
- terminal kllもデフォルトにはないので、terminal.killを探してkeyを割当てた

```
{

"key": "cmd+w",

"command": "workbench.action.terminal.kill",

"when":"terminalFocus"

}
```

- terminal最大化　これもないので、カスタマイズ

```

{

"key": "ctrl+shift+q",

"command": "workbench.action.toggleMaximizedPanel"

},

```

# その他

- pbcopy, (出力をコピー)(linuxはxsel)
- 練習[https://command-lab.com/vscode-shortcut-reco/](https://command-lab.com/vscode-shortcut-reco/)　

# Vim
- viw+S＋入力で囲みをつける
- 囲みをいじる、消す。cs,ds+""など
- ヴィジュアルモードでU,u、大文字小文字
- ctr+w->矢印でeditor移動
- cmd+数字でeditor移動
- ctr+数字でeditor group内移動
- ctr+cmd + semicolon or minus editor increase,decreas
- ctr+shft+ L or H window resize
# 課題

- editor resizeを４方向でやりたい