新世代のemacsを目指して作られた[1]エディタAtom。「emacsは環境」という言葉もあるように多機能なemacsに対し、Atomはどんな機能があるのかまとめてみた。「こんなこともできるよ」と「これオススメだよ」と「これよく探されるよ」がごっちゃになってるので、実用性はあんまり無い。特にエディタっぽい機能を求めている場合は他を参照のこと。
同じような機能を提供するものについては代表的なものや検索ワードのみ示している場合がある。また、自分で使ってみたわけではないので、記載したプラグインについて動作は保証しない。古い(2,3か月くらい更新されていない)ものだと動かないことも割とよくある。
以下のブックマークレット[2]による目次表示を推奨
javascript:(function(){/*%20style%20*/var%20style%20=%20(function%20()%20{/*.toc{border:%201px%20solid%20#aaa;padding:%204px%2012px;margin-bottom:%2012px;position:%20relative;padding-top:%2030px;}.toc-title{display:%20inline-block;width:%20auto;background-color:%20#ccc;position:%20absolute;left:%200px;top:%200px;font-size:%208pt;padding:%202px%204px;padding-right:%208px;color:%20#666;}.toc-h{font-size:%2011pt;}.toc-h1{}.toc-h2{margin-left:%2020px;}.toc-h3{margin-left:%2040px;}*/}).toString().match(/[^]*\/\*([^]*)\*\/\}$/)[1];$('.toc-style').remove();$('body').append($('<style%20class="toc-style">\n'%20+%20style%20+%20'\n</style>'));/*%20toc%20frame%20*/$('.toc').remove();var%20$toc%20=%20$('<div%20class="toc"><div%20class="toc-title">TOC</div></div>');/*%20each%20links%20*/$('.markdown-body%20h1,%20.markdown-body%20h2,%20.markdown-body%20h3').each(function(){/*%20level%20*/var%20tagName%20=%20$(this).prop('tagName').toLowerCase();/*%20link%20div%20*/var%20$div%20=%20$('<div%20class="toc-h%20toc-'%20+%20tagName%20+%20'"></div>');/*%20link%20*/var%20$a%20=%20$('<a%20href=""></a>');$a.appendTo($div);$a.text($(this).text());$a.attr('href',%20$(this).find('a:first').attr('href'));/*%20append%20*/$toc.append($div);});$toc.prependTo($('.markdown-body'));})();
ブラウザベースだけあって該当プラグインが多い。とりあえずbrowser-plusを使っておけば安泰。youtube再生もできるし、HTMLファイルのプレビューにも使える。
atom-emailというパッケージはあるものの未だベータ。機能も限られている。残念。
floobitsを使うとビデオ通話ができる。
tasksやtasks-calendarでタスクリスト的なことができる。プロジェクトに関わることであればTODOコメントを使うプラグインはたくさんある。
コード片を実行したり数式を計算したりするプラグインはたくさんあるし、Atom上で電卓叩きたいならcalculatorとか使えばいい。
Atomをターミナルとして使うプラグインはterm3をはじめ複数ある。単発で打ちたいならrun-commandあたり。
自動で動かしたいなら以下のあたりを状況に応じて使い分ける。
各種マークアップ言語のスニペット/ハイライト/プレビュープラグインは揃ってるが、それ以外の便利プラグインが充実してるのはmarkdownくらいしかない。
pdfが読みたいならpdf-viewが利用できる。生テキストならtranslatorで翻訳したりdictやtranslator-plus-dictionaryで単語調べたりhyperlink-hyperclickでリンク開けるようにしたり。
どちらにせよAtomでは辛いように思えるが。
atom-printerを使えばエディタの中身は印刷できる。プレビュー画面や設定画面などは印刷できない。print-atomはウインドウを印刷するので何でもありだが、Atomの構造上タブバーやステータスバーも一緒に印刷してしまうので実用に堪えない。
動画なら良い感じに撮れるのにね。
do-not-use-atomがAtomを殺してくれるし、disturb-meが邪魔してくれるので、Atomを使いたくない人でも安心してAtomに乗り換えられる。
また、実用的なものとして、定期的に休憩を強制するbreak-timeもある。
未保存ファイルの保持(sublimeのHot Exit相当)は長年save-sessionが担当してきたが、v1.4からはめでたく標準機能になった。
atom-auto-update-packagesを使えば自動でパッケージを更新してくれる。ただしOSX専用。
残念ながら本体の自動アップデートを行うパッケージは無い。とはいえup2dateを少しいじる程度で作れそうな気がするが。
sync-settingでパッケージやスニペットを共有、同期できる。もっと複雑なことしたいなら.atomを直接管理すればいい。
remote-editならftpとsftpが、remote-ftpなら加えてftpsが使える。個人的には多段sshにも対応してほしいが、nodeが対応してないので厳しいか。
git-plusを使えば大体のgitコマンドは利用できる。GUIが欲しければgit-controlかatomatigit。
merge-conflictsを入れるとマージが楽になるかもしれない。
gistが使える。evernoteはever-notedownがあるものの、個人的にはイマイチ。
cloud-syncはpkgcloud依存なのでAzureとかAmazonとかに対応してる。
UIを日本語化したりエンコーディングを自動判別したり単語境界判定を強化したり全角スペース表示したりできる。
なお、v1.2から公式がCJK softwrapに対応したため、wrap-styleのようなラップ挙動を上書きするパッケージを使うと却って拙いことになる。
scriptがだいたいなんとかしてくれる。なぜかLaTeXやMakefileまでサポートしてる。
それがダメな場合、atom-runnerでだいたいなんとかなる。もちろん各言語が独自にサポートしている可能性もある。
atom-pronama-chanを使えばお手軽に痛エディタが完成。editor-backgroundやtree-view-backgroundでお好みの背景画像設定してもいい。
atom-mikuという謎パッケージもある。
autohide-tree-viewやtoggle-tabsで余計な部分を隠してしまうといい。minimapを使っている場合はminimap-hideが同様に使える。zen系パッケージでもだいたい同様の効果が得られると思われる。
compactあたりでテーマ検索するとタブなどが小さめにデザインされたものがある。
syntax(UI)に合わせて変化するテーマはadaptiveで検索するといくつか出てくる。syntaxテーマに関してはviriatoとatom-monokaiくらいか。
theme-rouletteでテーマをランダムに組み替えたり、activate-power-modeやsoundでリアクションを大きくしたりすると愉快になる。たまに鬱陶しい。
全く使い物にならなくなってもいいならぴょんぴょんさせることも可能。
途中までならある。個人的にも余裕があればpo4aとか使って翻訳したい。