Bracketsの機能紹介、使い方解説

**Qiita上の内容を集約し、大幅に修正・加筆したものを本として出版しました。**
→[ブログ：Bracketsの解説書を出版しました](http://www.thinkingsalad.com/technology/textbook_of_brackets)

# Bracketsとは
## Webによる、Webのための次世代エディタ
Brackets自身がHTML・CSS・Javascriptで出来ており、まさに「Webによる、Webのためのエディタ」と言えます。
オープンソースであり、~~アップデートも約2.5週間に1度行われるなどとても活発に開発されています。~~
→Sprintから公式バージョンになり、アップデート間隔が伸びたようです。

## テキストエディタとIDEの中間
デフォルトでライブプレビューを備えていたり、Adobe公式エクステンションによりPSDの読み込みが出来たりとなかなか高機能ですが、IDEほど機能は多くなくまた動作も重くありません。
とてもバランスが良く、シンプルなテキストエディタと高機能なIDEのちょうど良い中間あたりの印象です。


## Adobeサポート
Adobeによりプロジェクトが設立され、GitHubのリポジトリもAdobeにより管理されています。
公式Ver.1.0よりCreative Cloud Extractのエクステンションもサポートし、PSDをから様々な情報が抽出出来るようになり日々進化しています。
（機能紹介→[PSDの読み込み、様々な情報の抽出](#psd%E3%81%AE%E8%AA%AD%E3%81%BF%E8%BE%BC%E3%81%BF%E6%A7%98%E3%80%85%E3%81%AA%E6%83%85%E5%A0%B1%E3%81%AE%E6%8A%BD%E5%87%BA)）


# 機能紹介

## はじめに
BracketsはデフォルトでUTF-8以外の文字コードに対応していないため、Shift_JISを始めとする他の文字コードに対応させるには、[Shizimily Multiencoding for Brackets](https://github.com/Hiromi-Ayase/brackets-shizimily-multiencoding)のエクステンションを追加する必要があります。

## ライブプレビュー（クロスブラウザ対応）
エクステンションを入れなくてもデフォルトでライブプレビューが出来ます。（Chrome必須）
HTML/CSSはファイル保存の必要もなくリアルタイムに、SASS（ターミナルでwatchをかける必要有）/JSはファイル保存時に変更を反映してくれます。
Ver.1.1よりクロスブラウザでのライブプレビューにも対応しました。

![livePreview.gif](https://qiita-image-store.s3.amazonaws.com/0/48404/fdf65cd5-289d-3f20-aa62-5f4bc44c40ab.gif)

<br />

**設定方法**
デバッグ＞環境設定ファイルを開くから設定ファイル（WinでのパスはC:\Users\ユーザー名\AppData\Roaming\Brackets\brackets.json）に`"livedev.multibrowser": true`を追加するだけです。
ライブプレビューを起動するとデフォルトブラウザで開かれるので、そのURLを他ブラウザに入力するだけです。
（残念ながら2014/12/19現在IE11では動作しませんでした。Chrome・Firefox・Operaは確認しています）
![multiBrowser03.png](https://qiita-image-store.s3.amazonaws.com/0/48404/78e2be15-b8ad-81f0-eaf2-11288d866ed7.png)
<br />

## クイックエディット
Bracketsでのクイックエディットは主に4種類あります。
ショートカットは全て**Ctrl+E**で共通で、実行する場所によりそれぞれのクイックエディットが展開します。

* **HTMLのクイックエディット**
id名/class名/HTMLタグ名上で実行すると適用されているスタイルを拾い、その場で編集出来ます。
Sublime TextのプラグインGoTo-CSS-Declarationと違い、予めCSSファイルを開いておく必要がありません。
![quickEdit.gif](https://qiita-image-store.s3.amazonaws.com/0/48404/daaaaabe-4081-c1a2-ecd0-8b64a4c5ad0c.gif)
<br>

* **色指定のクイックエディット**
各種ファイルにおいて、HEX/RGB(A)/HSL(A)にて色指定されている箇所で実行するとカラーパレットが開きます。
パレット内で編集した値はリアルタイムに数値として反映されます。
![quickEdit-color.gif](https://qiita-image-store.s3.amazonaws.com/0/48404/5e646ef7-b91a-e6e3-f44c-c0fb56660e0b.gif)
<br>

*  **CSSアニメーションのクイックエディット**
CSS/LESS/SCSSにおいて、`cubic-bezier()`または`steps()`にてアニメーション定義されている箇所で実行すると、ベジェ曲線による編集画面が開きます。
![quickEdit-easing.gif](https://qiita-image-store.s3.amazonaws.com/0/48404/8ffb2d0a-32ab-bbf2-edfe-3ae56e1f289e.gif)
<br>

* **JavaScript関数のクイックエディット**
JavaScript関数名の箇所で実行すると、その関数の内容を展開します。
![quickEdit-js.gif](https://qiita-image-store.s3.amazonaws.com/0/48404/97b224d7-d6cd-baef-d58e-3c2c33de4dc5.gif)
<br />

## ホバークイックビュー

画像・色指定の2種類のクイックビューがあり、それぞれ指定の箇所にカーソルを置くとポップアップで情報を表示してくれます。
特に画像はホバーだけでwidth/height値を確認できるため、とても便利です。

* **画像のホバークイックビュー**
![hoverQuick.gif](https://qiita-image-store.s3.amazonaws.com/0/48404/9ab30278-7a40-3394-ac92-65d47c9f1169.gif)
<br>

* **色指定のホバークイックビュー**
![hoverQuick-color.gif](https://qiita-image-store.s3.amazonaws.com/0/48404/31b590f7-faa4-a4e9-a9ac-fd2c168ae12c.gif)
<br />

## コードヒント

Bracketsは標準でHTML/CSS/JSのコードヒントを搭載しています。
挙動はそれぞれほぼ同じでテキストを入力した段階でコードヒントが表示され、再表示するにはCtrl+Spaceを押下します。

* **HTMLのコードヒント**
![codehint-html.png](https://qiita-image-store.s3.amazonaws.com/0/48404/fd08c8c4-c25c-db45-95a7-321b5cd23b37.png)
<br><br>

* **CSSのコードヒント**
![codehint-css.png](https://qiita-image-store.s3.amazonaws.com/0/48404/0895ace9-9d5f-52c1-3349-2287d9200c72.png)<br>
Ver.1.2より、色指定時のプレビュー表示が可能に。
![codehint-color.png](https://qiita-image-store.s3.amazonaws.com/0/48404/1301d79e-6de4-5ed8-7b51-5f6640a4e0b3.png)
<br><br>


* **JSのコードヒント**
![codehint-js.png](https://qiita-image-store.s3.amazonaws.com/0/48404/3f4c10c5-f048-87c9-ac74-09139283911d.png)



## PSDの読み込み、様々な情報の抽出
エクステンションではありますが、Ver.1.0からインストーラーに標準追加された誠に素晴らしい機能です。
PSDをBrackets内に直接読み込み、

* 各レイヤーのwidth/height値の取得
* 隣のボックスとの相対的な距離の取得
* 適用されているスタイルをCSSとして取得
* 選択レイヤーをその場で画像としてスライスし、HTML/CSSにそのまま反映

といったことが出来るようになります。
詳細はこちらの記事にて別途解説しています。
→[PSDをテキストエディタで開く時代！次世代ツールExtract for Bracketsの使い方](http://qiita.com/assialiholic/items/d52c10605d821f597036)

![extract-demo.gif](https://qiita-image-store.s3.amazonaws.com/0/48404/0e81f37b-244c-540d-5ee2-05319cae30fd.gif)
<br />

## クイックドキュメント
CSSプロパティ上でCtrl+Kを押下するとドキュメントを表示してくれます。
英語ですが、その場で簡単に概要や値の設定等を確認することが出来ます。
![quickDocument.gif](https://qiita-image-store.s3.amazonaws.com/0/48404/617bf3d7-37d8-332f-cc42-27da79463306.gif)

エクステンションにより、他言語のドキュメントも追加することが出来ます。
例、解説）

* [QuickDocsJS](http://qiita.com/assialiholic/items/c7962f804cdb21a49327#quickdocsjs)
* [QuickDocsPHP](http://qiita.com/assialiholic/items/c7962f804cdb21a49327#quickdocsphp)
<br />

## プロジェクトのルート化
Bracketsで指定したディレクトリは、自動的にプロジェクトルートとなるため、本番環境を想定したパス指定で開発することが出来ます。
![root.png](https://qiita-image-store.s3.amazonaws.com/0/48404/20702ce4-0153-6383-8ff1-a305cf402067.png)

またローカルサーバーにも対応しており、プロジェクト毎にローカルホストURLを入力、ローカルサーバー側にて設定も行うとPHPやSSIも動かす事が出来ます。
（ディレクトリに2バイト文字を使用しないようご注意ください）
![project.png](https://qiita-image-store.s3.amazonaws.com/0/48404/8e2ae562-f49c-1e72-d35f-aefaff1ece8f.png)
<br />

## 複数選択
Sublime Textの代名詞とも言える複数選択ですが、STが流行り始めた頃にBracketsでも追加されました。

* 複数選択→Ctrl+B
* 1つスキップ→Ctrl+Shift+B
* カーソルを追加→Shift+Alt+↑ or ↓
* 任意の箇所にカーソルを追加→Ctrl+左クリック
* 矩形選択→Alt+マウスドラッグ
<br>

* **複数選択**
![multipleSelection.gif](https://qiita-image-store.s3.amazonaws.com/0/48404/64b50cb5-4766-421a-5cd3-12e338f07582.gif)
<br>

* **カーソルを追加**
![addCursor.gif](https://qiita-image-store.s3.amazonaws.com/0/48404/31dccbdc-ea03-45d2-42a6-7292bcfcf70a.gif)
<br>

* **任意の箇所にカーソルを追加**
![addCursor-manual.gif](https://qiita-image-store.s3.amazonaws.com/0/48404/37731bb6-4f9a-6ba8-e353-95f269bb41f8.gif)
<br>

* **矩形選択**
![rectangleSelection.gif](https://qiita-image-store.s3.amazonaws.com/0/48404/fe7cd08e-c44a-24c6-f64e-afdb90e7ca18.gif)
<br>


## 2ペイン表示
Sprint44から2分割表示が出来るようになりました。
残念ながら、デフォルトでSublime Textのように画面間のタブ移動はまだ出来ませんが、[Tabs - Custom Working](http://qiita.com/assialiholic/items/c7962f804cdb21a49327#tabs---custom-working)というエクステンションにより実現可能です。
（そもそも、キャプチャのタブ表示も別エクステンションによるものです）
左右間の入れ替えは、デフォルトではサイドバーからドラッグで行います。
![2pane.png](https://qiita-image-store.s3.amazonaws.com/0/48404/91e1c85a-6c18-ebf2-4596-a9a2936b2bc3.png)
<br />

# おすすめの設定
**編集**

* 自動閉じカッコ

**表示**

* アクティブな行をハイライト
* 行番号
* 折り返し
* 保存時にファイルをLintチェック
* ホバークイックビュー

**デバッグ**

* 環境設定ファイルを開く
 * クロスブラウザ・ライブプレビューの有効化
 * コードヒントの最大数の変更<br />（デフォルトでは50で、あまり多く設定すると動作が重くなります）
 * ドラッグ&ドロップによるテキスト移動の有効化（Ver.1.2より実装）
 ![settings.png](https://qiita-image-store.s3.amazonaws.com/0/48404/92a07bcf-bd5b-5fe5-bc14-827d37c69ab0.png)


<br />

* ユーザーキーマップを開く<br>
こちらのドキュメントの最下部から、Sublime Text風のキーマップ設定をコピペ出来ます。<br>
[GitHub User Key Bindings · adobe/brackets Wiki] (https://github.com/adobe/brackets/wiki/User-Key-Bindings)


# おすすめエクステンション
こちらにて別途紹介しています。
[Brackets おすすめエクステンション集・解説] (http://qiita.com/assialiholic/items/c7962f804cdb21a49327)

# キーボードショートカット
こちらにて別途紹介しています。
[Bracketsショートカット集](http://qiita.com/assialiholic/items/7683d94108b12f1ca3ad)

# ショートカットカスタマイズ方法
こちらにて別途紹介しています。
[Bracketsのショートカットを変更してカスタマイズする方法](http://qiita.com/assialiholic/items/95b1f3502d7c03aed1be)

# 参考サイト
まだまだ情報が少ないBracketsですが、下記サイト様がとても参考になります。
リンクに不都合がございましたら、ご連絡くださいませ。
・[Bracketsだって激しく進化してますよ！メインエディターとして1年使ってみて - WEBCRE8.jp] (http://webcre8.jp/think/editor-brackets-features.html)
・[【オープンソース】Adobe Brackets を使ってみたよ【テキストエディタ】 ｜ Developers.IO] (http://dev.classmethod.jp/etc/review-brackets/)
・[第10回『次世代のコーディング環境！使ってみようBrackets』 | ADC Plus](http://plus.adobe-adc.jp/2_10/)