🔰Atomを標準コマンドバインディングで使いこなす(for macOS)

Atomの操作を覚えて、作業効率をUPしよう。

覚えた操作を適宜アップデートしていきます。

# 条件
macOSで操作
vimやemacsコマンドバインディングにしない
keybindingsをカスタマイズしないで使う

# 📕メモ

## キーの対応
mac不慣れな人用にWindows,Linuxのキー名もつけときます。

- COMMAND⌘
- SHIFT⇧
- ALT(OPTION)⌥
- CTRL⌃



# 🛣`atom`, `apm`コマンドのパスを通す

Atomを起動して、`Install Shell Commands`
![image.png](https://qiita-image-store.s3.amazonaws.com/0/193814/513b421d-2600-19f6-6613-5332a839b341.png)


# 📖エディタを開くまで

```
atom ~/your/project/dir

# または

cd ~/your/project/dir
atom .
```

# ⚙エディタの設定

`config.cson`をいじる。

# 🔧拡張を追加

一気に環境を整えるなら、Atom Package Managerでインストール。

```
apm install **
```

ひとまず今入れているもの。
整理できている訳ではないです。

```sh
apm install Remote-FTP atom-beautify atom-ide-ui atom-quokka \
atom-spotify2 atom-ternjs busy-signal color-picker docblockr editorconfig \
file-icons highlight-selected ide-css ide-docker ide-flowtype ide-go \
ide-json ide-php ide-typescript intentions language-babel language-docker \
minimap minimap-find-and-replace minimap-git-diff minimap-highlight-selected \
minimap-pigments minimap-split-diff multi-cursor pigments \
platformio-ide-terminal show-invisibles-plus sort-lines \
split-diff teletype
```

# :package:拡張をエクスポート

```
# 単純に一覧をエクスポート
apm list --installed --enabled --bare

# インストールコマンドとしてエクスポート
apm list --installed --enabled --bare | sed -e "s/@.*//" | xargs echo "apm install"

# 1パッケージずつのインストールコマンドとしてエクスポート
apm list --installed --enabled --bare | sed -e "s/@.*//" | xargs -L 1 echo "apm install"
```

gistなどに貼り付けておけば環境再構築が楽に。

# ⌨️操作

## 🎨コマンドを検索するコマンドパレット機能

出来る操作を調べたり、ショートカットを忘れた時はコレ。
真っ先に覚えるべきショートカットです。
`SHIFT⇧`+`⌘`+`P`

多数あるショートカットを覚えてなくても機能の名前をある程度覚えていれば何とかなる。
例えば・・・

|やりたいこと| コマンド検索にタイプする文字 |
| --- | --- |
|プロジェクトを履歴から開く|open project|
| パッケージ追加| install package | 
|ショートカット一覧表示| show key |
|エディタを分割して右に移動 | split right move|
|左右エディタでdiff ON/OFF<br/>※`split-diff`パッケージが必要| diff toggle|
|開いているエディタを全部閉じる | close all tabs |
というように、かなり直感的。

コマンド名は以下の形式になっていて、
`{機能名称}: {コマンド名}`

新しくインストールした`{パッケージの名称}: {コマンド名}` というのもどんどん追加されるので、パッケージをインストールしたら、まずはREADMEを見て、ショートカットとコマンドを確認しましょう。

## 🖋編集機能

### 一般操作

|やりたいこと|やりかた|
| --- | --- |
| 行の先頭にカーソルを移動(検索枠でも有効) | `CTRL⌃`+`a` <br/> `⌘`+`←`|
| 行の末尾にカーソルを移動(検索枠でも有効) | `CTRL⌃`+`e` <br/> `⌘`+`→`|
| コードの先頭行に移動 | `⌘`+`↑` |
| コードの末尾行に移動 | `⌘`+`↓` |
| 単語単位で左に移動 | `ALT⌥`+`←`|
| 単語単位で右に移動 | `ALT⌥`+`→`|
| バックスラッシュ`\`の入力 | `ALT⌥`+`¥`|


### マルチカーソル

`multi-cursor`パッケージがインストール済みを想定しています。

| やりたいこと | やりかた|
| --- | --- |
| 同じ部分にカーソルを複製 | 範囲選択状態で`⌘`+`D`を押す毎に、選択している文字と同じものを選択状態にする | 
| 上の行にカーソルを複製する | `ALT⌥`+`↑` |
| 下の行にカーソルを複製する | `ALT⌥`+`↓` |

## 🔎ソースコード内の検索

| やりたいこと | やりかた|
| --- | --- |
| 目的のファイルを開く|`⌘`+`P`でファイル名(の一部)を入力|
| ある行数までジャンプ | `CTRL⌃`+`G`でソースコード行数を入力 |
| キーワード検索(ファイル) |`⌘`+`F`でキーワード検索|
| キーワード検索(プロジェクト) | `SHIFT⇧`+`⌘`+`F`でキーワード検索 |
| 変数・関数の一覧から宣言に飛ぶ | `⌘`+`R`でリストから選択|


### 🕵️‍検索機能補足
- case-sensitiveの切り替え有り
- 正規表現対応 (置換は `$1`,`$2`で参照)
- 単語全体一致オプション有り

## :open_file_folder:Tree View Pane

コマンドを忘れてしまったら、コマンドパレットに`tree view`と入力。

|やりたいこと|やりかた|
| --- | --- |
|tree viewをアクティブにする|`CTRL⌃`+`0`|
|tree viewを表示/非表示切替|`ALT⌥`+`⌘`+`¥`|
|(tree viewアクティブのとき) ファイルの追加 | `a` |
|(tree viewアクティブのとき) ディレクトリの追加 | `SHIFT⇧`+`a` |

# :beginner:更に良いやり方があれば教えて下さい
よく使う、便利、作業効率化できるものがあればコメントや編集リクエストで教えていただけると喜びます。