最強のMarkdown編集環境としてのAtom

ブログなどちょっとした文章の編集から書籍の執筆までMarkdownを活用しています。これまで試した各種テキストエディタMarkdown編集支援機能や、Markdown編集専用のツールはどれも満足の行くものではなかったのですが、最近はAtomに以下のようなパッケージを入れた環境が理想に近いMarkdown編集環境を得ることができました。

少し前にエンジニアHubさんで各社のエンジニアの方がオススメのAtomパッケージを紹介するという企画記事があり、私もMarkdown関連のパッケージを紹介させていただいたのですが、この記事では各パッケージを簡単にしか紹介できなかったので、ここでは少し詳しく紹介したいと思います。

employment.en-japan.com

document-outline

atom.io

サイドバーにMarkdownの見出しをツリー状に表示してくれるパッケージです。書籍原稿のような長文を編集していると文章の全体構造を見ながら作業を進めたくなることが多いのですが、Markdownの文章構造を表示してくれるツールというのは意外と見つからず、このパッケージの存在がAtomを最強のMarkdown編集環境足らしめていると言っても過言ではありません(Emacsoutline-tocという拡張を見つけたのですが、リフレッシュ時の画面のチラつきが激しくて実用は厳しかった…)。

以前は長文になるとリフレッシュが重く使い物にならなかったのですが、現在は高速化され数万文字のテキストでも問題なく扱えるようになりました。

markdown-writer

atom.io

Markdownの編集時に便利なちょっとした機能を提供してくれるパッケージです。たとえば箇条書きをしている際に行末で改行すると次の行の行頭に - を入れてくれたり(番号付きリストの場合は 1. の次は 2. のようにちゃんとインクリメントされて入ります)、TABやSHIFT + TABで箇条書きのインデントを調整したりすることができます。

他にもいろんな機能があるのですが、なくてもそんなに不便は感じないかも…。

markdown-scroll-sync

atom.io

Atomは標準機能でMarkdownのプレビューが可能ですが、エディタで表示している領域にあわせてプレビューを自動的にスクロールしてくれるパッケージです。ただ、Markdownの編集に慣れてくるとプレビューはあまり使わなくなるのでそんなに利用頻度は高くないかも…。あと、これは仕方ないことだとは思うのですが、スクロールがちょっとずれてしまうこともあります。

プレビュー機能は表や画像が正しく表示されているかを確認したり、ある程度書き終わった後に読み返す際に使うことが多いのですが、そういう用途の場合は逆にプレビューのスクロールにあわせてエディタをスクロールできるといいな、と思います。

atom-csv-markdown

atom.io

Markdownの編集時に一番手間がかかるのが表の作成ではないかと思います。これは自作のパッケージなのですが、CSV形式のテキストを範囲選択してMarkdownの表に変換できるというものです。

ゼロから表を作成する場合は次に紹介するmarkdown-table-writerを使ってエディタ上で編集するでもよいのですが、スプレッドシートなどに表の元ネタがあったりする場合にはCSVで貼り付けてからこれで一括変換するのが便利です。

markdown-table-editor

atom.io

Markdownの表の編集を支援してくれるパッケージです。文章では説明しずらいのですが、表を編集していると自動的にセル幅を調整してくれたり、タブキーでセルを移動できたり、ENTERキーで新しい行を追加してくれたりなど、あたかもスプレッドシートを編集しているかのような操作性を提供してくれます。キーボードショートカットなどを覚える必要もないのでめちゃくちゃ便利です(パッケージのページに掲載されている動画を見るとどのような動作をするかわかりやすいです)。

ただ、実際Markdownで表を作成していると、同じ列でも行によって入力される文字列の長さが大きく異なる場合などセル幅を統一したくないというケースもあります。このような場合はセル幅を自動調整しないよう設定を変更することもできます。コマンドパレットからも変更できるので編集中にサクッと切り替えできて便利です。

まとめ

なんといってもdocument-outlineの存在が大きいです。このパッケージのおかげで長文のMarkdownの編集が相当快適になりました。もともとMarkdownの記法はさほど複雑なものではないので編集支援系の機能は無ければ無いでなんとかなるのですが、これだけは替えがききません。

特にMarkdownで長文を編集する際は是非Atom + document-outlineパッケージの組み合わせを試してみていただければと思います。