エンジニアになって僕はマウスを捨てた

# 何の記事？？
毎日必ず使うツールのショートカットとその設定をまとめたもの。
とりあえず [vimium](https://chrome.google.com/webstore/detail/vimium/dbepggeogbaibhgnhhndojpepiihcmeb)だけでも入れてください。

## 扱うツール
- chrome
- VScode
- Notion
- Slack


# chrome
### vimium
コードを書いている途中でググるためにキーボードから手を離したらエンジニア人生が終わると思ってる。
まだ入れてない人がいたらすぐに入れるべき。今すぐ。
`d`を押しながらこの記事を読んでください。
リンク先でインストールを押すだけ。今すぐやってくれ。

https://chrome.google.com/webstore/detail/vimium/dbepggeogbaibhgnhhndojpepiihcmeb

たくさんのコマンドがあるが、よく使うものを整理しておく。毎日５０回ずつくらい使ってる

|操作 |キー   |
|---|---|
|上にスクロール |k  |
|下にスクロール  |j  |
|戻る|h|
|進む|l|
|ページの一番上までスクロール|gg|
|ページの一番下までスクロール|G (shift + g)|
|リンクの検索、クリック|i|
|新規タブでリンクを開く|I (shift + i)|
|URLのコピー|yy|
|新規タブを開く|t|
|左のタブへ移動|H (shift + h)|
|右のタブへ移動|L (shift + l)|
|タブを閉じる|x|
|閉じたタブを復元する|X (shift + x)|

### 少し説明
一度に全部は使いこなせないのでよく使うものにコメントをつけておく。

- `j`,`k`
    - これが最初に感動する。これらのおかげで、もうマウスに手を伸ばしたり、トラックパッドで指を上下に単振動させなくて良い。
    - 押し続ければページが存在する限り永遠にスクロールすることができる。（実際は後述の`d,u`を使う）

- `yy`
    - こいつも素晴らしい。`cmd+l`, `cmd+c`? ４つ分もキー押してる場合じゃない。右の人差し指をちょっと伸ばして２回押せ。見た目は変わらずともコピーできてる。
- `d`,`u`
    - `j,k`に慣れて『動きがおせー』と感じ出したら次のステップだ。`d`が`j`の、`u`が`k`の加速版だ。これが一番使う。死ぬほど使う。
- `H`,`L`
    - 『ググりすぎてタブが大量だ。』そんなことが毎日起こるのは僕だけですか？
    - タブの移動もキーで行う。
    - 左の小指と併用して`shift`を押しながら`h,l`を押すだけだ。
- `i`
    -  これは最高。**クリックするのに、まだマウスを使ってるの？**
    -  `i`を押すとリンクの候補にアルファベットを添えて表示してくれるので、クリックしたいアルファベットのキーを押せば、リンク先に飛べる
    -  スクロールとこれのためだけに今すぐ`vimium`を入れて欲しい。

### 使ってる感じ!

![i.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/285307/f5b7d6d7-f0aa-b87a-cb18-62085c87986d.gif)



## 別ウィンドウの行き来はできないの？
僕は毎日使ってる。マルチディスプレイにしてそれぞれの画面にchromeを出していると切り替えたいけど、`cmd + tab`はアプリのみでウィンドウまでは切り替えができない。。。。。

vimiumでは(おそらく)できない。　Macの設定でできる。
`左上のりんごマーク` →　`システム環境設定` → `キーボード` → `ショートカット` → `キーボード`　→　`『次のウィンドウを操作対象にする』にチェック`
これで完了。チェックを入れていれば、`option + tab`でウィンドウの切り替えをできる。

## VScode
これも`vim`関係のプラグインを入れる。
vimは最高だ。(VScodeの前はMacVimを使ってた。~~使いこなせてはいない~~)
プラグインのところに『vim』って打って一番上の人気のあるやつ入れれば良さそう。
キーの整理をする
vimには３つのモードがある。

- 『Normal』入力できない。カーソルを移動させたり、コピーするためのモード
- 『Insert』入力するためのモード
- 『Visual』使いこなせてないモード


**escapeを押して、入力モードをキャンセル(Normalモードに)してから各コマンドを押そう**

|操作|キー|
|---|---|
|一行コピー|yy|
|一行切り取り|dd|
|コピーや切り取りしたものを一行下に貼り付け|p|
|行末へ移動|A (shift + a)|
|行頭へ移動|I ( shift + i )|
|一行下へ移動して入力モードへ|o|
|一行上へ移動して入力モードへ|O (shift + o)|
|一行上へ移動|k|
|一行下へ移動|j|
|左へ移動|h|
|右へ移動|l|
|一番上へ|gg|
|一番下へ|G (shift + g)|

### 少し解説
個人的によく使うキーは`o`,`O`,`A`,`I`だ。
使いすぎて、使わないときの普通がわからないけど是非gifで見て感じて欲しい

### `o`,`O`の使用例
普通の場合は、カーソルを行末に持っていくのかな？
![o.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/285307/17833578-0b74-e17f-5515-be0caf1a05e8.gif)



### `A`,`I`の使用例
普通の場合は、ボタンを連打してカーソルを行頭や行末に持っていくのかな？
![a.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/285307/efd1e7f5-ad51-a6f0-5d6c-b9fc94915f3d.gif)

## 編集は便利だけどサイドバーとかターミナルとかはカーソルでしょ？？
キーボードから手を離したら死ぬと思って毎日業務に励んでるので、回避してる



下４つはプラグインをいれてなくても、自分で設定することができる。
詳しくは僕が参考にして、感動した[こちらの記事](https://qiita.com/m1ul24/items/c0a53885b893f121082f)をご覧になってください。

|操作|キー|
|---|---|
|サイドバーの開閉|cmd + b|
|画面の分割|cmd + @|
|エディタ →　サイドバー|ctl(control) + h|
|サイドバー　→　エディタ |ctl + l |
|エディタ　→　ターミナル|ctl + j|
|ターミナル　→　エディタ |ctl + k|
特に**エディタとターミナルの切り替え**は多様してる。
エディタとサイドバーの切り替えはコミットメッセージからエディタへの戻り方がわからず、あまり使えてない。
ご存知の方、ご教授ください。


# Notion
今の会社に入社してから存在を知ったnotion。文章をまとめるのに便利なので、個人用のアカウントで、自分の学習した内容を整理したり、業務中、議事録を使うのに使っている。
アプリとchrome用があるが、個人的に上記の`vimium`を使えるのでchromeで使ってる。

|操作|キー|
|---|---|
|見出し１|cmd + option + 1|
|見出し２|cmd + option + 2|
|見出し３|cmd + option + 3|
|チェックリスト|cmd + option + 4|
|番号なしリスト|cmd + option + 5|
|番号ありリスト|cmd + option + 6|
|コード貼り付け|cmd + option + 8|
|ページの貼り付け|cmd + option + 9|


これを知るまでは

- その行を（死にそうな顔をしながら）カーソルで選択して
- 右クリック
- オプションの選択

ってやってたけど
これを知ってからはるんるん気分で毎日を過ごせてる。
ちなみに**行の選択**は`cmd + a`でできる。
もう一度`cmd + a`で**ページ内全選択**

選択した状態で`cmd + k`でリンクも貼れる。

# Slack
多分、エンジニアのほとんどが使っているであろうツール。
それでも最後に持ってきたのは僕がショートカットを使いこなせていないから。
ググってみてもなかなか見つけきらない。
そもそも個人で**カスタマイズがまだできない**らしいので今後のアップデートに期待。

一応あるのはある。

|操作|キー|
|---|---|
|ワークスペースの選択|cmd + 表示される番号|
|検索する|cmd + k|
|チャンネルのスクロール（上）|fn + ↑|
|チャンネルのスクロール（下）|fn + ↓|

vimiumを使ってる僕らなら『`k`で上にスクロールできてくれー』って気持ちが強いんだけどそれはできない。
代わりに`fn + ↑`があるけど、僕、HHKBのUS配列を使ってるんです。(~~転職決まってからイキって買った~~最高！！もはや安い！)
使ってる方はわかると思いますが**↑を表現するのに`fn`を使ってる**んです。つまり同時押しが無理。あああああ............

そんな感じでslackは使いこなせてない。

## まとめ
毎日使ってるショートカットたちを整理しました。
みんな[vimium](https://chrome.google.com/webstore/detail/vimium/dbepggeogbaibhgnhhndojpepiihcmeb)は入れような！


他にもたくさんのショートカットが存在するので、少しずつ加筆・修正していきたいです。
便利なショートカットをご存知の方はご教授いただけますと幸いです。

ショートカットだけでなく、言語も使いこなせるように毎日プログラミングするぞ！！！！
次は言語に対する記事も書きたいな


## 参考記事
[キーボードから手を離さずに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/)
[【VSCode】エディタ、サイドバー、ターミナル間のフォーカスのショートカットを設定する](https://qiita.com/m1ul24/items/c0a53885b893f121082f)
[Markdown記法 チートシート](https://qiita.com/Qiita/items/c686397e4a0f4f11683d#strikethrough---%E6%89%93%E3%81%A1%E6%B6%88%E3%81%97%E7%B7%9A)