Edited at

AppleScriptで「Finderでボタンポチるだけで、そのディレクトリでターミナル開く」プログラムを作る(cloneしてドラッグ&ドロップするだけで利用可能)

(iterm2版も追加しました! @derorian3 様プルリク)

簡単すぎて「こんなん要らないよ」って言われないか怖かったんですけど、割とTwitterで反応良かったので記事にします(´;ω;`)

これを使うと下記のメリットがあります。


  • 一々ターミナル開いて、path調べてcdする必要がない

  • 一々1階層あがって「右クリ>サービス>フォルダに新規ターミナル」をクリックする必要がない

👇実装例(gif)

1Pyrm2UrCk621d8x (1).gif


導入(cloneして右クリックするだけ)


(1) まずはこちらのリポジトリをクローンしてください。

git clone https://github.com/ryuta69/awesome-mac-automator


(2) クローンしたリポジトリのopenterminal.app(もしくはopeniterm2.app)を、Command押しながらツールバーに入れてください

スクリーンショット 2019-10-08 21.33.47.png


(3) 完成!ダブルクリックしたら起動します!

👇もしこういう警告が出たら、

スクリーンショット 2019-10-08 21.34.49.png

「システム環境設定>セキュリティ>一般」から許可しましょう!

スクリーンショット 2019-10-08 22.10.17.png

aa.png


解説

これどうやって作ってんの?」「自分も色々作ってみたい」という方の為に。


ソースコード

これはAppleScriptで作っています。ソースコード(10/9追記 @MD5500 さん情報)は下記の通り。


openterminal.app

tell application "Finder"

set this_folder to target of front window as alias
end tell

tell application "Terminal"
activate
do script "cd " & quoted form of POSIX path of this_folder
end tell


👇作: @derorian3


openiterm2.app

tell application "Finder"

-- set _dir to POSIX path of ((folder of (front window)) as alias)
if exists Finder window 1 then
set currentDir to target of Finder window 1 as Unicode text
set posixPath to get POSIX path of currentDir
end if
end tell

tell application "iTerm"
activate
set _current_session to current session of current window
tell current window
create tab with default profile

tell current session of current tab
write text "cd " & posixPath
end tell
end tell
end tell


なんとなく直感的に何やってるのかわかりますでしょうか。

このようにMacアプリ間で変数を受け取って渡す事が可能なのです。

ちなみに標準アプリである必要はなく、Sublimeなどの外部アプリとも連携できます。クローンしたリポジトリにはopensublime.appというアプリもあるかと思いますが、これは「sublimeを開き、現在ディレクトリをフォルダツリーに展開できる」スクリプトです。


アプリ化

AppleScriptをダブルクリックで起動できるアプリ化するには、Automatorを使います。

(1)Automatorとか開いたことない人がほとんどだと思いますが、

Macには標準で用意されてるのでアプリケーション開いてみましょう👇

スクリーンショット 2019-10-08 22.33.00.png

(2)Automatorを開いたら、下画像のように「アプリケーション」を選択しましょう。

スクリーンショット 2019-10-08 22.21.03.png

(3)編集画面に遷移したら、下画像のように「AppleScriptを実行」という項目を右半分のゾーンにドラッグアンドドロップしてください。

スクリーンショット 2019-10-08 22.21.52.png

(4)コード入力画面に、上述のAppleScriptのコードをコピペしましょう

スクリーンショット 2019-10-08 22.30.32.png

(5)ここまで出来たらセーブしてください。名前は何でもいいので「***.app」というAppファイルができるかと思います。

スクリーンショット 2019-10-08 22.31.32.png

このAppファイルをどこにおいても、ダブルクリックすれば、ターミナルがどこからでも起動できる事が確認できます。

スクリーンショット 2019-10-08 22.31.49.png

これをツールバーに突っ込めば、どこからでも起動できるAppファイルができるというわけです。


まとめ

今回のAppleScriptは一番単純なものですが、Automatorの編集画面を極めれば色々カスタマイズできる事がわかると思います。

いろいろ定常化できそうなタスクや、自動化したいコマンド操作などがある人はぜひ色々と試してみて下さい!

参考

APPLESCRIPT 最速基本文法マスター

AppleScript で iTerm2 Version 3 を操作する

あとこのスクリプトを参考にしたサイトがあったはずだけど忘れてしまった・・・見つけ次第追記します。