web-dev-qa-db-ja.com

ここでMac OSのファインダーでターミナルを開く

Mac OS用の「ここでコマンドウィンドウを開く」Windows Powertoyに似たものはありますか?私はグーグル検索でいくつかのプラグインを見つけましたが、そこでは開発者にとって最も効果的なものを見たかったのです。

682
Abdullah Jibaly

Mac OS X Lion 10.7の時点で、ターミナルにはまさにこの機能がサービスとして含まれています。ほとんどのサービスと同様に、これらはデフォルトで無効になっているため、これを有効にして[サービス]メニューに表示する必要があります。

システム環境設定>キーボード>ショートカット>サービス

フォルダの新しいターミナルを有効にします。また、Folderに新しいターミナルタブがあり、最前面のターミナルウィンドウにタブを作成します(存在しない場合は新しいウィンドウを作成します)。これらのサービスは、Finderだけでなく、すべてのアプリケーションで機能し、テキストで選択されたフォルダーと絶対パス名で動作します。

コマンドキーを割り当てることもできます。

サービスは、各アプリケーションメニューの[サービス]サブメニュー、およびコンテキストメニュー(フォルダーまたはパス名でControlキーを押しながらクリックまたは右クリック)内に表示されます。

フォルダの新しいターミナルサービスは、フォルダを選択するとアクティブになります Finderで。単にフォルダを開いて、「インプレース」でサービスを実行することはできません。親フォルダーに戻り、関連するフォルダーを選択して、[サービス]メニューまたはコンテキストメニューからサービスをアクティブにします。

さらに、フォルダ(またはパス名)をターミナルアプリケーションアイコンにドラッグすると、ライオンターミナルは新しいターミナルウィンドウを開きます。また、既存のウィンドウのタブバーにドラッグして新しいタブを作成することもできます。

最後に、フォルダーまたはパス名をタブ(タブバー)にドラッグし、フォアグラウンドプロセスがシェルの場合、「cd」コマンドが自動的に実行されます。 (タブ内のターミナルビューにドラッグすると、古いバージョンのターミナルのように、パス名が挿入されるだけです。)

コマンドラインまたはシェルスクリプトからこれを行うこともできます。

open -a Terminal /path/to/folder

これは、フォルダー/パス名をターミナルアプリケーションアイコンにドラッグするのと同じコマンドラインです。

関連する注意事項として、Lionターミナルには、manページを検索するための新しいサービスもあります。Terminalでmanページを開くは、選択したmanページのトピックを新しい端末に表示しますウィンドウ、およびTerminalでmanページを検索すると、選択したテキストに対して「適切な」実行が行われます。前者は、manページの参照( "open(2)")、manページのコマンドライン引数( "2 open")、manページのURL( "x-man-page:// 2/open")も理解します。

900
Chris Page

この:

https://github.com/jbtule/cdto#cd-to

それはあなたがFinderツールバーにドラッグする小さなアプリです、アイコンはとてもうまく収まります。 Terminal、xterm(X11以下)、itermで動作します。

153
redacted

私が代わりとして不可欠であると思ったアプリケーションは DTerm で、これは実際にあなたのアプリケーションの中でミニターミナルを開く。さらに、Finder、XCode、PhotoShopなど、ほぼすべてのものに対応しています。

56
Paul Alexander

明確化(ありがとう@ vgm64):すでにターミナルを開いている場合は、ターミナルを終了せずにすぐに一番上のFinderウィンドウに移動できます。このようにして、マウスを使うのを避けることができます。

私は.bash_profileに以下を追加したので、いつでもTerminalでcdffを入力することができます。

function ff { osascript -e 'tell application "Finder"'\
 -e "if (${1-1} <= (count Finder windows)) then"\
 -e "get POSIX path of (target of window ${1-1} as alias)"\
 -e 'else' -e 'get POSIX path of (desktop as alias)'\
 -e 'end if' -e 'end tell'; };\

function cdff { cd "`ff $@`"; };

これは from this macosxhints.com Terminalのヒント です。

38
PCheese

ターミナルをここで開く をチェックしてください。これは、「コマンドウィンドウをここで開く」と最もよく似ています。私は>cdtoを使いました、そして、これは非常に似ています、しかし、これはSpacesを扱うことにおいてもう少し良いように思われます...しかし完全ではありません。

それが持っているのはとても素晴らしいことです。 " アプリケーションの開始時にキーダウンイベントを検出し、それらを使ってスクリプトの動作を変更することができます " ⌘キーを押しながら起動すると、最前面のターミナルウィンドウが表示されます。きちんとしたトリック。

PCheeseの答えにも注意してください。ヘビーターミナルユーザーにとってはおそらくもっと便利です。

14
physicsmichael

とても素敵でスリムな Open Terminal Here の投稿されたvgm64d0kの更新版があります。変更はjames david lowによって行われました。彼は 彼のサイト に新しいバージョンを公開しました。 OpenTerminalHere.Zipをダウンロードして解凍し、バンドルをLibrary/Scriptsフォルダに移動してそこからFinderツールバーにドラッグするだけです。

それについて特別なことはそれが 常に新しいタブを開くことです Terminal.appウィンドウが既に開いている場合。非常に便利!私はまた、アプリケーションのボタンのスタイルは、redactedによって投稿されたcdtoよりもSnow Leopard Finder.appのスタイルに適していることにも注目しました。

12
pklaus

また、Command-Cを使ってFinderからアイテムをコピーし、(例えばSpotlightやQuickSilverを使って)ターミナルに移動し、 'cd'とタイプしてcommand-vで貼り付けることもできる。

10
Henrik Hartz

Finderツールバー用の3つのアプリを含むバンドルを作成しました。他の2つのアプリは以下のことを行います。

  • 現在の選択内容でTextmateを開く
  • 現在のフォルダでGitXを開く

詳細についてはここを参照してください: http://nslog.de/posts/71

4
stigi

Big Cat Scripts( http://www.ranchero.com/bigcat/ )をインストールすると、独自のコンテキストメニュー(右クリック)の項目を追加できます。 Open Terminal Here applescriptは付属していないと思いますが、私はこのスクリプトを使用します(自分で書いたのか、他の人の例から持ち上げたのかは、正直に思い出しません)。


on main(filelist)
    tell application "Finder"
        try
            activate
            set frontWin to folder of front window as string
            set frontWinPath to (get POSIX path of frontWin)
            tell application "Terminal"
                activate
                do script with command "cd \"" & frontWinPath & "\""
            end tell
        on error error_message
            beep
            display dialog error_message buttons ¬
                {"OK"} default button 1
        end try
    end tell
end main

右クリックで同様のスクリプトを使用してファイルへの完全なパスを取得することもできます。これはさらに便利です。

3
iayork

それはあなたが望んでいる以上のものですが、Finderにもう少しジュースが欲しい人にはCocoatechのPath Finderをお勧めします。現在のディレクトリの「ターミナル」ウインドウを開くためのツールバーボタン、または各Finderウインドウの下部に「ターミナル」コマンドラインがある格納式ペインがあります。他にもたくさんの機能があります。非常に成熟した安定したソフトウェア http://cocoatech.com/

3
Gabe

私のようにFinderツールバーをオフにすると、このサービスはすべてのフォルダのコンテキストメニューに項目を追加します。 http://blog.leenarts.net/2009/09/03/open-service-here/

これにより、Finderのツリービューに表示されているフォルダを開くこともできます。

2
joachim

さて、私はこれが少し遅れていることを理解しています...多分この代替手段は記事を書いている時点で利用できなかったのですか?

とにかく、私はFink経由でposパッケージをインストールすること(この場合の前提条件、おそらくMacPortsを使っている人のための似たようなものがあるのでしょうか?)が最も簡単な解決策であると思いました。 2つのコマンドがあります。

  1. posd - 最前面のFinderウィンドウのカレントディレクトリを指定します(これに対しておそらくエイリアスcdf = cd posdを作成します)。
  2. fdc - 最前面のFinderウィンドウのカレントディレクトリをTerminal pwdに切り替えます。これは 'open'とは少し異なります。常に新しいFinderウィンドウが開きます。

はい、あなたはcdfを書く前にターミナルウィンドウに切り替えなければなりません、しかし私はそれがFinderツールバーのボタンをクリックするのに比べてかなり安いと思います。また、iTermでも機能します。iTermウィンドウを開くための別のFinderツールバーボタンをダウンロードする必要はありません。これはPCheeseが提案したのと同じアプローチですが、あなたはあなたの.bash_profileを乱雑にする必要はありません。

2
Jonatan Lindén

私は主にこの機能を使用します。

cf() {
  cd "$(osascript -e 'tell app "Finder" to POSIX path of (insertion location as alias)')"
}

下記のようなスクリプトにショートカットを割り当てることもできます。

既存のタブを再利用するか、新しいウィンドウを作成します(ターミナル)。

tell application "Finder" to set p to POSIX path of (insertion location as alias)
tell application "Terminal"
    if (exists window 1) and not busy of window 1 then
        do script "cd " & quoted form of p in window 1
    else
        do script "cd " & quoted form of p
    end if
    activate
end tell

既存のタブを再利用するか、新しいタブを作成します(ターミナル)。

tell application "Finder" to set p to POSIX path of (insertion location as alias)
tell application "Terminal"
    if not (exists window 1) then reopen
    activate
    if busy of window 1 then
        tell application "System Events" to keystroke "t" using command down
    end if
    do script "cd " & quoted form of p in window 1
end tell

常に新しいタブを作成してください(iTerm 2):

tell application "Finder" to set p to POSIX path of (insertion location as alias)
tell application "iTerm"
    if exists current terminal then
        current terminal
    else
        make new terminal
    end if
    tell (launch session "Default") of result to write text "cd " & quoted form of p
    activate
end tell

最初の2つのスクリプトには、10.7で追加されたサービスと比較して2つの利点があります。

  • 最初にフォルダを選択する必要はなく、タイトルバーのフォルダを使用します。
  • 最前面のタブがビジーでなければ、それらを再利用します。コマンドを実行する、manページを表示する、またはemacsを実行する。
1
Lri

OSX 10.6のAppleScriptにはバグがあります。 (2つのターミナルウィンドウが開きます) activateの後にcloseコマンドを追加することでこれを修正しました。これで最初のターミナルウィンドウが閉じます。

on run
    tell application "Finder"
        try
            activate
            set frontWin to folder of front window as string
            set frontWinPath to (get POSIX path of frontWin)
            tell application "Terminal"
                activate
                close
                do script with command "cd \"" & frontWinPath & "\""
            end tell
        on error error_message
            beep
            display dialog error_message buttons ¬
                {"OK"} default button 1
        end try
    end tell
end run
0
Bernhard Essl