AtomをNotepad++同様の環境にしたかった話


はじめに

初投稿です 何かミスがあればコメントください。今回突然移行したくなったのはTeletypeっていう共同編集機能が気になったってのと、Atomの方がいいよ~って友人によく勧められるので、それなら移行しようと思ったからです。Notepad++は主にPythonを書くのに使ってます。

0. Notepad++の現環境

OS: Windows10
バージョン: 7.5.8
言語: 日本語

[内蔵機能]
 ワークスペース
 関数リスト
 文書マップ
 クリップボード履歴
[プラグイン]
 JSTool (JSONをMinify,Unminityする)
 NppExec (Pythonをエディタ上で実行する)
[キーバインド]
 Shift+F1 で開いているファイルをPythonで実行

これと同様の環境をAtomでも作ります
※プラグインのレイアウトは固定されていてタブもないので
全く同じ配置にはできなさそうです。慣れましょう。

1. インストール

公式サイトからダウンロードしてインストールするだけです。
インストールした時点で色々ガイドが出るので軽く読んだらガイドを閉じます、
この時点でシンタックスハイライトとワークスペース機能は利用できますが
他の機能はまだありません。プラグインには同様の機能があるのでそれを導入しましょう。
Notepad++ でいうPluginManagerはAtomの設定にあります。
Settings -> Install タブを開くとそこがPluginManager代わりです。

2. 言語を日本語に

japanese-menuを導入すると日本語になります
設定タブは一度閉じるとなぜかたまに英語に戻るようです

3. 関数リストを表示する

symbols-tree-view を導入すると使えます
上部の 表示 -> Toggle symbols-tree-view
で 表示有無を切り替えられます
デフォルトでは 変数名等も表示されますが、
関数リストビュー上で右クリックしてnamespaceとvariableのチェックを外すと
Notepad++と同じ表示になります
(関数名が日本語の場合、反映されません)

4. 文書マップを表示する

minimap を導入すると表示できます
上部の パッケージ -> Minimap -> Toggle
で 表示有無を切り替えられます

5. クリップボード履歴を利用する

clipboard-plus がそれと同じ機能を持っているようですが
使い方がよくわかりませんでした...

6. JSToolの代わり

pretty-json を導入すると同じ機能が使えます
使う時は パッケージ -> Pretty JSON -> Prettify / Minify です

7. NppExecの代わり

調べてみるといくつか選択肢があるように思えますが完全にNotepad++同様に動くものはありませんでした。 どうやら 裏で動かしたものをAtomのペインに表示するというものがほとんどらしく、リアルタイムにinputやprintを反映することはできないようです。どなたかNppExecと同様に動作してくれるようなプラグインをご存知でしたらコメントお願いします。検証したものは一応こちらに書いておきますのでよければ参考にしてください

process-palette

動作 O
input △(実行前に設定)
表示リアルタイム X

設定方法はNppExecにかなり近いです。
実行したプログラムを終了できないバグが起こることがあるみたいです。

script-runner

動作 O
input X
表示リアルタイム X

動作に問題はありません。

script

動作 X
input X
表示リアルタイム X

キーバインドもコマンドパレットからの実行も共に動作しません
当環境では全く動作しませんでした

atom-python-run

動作 O
input O
表示リアルタイム O

別ウィンドウでIDEを開きます
毎度ウィンドウを切り替えるのが少し手間ですが
これであれば入力もリアルタイムprintもできます

やってみた感想

インストールして思ったのがレイアウトの自由が効かないなぁ~ってことです。
他の物を試したことがないのですが、どれもこういうものなんですかね?

後、Atomは結構メモリを食いつぶすらしく、
ここに記載されたプラグインに追加でオートコンプリートを入れただけで
僕の環境ではRAMを430MBも食っていました。
RAMを3.2MBしか使わないNotepad++と比べると結構ハードだと思います。
AtomはTeletypeの時だけ使うようにして
もうしばらくはNotepad++を使おうと思います。