見出し画像

なんでこの機能はmacにないのか(「finderからカレントディレクトリをターミナルで開く」編)

名も知らない人の備忘録に常々助けられているので自分でも書いてみることにする。

私は大学に入るまではずっとwindowsしか触って来なかったwindows信者だが、大学からは値段や重量を考慮して持ち運び用としてMacBookを使用している。
が、windowsをずっと使ってきてからmacに触れると困惑することが多い。トラックパッドもなかなか慣れなかったし。
特にwindowsにはあるのにmacには標準搭載されていない機能があると「なんでこの機能ないん?不便すぎんか?」となる。(私が知らないだけかも知れんが)

そんな機能の内の一つが「finderからカレントディレクトリをターミナルを開く」である。

macをあんまり触ったことがない人向けに書くとfinderとはファイルシステムのことである(多分)。windowsにおけるエクスプローラ。
ターミナルはコマンドプロンプト
windowsももうターミナルになったんだった。まぁコマンドを実行する場である。
詳しくは調べて

windowsではエクスプローラ内で右クリックをすると「ここでターミナルを開く」と表示される。(うろ覚え)
それをクリックすればそのフォルダをカレントディレクトリとしたターミナルを開くことができる。

ところがmacではフォルダ内で右クリックしてもそのような文言はなんも表示されない。

一応フォルダを右クリックすれば「フォルダに新規ターミナル」と表示され、ターミナルを開けるがそれは右クリックしたフォルダをカレントディレクトリとしたターミナルであり、現在開いているフォルダに対してではない。

一応ターミナルを開けるが
右クリックしたフォルダがカレントディレクトリになっている
(今回の例だとデスクトップをカレントディレクトリとするターミナルを開いてほしい)

まぁ同じことを考える人はたくさんいると思うので調べてみたらやっぱりあった。

どうやらAutomatorっていうのを使えばいいらしい。プログラムを書いていろいろできるみたいですね。
が、少し問題が。

あと、ターミナルを全く起動していない状態でアプリを実行すると、ターミナルのウィンドウが2つ起動することがあるようでした。これに関しては “修正の仕方がわからない” & “ターミナルを起動しておけば1つしか起動しないのでそんなに実害がない” ため、修正は見送らせていただくことにしています。

上記リンクより

確かにターミナルが2つ起動する。
上記の通り実害はそんなにないのだが少し気持ち悪い。
そこでコードを少し変更する。

on run {input, parameters}	
	tell application "Finder"
		set hfsCurrentFolder to insertion location as Unicode text
		set currentFolder to get POSIX path of hfsCurrentFolder
	end tell
#以下変更
	do shell script "open -a Terminal " & currentFolder
#変更終わり
end run

ターミナルに対するactivateあたりが二重に起動する原因のように思えたので、シェルでターミナルを開くように変更した。

問題なく起動できたし二重に起動したりしなくなった。

まとめ

Automator、というかappleScriptについて調べてたら色々面白そうなこともできそうだった。(充電端子を刺したら特定の音が鳴るようにするとか。実用的ではないけど)
フォルダを直接VScodeで開くことも多分できそうなのでそれもやってみようと思ったり。

(筆者はmacエアプ、プログラミングエアプなので改善点とかあったら教えて欲しいです。あとappleScriptでできる面白そうなこととかも)


いいなと思ったら応援しよう!