Atom でプロジェクトの検索結果をクリップボードにコピーする

AtomGrep検索の結果をコピーしようと右クリックするとコピーするというメニューが存在しない。
ファイル名をコピーしてチャットに貼りたい場合、同じ作業をターミナルや他のエディタで行わなければならず地味にフラストレーションがたまる。 f:id:snowlong:20170126190226p:plain

現在、検索結果をコピーするという機能はAtomには実装されていないようだ。
プルリクエストがあるがマージに失敗して取り込まれていない!

というわけで、Atom でプロジェクトの検索結果からファイル名を抽出する手順を以下に記載する。

手順

1: Ctrl + Shift + i でDeveloper Toolsを開く。
2: 以下のコードをコンソール上で実行する。

pack = atom.packages.getActivePackage('find-and-replace')
pack.mainModule.resultsModel.results

3: 出力されたObjectの上で右クリック。
4: Strore as a global variable を選択する。
すると、tempX (Xは数値)という変数が生成される。
5: コンソール上で以下を実行する。
Windowsなので\を/に変換している。

copy(Object.keys(temp1).map(function(d) {return d.replace(/\\/g, '/');}));

これでクリップボードにtempXの内容が以下のような形式でコピーされる。

[
  "C:/file/path/path.js"
]

あとは、コードをスニペットに登録するなどして使い勝手をよくする。

マージして

しかし、なぜこの機能がまだ実装されていないのか。
はやくマージして使えるようにしてほしい。

Atom実践入門──進化し続けるハッカブルなエディタ (WEB+DB PRESS plus)

Atom実践入門──進化し続けるハッカブルなエディタ (WEB+DB PRESS plus)