エンジニア以外にも使える効率化備忘録【1秒を節約する】

この記事は、「RUNTEQアドベントカレンダー2019」の記事です。
※ 2021年7月から更新してます。


## はじめに

「これ、便利だなぁ」と思ったものをまとめます。
一つでも、「あ、これ知らなかったわ、使お」と思ってもらえれば幸いです。
Mac自体の設定から、ショートカットの設定、ツールの紹介などがメインです。

## Mac編
まずはMac編。流石に知ってる人も多いと思いますが、一応。

### ショートカット

自分がまとめるよりこの記事の方が細かくまとめられているので割愛。
[Macで開発するなら抑えておくべきショートカットキーまとめ]
(https://qiita.com/ryuichi1208/items/95b835b63c31d39c7629)

特に、下記のコントロールを使ったショートカットはマジでよく使うので、全て覚えましょう。
(Vimの方が使いやすいという意見が飛んできそうですが。笑)

| コマンド | 概要 |
|:--|:--|
| control + A | 行または段落の先頭に移動 |
| control + E | 行または段落の末尾に移動 |
| control + F | 1文字分進む |
| control + B | 1文字分戻る |
| control + P | 1 行上に移動 |
| control + N | 1 行下に移動 |
| control + D | カーソル右側の文字を削除 |
| control + H | カーソル左側の文字を削除 |
| control + K | カーソル右側の文字から行末／段落末まで削除 |

⌘系のショートカットも結構使いますが、[CheetSheet](https://cheatsheet-mac.en.softonic.com/mac)を使えば、
<a href="https://gyazo.com/8e5050503a5fc47b31b473469f0e09d9"><img src="https://i.gyazo.com/8e5050503a5fc47b31b473469f0e09d9.png" alt="Image from Gyazo" width="1232"/></a>
こんな感じで ⌘ を長押しすることで出来るコマンドがカンニング出来るので、ダウンロードしてあげましょう。

カンニングしてるうちによく使うショートカットは自ずと覚えられます。
特に文字削除や移動はCtrlキーでしたほうがいいですね

Macのショートカットについてはネットに山程転がってるので、これやりたいなと思ったらぐぐるといいです。


### Chrome拡張

・Adblock
・1password
・Vimium
・Onetab
・ato-ichinen
・Octtree
・Keepa

## Alfred
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/342078/e7ffefab-9c8b-2073-c115-81baed022b5e.png)


Macに入れるべきアプリで真っ先に出るのが Alfred じゃないでしょうか？
詳しくはこの記事が参考になります。
[Alfredを使いこなせてない君に！【Alfredの使い方完全版】](https://qiita.com/jackchuka/items/ccd3f66f6dd00481b98b)


### Alfredを使うと、Mac内で検索が早くなる
簡単に言うなら、上記記事を引用しますが、

「Macに標準でついているSpotlightのようなランチャーアプリだけどかっこいいやつ」です。

例えば、何か調べ物したい時に、こんな感じで「グーグルをわざわざ開き、検索している」って人は、絶対に入れた方が良いです。
<a href="https://gyazo.com/025e6bc87351da1538e99adc8ecac75a"><img src="https://i.gyazo.com/025e6bc87351da1538e99adc8ecac75a.gif" alt="Image from Gyazo" width="1000"/></a>

Alfredを入れれば、こんな風になります。
<a href="https://gyazo.com/f0bd9ac8f9525ae2adeddcd9aa669ab0"><img src="https://i.gyazo.com/f0bd9ac8f9525ae2adeddcd9aa669ab0.gif" alt="Image from Gyazo" width="1000"/></a>
つまり、
```グーグルを開く → キーワードを入れる → enter
キーワードを入れる → enter
```
になります。数秒節約できる。神です。
たったの数秒の節約ですが、この数秒を、ググる時今後ずっと節約できるので、入れない理由がないです。

正しくは、Alfredを呼び出すコマンドを設定する必要があります。

私の場合は、```⌘を2回``` 押すとAlfredが呼び出されるように設定してあります。

ブクマも検索できるし、神です。

## clipy
[clipy](https://clipy-app.com/)
コピペが捗るツールです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/342078/abb6dc3a-47b2-2161-4059-309e9426e0f5.png)

コピー&ペーストを繰り返して作業するときに、コピーのページまで戻って、またペーストしてって作業あったりしますよね。
そういうときにコピーした履歴を複数メモリ上に保持して、ペーストすることができる代物です。

イメージとしてはこんな感じです。
<a href="https://gyazo.com/c785564d70fa0d4c083ef9a60ce0b5c9"><img src="https://i.gyazo.com/c785564d70fa0d4c083ef9a60ce0b5c9.gif" alt="Image from Gyazo" width="1000"/></a>

一旦たくさんコピーしたりも出来ますし、よく使う定型文を登録したり出来ます。
2つ以上コピーしたくなることは多々あると思いますので、こちらも活用しましょう！

私は、よく使うので `optionキー` をダブルクリックすることでclipyを呼び出せるようにしています。前述したAlfredと組み合わせると効果バツグンです◎

※自分はAlfredのpowerpack(8000円買い切り)なので、履歴もAlfredから検索してます。

### Mac編おまけ(これを1番紹介したい)
他にも、紹介したい効率化ツールがたくさんありますが、上記2つを強くおすすめしたいので長めに紹介しました。他に使ってるものもざっと紹介します。

#### BetterTouchTool
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/342078/5b1f373f-d9ab-6a8f-65a4-edcca6e317b2.png)

[BetterTouchTool](https://folivora.ai/downloads/)

マジで神ツールです(有料で買い切り360円)。ここで問題です。

「クローム等を使っている時に
タブからタブへ移動するには、どのショートカットを押せばいいでしょうか？」

正解は、
```右のタブへ移動 = Control + タブ キー ```
```左のタブへ移動 = Control + shift + タブキー``` 
同時押しです。実際に押すと分かりますが、特に左のタブへ移動するのって片手だと超絶やりにくいです。

どうでしょうか？やりにくくないでしょうか？

前置きが長くなりましたがそんな時に便利なのが、BTTです。
説明のために長文になってしまったので、興味ない人は飛ばしてOKです。

#### タブ間移動がトラックパッドで可能になる

一見、「えっ？」それ必要？と思った方もいるかもしれません。
ただ、下記の③に該当するなら、もう少し読んでみてください。

① タブをクロームで開く数を自身で制限しており、```⌘ + 数字(1~9) ```で管理している人
② Vim等を使ってタブを開く設定をしている(出来るかはVimmerではないので分かりませんが、Vimium(クローム拡張)使えばできそう
③ タブ間移動を、手動でしている人

##### タブをクロームで開く数を自身で制限しており、```⌘ + 数字(1~9) ```で管理している人
1に関しては、タブ毎に場所を固定し、9つしか開かないみたいな人です。
下記gifでいうなら、
```⌘ + 1を押すとgithubへ``` 
```⌘ + 2ならメール、3ならgoogle```
```⌘ + 9を押すと conpassへ``` 
<a href="https://gyazo.com/293648433eb14d7c8ca76601969c83a1"><img src="https://i.gyazo.com/293648433eb14d7c8ca76601969c83a1.gif" alt="Image from Gyazo" width="958"/></a>
タブが9個以上あると、管理できなくなります(数字キーが9までしかないから)が、固定した場所にタブを置いているならこの使い方はgoodだと思います。

##### タブ間移動を、手動でしている人
私が伝えたいのは、上記の人です。
タブ間移動を、手動でしている人です。マウスを注目してほしいんですが、
<a href="https://gyazo.com/87d2d04613bd082745abfe5247162dcd"><img src="https://i.gyazo.com/87d2d04613bd082745abfe5247162dcd.gif" alt="Image from Gyazo" width="1000"/></a>
```タブまでカーソルをあわせて、左へ移動する```
というこの作業、無駄じゃないですか？？？
右へ移動するのは、まぁ100歩譲って ``` Control +  タブキー``` で移動するとしても、左の場合、
`Control + shift + タブキー`で移動するはめになります。カーソルをあわせる2秒、左へ移動するために`Control + shift + タブキー`を押す2秒、どちらも無駄ァ！ですね。
##### トラックパッドをハックせよ

そこで役に立つのが、BTTです。簡単に言うなら

`「ショートカットを全てトラックパッドやタッチバーに設定出来る」`という代物です。

見てもらったほうが早いので、私の設定を紹介します。トラックパッド上での話です。

| 指二本で左にタップ | ctrl + shift + tab | 左にタブ移動 |
|:--|:--|:--|
| 指二本で右にタップ | ctrl + tab | 右にタブ移動 |
| 三本指でクリック | shift + ⌘ + T | 閉じたタブを復活 |


トラックパッドで、タブ間移動や、閉じたタブを復活させたり、何でも設定できるというわけです。左のタブに移動するために毎回マウスを移動させていてストレスを感じていた私は、これを知って感動しました。

先程の設定は抜粋ですが、エンジニアなら毎日使うであろう
`⌘ + option i `を、トラックパッドに任意の設定(クリックorタップ / トラックパッドのどこに設定するか / 何本指で設定すか)が出来たりします。両手を使わないと打てないショートカットを設定するのがおすすめです！

なんでもかんでも設定すると記憶するのが難しくなります。笑
かなりカスタマイズ出来るので楽しいですが、慣れるまでは苦労すると思います。

※ タッチバーがついているMacを使っている人は、幅がめっちゃ広がるので特におすすめ

### 他によく使う効率化ツール for Mac

#### evernote 
スマホで見れるから結局こいつが便利。URL貼り付けがめんどいのがたまにきず。
#### toggl
時間図れるから可視化できて良き。特に駆け出しエンジニアは勉強時間メモるとモチベ↑なのでおすすめ。

#### Dash
clipyに若干似ているが、指定のコマンドで文字をよそく変換するやつ。
たとえば、自分の場合は 「;R」と押すと「RSpec」に変換されるように設定したりしています。「;」を始動にするのが他とかぶらなくなるのでおすすめです。

さきほどalfredとの応用で、

`⌘2回`でalfredを、`;r`で「RSpec」を予測変換、ブックマークしたRSpecの記事を変換に出すというgif
[![Image from Gyazo](https://i.gyazo.com/828297edc79f3a7046fd375fb4f539c7.gif)](https://gyazo.com/828297edc79f3a7046fd375fb4f539c7)

## プログラミング編

### tig

コミットを細かく出来るやつ。
レビューに対して、まとめてコミットせず、レビュー毎にコミットするとレビューする人の負担が減る。
`u`でaddして、`shift + c`でコミットしたり出来る。色々使い方があるが、下記記事参照。
[超便利！！Gitが使いやすくなるTigを使いましょう！！](http://one-way.tech/programing/tigtigtig/)

### iterm

ターミナルをかぶせて使える。透かせて使うと超便利。画面を移動させずにターミナルをちょこちょこ開けるので、あるのとないのでは雲泥の差です。

↓ itermひらいてtigで1個ずつコミットしてるgif。背景のコードが半透明で見ながら出来ますね！
[![Image from Gyazo](https://i.gyazo.com/b5753a86f7ffd0fd99d7552649f657c6.gif)](https://gyazo.com/b5753a86f7ffd0fd99d7552649f657c6)

### alias

よく使うコマンドは絶対aliasに入れましょう。git関係や、rails関係などいれると捗ります。

`alias bi='bundle install --path vendor/bundle --jobs=4'
alias vbgi='echo "/vendor/bundle" >> .gitignore'
alias be='bundle exec'
alias r='rails'
alias g='git'
alias ga='git add'
alias gs='git status'
alias gp='git push'
alias gb='git branch'
alias gco='git checkout'
alias gc='git commit -m'
alias gm='git merge'
alias gf='git fetch'
alias gd='git diff'
alias gl='git log'
alias glo='git log --oneline'
alias gr='git reset'
alias gfs='git flow feature start'
alias gfp='git flow feature publish'
alias bers='bundle exec rails server'
alias m='mkdir'
alias ts='tig status'
alias hi='history'
alias msr='mysql.server start'
alias ..='cd ..'
alias ber='bundle exec rspec'
`
あたりを私は登録しています。
詳しくはこちらが参考になりそうです。
[世の中のエンジニアのalias設定](https://qiita.com/reireias/items/d906ab086c3bc4c22147)

※ 最近fishに変えて補完が聞くのでほぼalias使ってないです

### ブランチ名表示

現在の作業スペースを表示出来ます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/342078/6812df73-b944-3869-2088-938cdf7fa1d2.png)

色をつけると尚わかりやすいですよね。ブランチ名を表示することで、
「あ、、変更するファイル間違ってた😭」という自体は防げる。bashとzshで設定方法が異なるので要注意です！
[gitのブランチ名をターミナルで表示できるようにする](https://qiita.com/lemtosh469/items/334ff76366e054a3a3aa)

### peco

こういうやつ
https://wayohoo.com/article/5234

### ghq

git管理を同じところでしようってやつ
https://qiita.com/strsk/items/9151cef7e68f0746820d

### Rubymine
みんな大好きRubymine。おすすめプラグインとか書こうと思いましたが、他の方のアドイベントカレンダーが完全上位互換なのでこちら参照。

[RubyMineをさらに便利にするプラグインたち：前編](https://qiita.com/hibiheion/items/01670ac2c508b25f9f15)
[RubyMineをさらに便利にするプラグインたち：後編](https://qiita.com/hibiheion/items/e3000e12de25f4313680)

Railswayとか、もはや無いと生きていけません。

## まとめ

上記の中で知らないものがあれば取り入れると1秒の節約となり、チリツモです。
駆け出しのときから効率化に貪欲になれば、自身が効率化されて捗りますよね！
また追加があれば随時書き足していきます！