Atom Flight Manual（Atom Editorのチュートリアル）をざっと訳してみるテストw(3)

## [訳注] この文章について

本文章はAtom Flight Manual ( http://flight-manual.atom.io/ ) の日本語抄訳です。
配布条件はCC SA BY で、Atom Flight Manualに準じます。
全てを翻訳するつもりはなくて、最初から、できるところまでを対象にしたいと思っています。
Atom Flight Manual自体はAsciiDocという形式で管理されており、これらの成果物はGitHubで公開されてはいますが日本の皆さんの便宜を図るためその土台である日本語文章翻訳に集中し、まずはMarkDownでフライトマニュアルを提供したいと思います。

この翻訳はきむりん(@kimrin)が暫定的にゲリラ的に訳した文章で、
将来より良い形でAtom Flight Manualに取り込まれることを望んでいます。

かなり意訳が入っていますが、どうぞよろしくお願い致します。

## Atomの基礎

さて`Atom`をシステムにインストールしたら使ってみましょう。
設定をしてエディターに慣れて行きましょう。

`Atom`を最初に起動した時、こんな画面が出てきます。
![first-launch.png](https://qiita-image-store.s3.amazonaws.com/0/61379/6d733784-1c9b-08f3-b569-adc937c8dd00.png  "図1: Atomエディターのウェルカムスクリーン")
図1: Atomエディターのウェルカムスクリーン

### 専門用語の基礎

まずはじめに、このマニュアルで使用していくであろう幾つかの専門用語について説明します。

#### バッファ(Buffer)

> バッファとは`Atom`においてはファイルのテキスト記述内容のことです。それは基本的にはほとんどの
> 文章においてファイルと同義ですが、ここでは`Atom`がメモリーに保持しているものを指します。
> 具体的に言えば、たとえバッファのテキストを編集しても、それをセーブしなければそれを保持するファイル
> には書き出されないということです。

#### ペーン(Pane)

> ペーンとは`Atom`エディタのビジュアル的な一部分のことを言います。今起動したウェルカムスクリーンで言えば、
> 4つのペーンがあります-タブバー、グッター（gutter:行番号が入るところ）、一番下にステータスバー、そしてテキストエディターです。

### コマンドパレット

ウェルカムスクリーンを開いているところで、私たちは`Atom`エディターにおいておそらく一番重要なコマンド「コマンドパレット」を紹介します。
`cmd-shift-P`をエディターペーンにフォーカスが当たっている状態で押下すると、コマンドパレットがポップアップします。

<table>
  <tr>
    <th>注意書き</th>
    <td>この本を通して私たちはcmd-Shift-Pのようなキーバインディングショートカットをどのようにしてコマンドを起動かを記述するために用います。<p>
この記述はMac版Atomでのデフォルトのキーバインディングになります。それらはあなたのプラットフォームにより少し違うかもしれません。<p>

もし何らかの理由によりキーバインディングが正しく動作しなかった場合は、コマンドパレットで正しいキーバインディングを探せます。
</td>
  </tr>
</table>

このサーチ形式のメニューは`Atom`において実行可能なすべてのメジャーなタスクを実行することができます。アプリケーションのメニューをあれでもないこれでもないと突き回す代わりに、`cmd-Shift-P`と打ってコマンドを探せばいいのです。

![command-palette.png](https://qiita-image-store.s3.amazonaws.com/0/61379/96851ae0-a1fe-fefd-b62a-96cf5c582d92.png "図2：コマンドパレット")
図2：コマンドパレット

数千に及ぶ実行可能なコマンドの中から素早く探し出せるだけでなく、もしそのコマンドに関連付けられたキーバインディングがある場合はそれも分かるようになっています。それがなぜ素晴らしいかというと、興味ある事柄のやり方を（コマンドパレットに）指示すれば一緒にショートカットキーの操作も学習できるからです。

この本では以降、コマンドパレットにおいてサーチするテキストを明文化するのと一緒にそれぞれ異なるコマンド群のキーバインディングについても明文化することにします。

### 設定とプリファレンス

`Atom`エディタは設定画面に変更可能な幾つかの設定とプリファレンスを表示します。
![settings.png](https://qiita-image-store.s3.amazonaws.com/0/61379/90d726cf-ea29-95f3-9a4b-dc7737d2e8d8.png "図3: Atomの設定画面")
図3: Atomの設定画面

この画面にはカラースキームやテーマの変更、改行の扱いをどうするか、フォント設定、タブ長、スクロールスピードなどなどのたくさんの設定があります。後述するAtomパッケージでも触れるように設定画面では新しいパッケージやテーマをインストールすることもできます。

設定画面を開くには、メニューバーの`Atom` > `Preferences` を開きます。コマンドパレットで`settings-view:open`を探すか、`cmd-,`キーバインディングでも開くことができます。

#### カラーテーマの変更

この設定ビューでは`Atom`のカラーテーマを変更することもできます。`Atom`には次の4つの異なるUIカラーテーマ、`Atom`テーマと`One`テーマの暗いバージョン(dark)と明るいバージョン(light)、そして8つの構文カラーテーマが付属してきます。設定ビューのサイドバーメニュー`Themes`をクリックすることでアクティブなテーマを変更したり、新しいテーマをインストールすることができます。

![theme.png](https://qiita-image-store.s3.amazonaws.com/0/61379/5e4985f8-47fa-01b6-0546-9f52d77f3de5.png "図4: 設定からテーマを変更")
図4: 設定からテーマを変更

UIテーマがタブ（訳注：ペーンのタブ）やツリービューなどのUIエレメントの色を変更するのに対し、構文テーマはあなたがエディター画面にロードしたテキストの構文ハイライトを変更します。テーマを変更するにはドロップメニューでテーマを選択するだけです。

もし何か違うテーマが欲しい時は`Atom.io`に行けばたくさんのテーマがあります。テーマのカスタマイズは`スタイル変更`のところで触れますし、あなたのテーマを作るやり方は`テーマを作る`のところで触れます。

#### 自動改行

空白の設定や改行のプレファレンスを設定ビューから変更することができます。
![settings-wrap.png](https://qiita-image-store.s3.amazonaws.com/0/61379/f39e7cd2-5004-7eb0-bfbb-1653c8cfb639.png "図5： タブと改行の設定変更")
図5： タブと改行の設定変更（訳注：オリジナルがキャプションを使いまわしているのでここに図4と同じ文章が入っている）

`"Soft Tabs"`機能はタブキーを押下した時に実際のタブ文字を入力する代わりに幾つかの空白文字を入れます。そして`"Tab Length"`には`"Soft Tabs"`が有効になっているときはタブキー押下時にタブ文字の代わりに入れる空白文字の個数を、そして`"Soft Tabs"`が無効になっているときはタブ文字を何文字の空白記号で表示するかを指定します。

`"Soft Wrap"`はあなたのカレントウィンドウには収まらないようなとても長い行について自動改行します。自動改行が無効になっている場合、とても長い行は横にずっと続き、残りの内容を見るためにはスクロールしなければならないかもしれません。`"Soft Wrap At Preferred Line Length"`が有効になっている場合、スクリーンの右端ではなく80文字で改行します。80文字以外のデフォルトの改行までの行長もこの画面で変更できます。

`カスタマイズの基礎`では異なるタイプのファイルにおいて異なる改行のプリファレンスを指定する方法について触れています（例えばMarkdownでは改行してほしいがソースコードでは改行してほしくないなど）。

#### ベータ機能

`Atom`エディターは開発中であるため、たまにすべての人に解放される前にテストをしている新しい機能というものがあります。幾つかのケースにおいてはそれらの設定はデフォルトでは無効になっているもののそれらを試してみたい場合において設定ビューから有効化することが可能です。

![advanced-settings.png](https://qiita-image-store.s3.amazonaws.com/0/61379/34b191aa-7e9c-a8ba-d684-1d2a218def26.png "図6: 設定ビュー内のベータ機能設定")
図6: 設定ビュー内のベータ機能設定

この機能は広範囲に新しい機能がリリースされる前に開発者の開発しているパッケージがちゃんと動いているかどうかを確認することができるため主にパッケージ開発者にとっては便利な機能です。
しかしながら、間も無くどんな機能がリリースされるのかをあなたがチェックしたい時にも役立ちます。

### ファイルを開く、変更する、セーブする

これであなたのエディターは望みの見た目と動作になったので、ファイルを開いて編集してみましょう。何せ`Atom`はテキストエディターって言うくらいですしね、でしょう？（訳注：ここジョークなのだがうまい訳が見つからなかったw）

#### ファイルを開く

`Atom`でファイルを開くやり方は幾つかあります。メニューバーから `"File" >> "Open"`を選ぶか、`cmd-O`を押下することで、システムダイアログからファイルを選択することができます。

![open-file.png](https://qiita-image-store.s3.amazonaws.com/0/61379/d390a34b-1457-8b3a-aab4-b76822cbbaf8.png "図7: ダイアログからファイルを開く")
図7: ダイアログからファイルを開く

この機能はファイルがあなたのいるプロジェクト内（次のところで触れる）にないときや新しいウィンドウから何かの理由で編集を始めるときに便利です。

もう一つの`Atom`でのファイルの開き方は`atom`コマンドを使ってコマンドラインから開くやり方です。もし`Mac`版`Atom`なら、`atom`コマンドや`apm`コマンドを *インストールできなかった場合* `Atom` >> `"Install Shell Commands"` でインストールできます。`Windows`と`Linux`では`Atom`エディターのインストール手順において`atom`コマンドと`apm`コマンドは自動的にインストールされます。

`atom`コマンドを一つ以上のファイルパスと一緒に叩けば`Atom`エディターでそれらのファイルを開けます。

```
$ atom -h
Atom Editor v0.152.0

Usage: atom [options] [path ...]

One or more paths to files or folders may be specified. If there is an
existing Atom window that contains all of the given folders, the paths
will be opened in that window. Otherwise, they will be opened in a new
window.

...
```

このコマンドはあなたが端末を使っているときや端末からエディターを開きたい場合において素晴らしいツールとなるでしょう。`atom [files]`と打つだけであなたはファイル編集を開始できます。

#### ファイルの編集とセーブ

ファイルの編集は極めて直感的です。マウスでクリックしたりスクロールして、内容を変更するためにキーをタイプすればいいのです。特定のキーコマンドや特殊な編集モードなどはありません。

ファイルをセーブするには、メニューバーの`"File" >> "Save"`を選ぶか、`cmd-S` でセーブできます。もし`"File" >> "Save As"`を選ぶか`cmd-shift-S`を押下すれば、違うファイル名のファイルに編集している内容をセーブできます。そして最後に、`cmd-alt-S`で`Atom`で開いているすべてのファイルをいっぺんに保存できます。

### ディレクトリを開く

`Atom`は一つ一つのファイルだけを編集できるわけではありません。あなたは複数のファイルからなる複数のプロジェクトの中で作業をするでしょう。ディレクトリを開くには、`OS X`ではメニューバーで`"File" >> "Open"`を選択するか、他のプラットフォームでは`"File" >> "Open Folder"`を選択し、ダイアログからディレクトリを選択します。`"File" >> "Add Project Folder..."`メニューを選択するか`cmd-shift-O`を押下することであなたの使っている`Atom`ウィンドウに複数のディレクトリを追加することができます。

`atom`コマンドに複数のディレクトリのファイルパスを渡すことでも複数のディレクトリを開くことができます。例えば`atom ./hopes ./dreams`とコマンドラインで打てば`hopes`ディレクトリと`dreams`ディレクトリの両方を同時に開くことができます。

一つ以上のディレクトリを開いたときにウィンドウの左側にツリービューが出ます。

![project-view.png](https://qiita-image-store.s3.amazonaws.com/0/61379/1cc300e9-1999-751f-399b-30e7d958bce7.png "図8: 開いたプロジェクトとツリービュー")
図8: 開いたプロジェクトとツリービュー

ツリービューであなたのプロジェクトに属するファイルやディレクトリ構造を辿ったり編集したりができます。このビューからファイルを開いたり名前を変更したり、削除したり、新しいファイルを作ったりできます。

ツリービューの表示・非表示は`cmd-\`かコマンドパレット内で`tree-view:toggle`でトグルでき、`ctrl-0`でフォーカスを当てることができます。ツリービューにフォーカスが当たっている状態で`a`,`m`,`delete`を押下することでファイルやフォルダーを追加、移動、削除できます。あるいはシンプルにツリービュー内でファイルやフォルダーを右クリックすることでたくさんの様々なオプション、つまり今まで述べてきたものに加えネイティブのファイルシステムでファイルを表示したりシステムクリップボードにファイルパスをコピーしたりすることができます。

<table>
  <tr>
    <th>注意書き</th>
    <td>Atomモジュール<p>

Atomのたくさんの部分のように、ツリービューもまたエディターと一緒にビルドされているのではなく、単にデフォルトでAtomに付属しているスタンドアローンのパッケージなのです。<p>

ツリービューのソースコードは次のURLから取得できます：<a href="https://github.com/atom/tree-view">https://github.com/atom/tree-view</a><p>

これは`Atom`エディターの興味深い事柄のうちの一つです。たくさんのコア機能はあなたがそれ以外の機能を実装するのと同じように実際はただのパッケージとして実装されています。それは例えばツリービューが気に入らない場合はあなたがその機能の代替機能を実装してツリービュー全体を入れ替えることすらできることを意味します。
</td>
  </tr>
</table>

#### プロジェクト内のファイルを開く

一度プロジェクトを`Atom`内で開いてしまえば、あなたは簡単にそのプロジェクト内のあらゆるファイルを探したり開いたりすることができます。

`cmd-T`か`cmd-P`のいずれかを押下すれば、ファジーファインダーダイアログ（訳注：Fuzzy Finder dialog）がポップアップします。パスの一部分をタイプするだけでプロジェクト内のあらゆるディレクトリ内のあらゆるファイルを探し出すことができます。

![finder.png](https://qiita-image-store.s3.amazonaws.com/0/61379/50031927-bc4b-54e1-d55d-6e34c0dd5fb0.png "図9: ファジーファインダー内でファイルを開く")
図9: ファジーファインダー内でファイルを開く

`cmd-B`でプロジェクトのすべてのファイルではなく今開いているファイルだけをサーチの対象にできます。この機能はバッファー群、つまり開かれているファイルだけをサーチします。`cmd-shift-B`はこのファジーサーチをあなたの最新の`Git`コミットから変更された、あるいは新しく作られたファイルだけに制限して実行します。

ファジーファインダーは`core.ugnoredNames`と`fuzzy-finder.ignoredNames`の両方の設定を使いファイルをフィルターして除外し、それらの除外したファイルを見えなくします。もし膨大な量のサーチしたくないファイルがある場合、あなたはファイルパスやパターンをそれらのいずれかの設定に加えることができます。詳しくは後述の`グローバル環境設定`で述べますが、あなたはコア設定下の設定ビューで簡単にそれらを設定できるでしょう。

それらの環境設定は`minimatch` `Node.jl`ライブラリとして実装された`glob`パターンとして解釈されます。（訳注：ここうまく訳せなかった）。

`minimatch`について詳しくは  https://github.com/isaacs/minimatch を参照してください。

このパッケージは`core.excludeVcsIgnoredPath`が有効になっていればignoreされたGitファイルを対象から除外します。設定ビュー内で簡単にトグルでき、それはトップの（訳注：よく使う）オプションのうちの一つです。