Atomでアウトライナーを使う

この記事は、Atom のパッケージ [foldingtext-for-atom](https://atom.io/packages/foldingtext-for-atom "foldingtext-for-atom") の使い方の説明です。

前置き
=====

アウトライン（outline）とは？
--------------------------

全体の輪郭、概要のことです。

アウトライナー（outliner）とは？
-----------------------------

アウトライナーは、アウトラインプロセッサ（outline processor）やアイデアプロセッサ（idea processor）などとも呼ばれています。（もっと違った呼び方があるかもしれません）

有料、無料ともに、実に多くの専用ソフトウェアが開発されています。

また、ワードプロセッサやテキストエディタの機能として組み込まれていたりします。

[アウトラインプロセッサ - Wikipedia](https://ja.wikipedia.org/wiki/%E3%82%A2%E3%82%A6%E3%83%88%E3%83%A9%E3%82%A4%E3%83%B3%E3%83%97%E3%83%AD%E3%82%BB%E3%83%83%E3%82%B5 "アウトラインプロセッサ - Wikipedia")

[Outliner - Wikipedia, the free encyclopedia](https://en.wikipedia.org/wiki/Outliner "Outliner - Wikipedia, the free encyclopedia")

### アウトライナーでできること。

- 文章の下書き（blog、ビジネス文書、あるいは論文や小説といった長い文章）
- ToDoリスト的な使い方（スケジュール管理）
- メモの蓄積と整理（発散思考）
- アイデアの整理とまとめ（収束思考）
- プログラムやWebサイトの設計（ファイル構成とか）

Atomでアウトライナーを使う
------------------------

いや、調べたことや思いつたことをメモ書き→メモの整理（アウトライナーを使う）→まとめる（Markdown）→アウトプット という一連の作業をAtomで完結してたら便利だろうなあと思いまして。（あれこれアプリケーションを移動するのはつらい）

インストール
===========

普通にインストールできます。

```shell-session
apm install foldingtext-for-atom
```

とかそんなとこで
実行
File → New Outline
で開始

![sc20151106-01.png](https://qiita-image-store.s3.amazonaws.com/0/26107/747576ec-7f4a-d2c2-0984-2cd14f633464.png)


とりあえず覚えておくこと
=====================

ファイル
-------
ファイル形式はFTML（FoldingText Markup Language）という独自形式です。（htmlのサブセット）
拡張子は.ftmlです。

### ファイルを保存
当たり前のことですが、保存しないとファイルに書き込みません。
（自動保存のような機能はないもよう）

テキストモードとアウトラインモード
------------------------------

### テキストモード
項目の中身（テキスト）を編集するモード
カーソルが表示される

### アウトラインモード
項目を移動したり、折りたたんだりするモード
起動時はアウトラインモードである

### アウトラインモードからテキストモードへの移行

改行キー `Enter` を押す
カーソルの左矢印キー `←` を押す
カーソルの右矢印キー `→` を押す
`a` を押す
`i` を押す

### テキストモードからアウトラインモードへの移行
エスケープキー `Escape` を押す

### マウスを使った操作

テキスト部をクリック → 　クリックした位置にカーソルを移動し、テキストモードに移行する
三角形のマーク（トライアングルハンドル）をクリック → 　項目の折りたたみ／展開

使ってみよう（基本編）
===================

使い方の練習として、Webサイトのサイトマップをつくってみます。

まずは、Atomを立ち上げて、
File → New Outline
で開始します。

まずは、ドキュメントルートを作ります。

改行キー`Return` を押すと、新規に項目作成します。（例：「/Document_root」と入力）

ドキュメントルート配下に置くのファイルの項目を作成します。（例：「index.html」と入力）

![sc20151106-02.png](https://qiita-image-store.s3.amazonaws.com/0/26107/80bbdefe-a95b-12f8-f030-53a86a852d0e.png)


タブキー`Tab`を押すと、階層（インデント）が深くなります。

階層を浅くする（インデント解除）には、`Shift` +`Tab`です。

ファイルの項目に簡単な説明をつけていきます。

ドキュメントルートのサブフォルダを作成します。

サブフォルダにもファイルの項目と説明を入れます。

ひととおりできたら、ファイルを保存します。

Save → sitemap.ftml

さて、少しごちゃごちゃしてきたことと思います。
少し整理してきいきましょう。

項目削除 → `del`  または　`BS`

項目移動
 →  （Windowsの場合）`Ctrl` + `↓`  または　`Ctrl` + `↑`
 →  （Macの場合）`Ctrl` + `Command` + `↓`  または　`Ctrl`  + `Command` + `↑`

折りたたみ（Folding） → `.`（ピリオド） で、下位の項目の表示／非表示を切り替えます。（このほか標準で入っているコードフォールディングのキーバンドも使えます。）

![sc20151106-03.png](https://qiita-image-store.s3.amazonaws.com/0/26107/de03178c-0534-6855-ee18-ac768ba8d16a.png)


最後にファイルの保存して終了です。

もっと使ってみよう（実用編）
========================

テキスト装飾
-----------
ftmlにはHTML5 のテキストレベルセマンティック「HTML5 inline text semantics tags」くらいの表現力があるとのこと。

`Command` + `B`
太字、ボールド（bold ）にする。

`Command` + `I`
斜体、イタリック（italic）にする。

`Command` + `U`
下線、アンダーライン（underline ）を入れる。

`Command` + `Shift` + `K`
ハイパーリンクの挿入と編集。

`Ctrl` + `C`
テキスト装飾をクリアする。

[Editing | FoldingText for Atom User's Guide](https://jessegrosjean.gitbooks.io/foldingtext-for-atom-user-s-guide/content/editing.html "Editing | FoldingText for Atom User's Guide")

ホイスト（hoist）
---------------
アウトラインの中のある特定の項目（と、その項目の下位項目）のみを画面に残して、後は隠してしまうという機能です。
同じ機能を、「フォーカス」と呼んでいるソフトもあります。
大雑把に言うと、chroot です。

`Command`-`Option`-`↓`　ホイスト
`Command`-`Option`-`↑`　ホイスト解除

[Focusing | FoldingText for Atom User's Guide](https://jessegrosjean.gitbooks.io/foldingtext-for-atom-user-s-guide/content/focusing.html "Focusing | FoldingText for Atom User's Guide")

タグ（tag）
---------

タグをつけて整理や検索を容易にすることができます。

`t` タグ編集（アウトラインモード）
`Command`+`Shift`+`t` タグ編集（テキストモード）

- タグは「#」から始まらなければならない（？）
- ひとつ項目にf復数のタグを設定できる。

[Tags | FoldingText for Atom User's Guide](https://jessegrosjean.gitbooks.io/foldingtext-for-atom-user-s-guide/content/tags.html "Tags | FoldingText for Atom User's Guide")

ステータス（status）
-----------------
状態を表します。
次のステータスが用意されています。
（ToDoリスト的な使い方を想定しているんでしょう）

todo
waiting
active
complete
completed

ステータスの入力は
`s` `t` todo
`s` `w` waiting
`s` `a` active
`s` `c` complete
`Space`　complete 
`Ctrl` + `Space`　completed　（取り消し線がつく）
（トグルになっているので、もう一度入力すると消える）

- ひとつ項目に設定できるステータスはひとつだけ。

[Statuses | FoldingText for Atom User's Guide](https://jessegrosjean.gitbooks.io/foldingtext-for-atom-user-s-guide/content/statuses.html "Statuses | FoldingText for Atom User's Guide")

優先順位（Priority）
------------------
1～7の優先順位が用意されている。

色分けからすると、1が一番優先順位が高いみたいだ。
優先順位の入力は

`1` Priority 1.
`2` Priority 2.
`3` Priority 3.
`4` Priority 4.
`5` Priority 5.
`6` Priority 6.
`7` Priority 7.

（トグルになっているので、もう一度入力すると消える）

- 復数の項目に同じ優先順位を設定できる。
- ひとつ項目に設定できる優先順位はひとつだけ。

[Priorities | FoldingText for Atom User's Guide](https://jessegrosjean.gitbooks.io/foldingtext-for-atom-user-s-guide/content/priorities.html "Priorities | FoldingText for Atom User's Guide")

検索、フィルタリング
------------------
ペインの下に検索窓があり、検索条件を入力すると、条件にあった項目を絞り込んで表示する。
例えば、タグで絞り込んだり、ステータスで絞り込んだり、優先順位で絞り込んだりする。

[Filtering | FoldingText for Atom User's Guide](https://jessegrosjean.gitbooks.io/foldingtext-for-atom-user-s-guide/content/filtering.html "Filtering | FoldingText for Atom User's Guide")

[Appendix A: Search Syntax | FoldingText for Atom User's Guide](https://jessegrosjean.gitbooks.io/foldingtext-for-atom-user-s-guide/content/appendix_a_search_syntax.html "Appendix A: Search Syntax | FoldingText for Atom User's Guide")

キーバインドのまとめ
==================

テキストモード
------------

|キー　　 | 機能
|:-------|:-------|
|Return| 項目作成
|Tab|インデント
|Shift + Tab |インデント解除
|Escape| アウトラインモードへ
|Command + Shift + t|タグ編集

アウトラインモード
----------------
|キー　　               | 機能
|:----------------------|:---------------------------------|
|Return　　　　　　　|項目作成（テキストモード）
|a                  |テキストモードへ
|i                  |テキストモードへ
|t　　　　　　　　　　|タグ編集
|.（ピリオド）       |折りたたみ／展開
|Command + Option + ↓|ホイスト
|Command + Option + ↑|ホイスト解除
|s t|ステータス todo
|s w|ステータス waiting
|s a|ステータス active
|s c|ステータス complete
|Space|ステータス complete 
|Ctrl + Space|ステータス completed（取り消し線がつく）
|1|優先順位 1.
|2|優先順位 2.
|3|優先順位 3.
|4|優先順位 4.
|5|優先順位 5.
|6|優先順位 6.
|7|優先順位 7.

用語集
=====

項目（item）

インデント（indent）
字下げ

インデント解除（un-indent）

ハンドル（triangle handles）
三角形のあれ

展開（expand）

折りたたむ（collapse）

ステータス（status）

ホイスト（hoist）

ホイスト解除（un-hoist）

フォーカス（focus）
→ホイスト

フィルタ（filter）

検索（search）

検索窓（search field）
ペインの下にあるあれ


ファイル形式　FTML（FoldingText Markup Language）
==============================================

[Appendix B: File Format | FoldingText for Atom User's Guide](https://jessegrosjean.gitbooks.io/foldingtext-for-atom-user-s-guide/content/appendix_b_file_format.html "Appendix B: File Format | FoldingText for Atom User's Guide")

よくわからなかったところ
======================

ドラッグアンドドロップ（Drag & Drop）
[Drag &amp; Drop | FoldingText for Atom User's Guide](https://jessegrosjean.gitbooks.io/foldingtext-for-atom-user-s-guide/content/drag_&amp;_drop.html "Drag &amp; Drop | FoldingText for Atom User's Guide")

インポートとエキスポート（Import & Export）
[Import &amp; Export | FoldingText for Atom User's Guide](https://jessegrosjean.gitbooks.io/foldingtext-for-atom-user-s-guide/content/import_&amp;_export.html "Import &amp; Export | FoldingText for Atom User's Guide")

OPMLでデータのやりとりができるらしいけど、よくわかりませんでした。