質問

「ここでコマンドウィンドウを開く」に似たものがありますか? Mac OS用のWindows Powertoy? Google検索でいくつかのプラグインを見つけましたが、そこにいる開発者に最適なものを探していました。

役に立ちましたか?

解決

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

  

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

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

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

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

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

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

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

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

open -a Terminal /path/to/folder

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

関連するメモでは、Lionターミナルには、マニュアルページを検索するための新しいサービスもあります。ターミナルでマニュアルページを開くは、選択したマニュアルページのトピックを新しいターミナルウィンドウに表示し、ターミナルのページは「apropos」を実行します;選択したテキスト。前者は、マニュアルページ参照(" open(2)")、マニュアルページコマンドライン引数(" 2 open")、マニュアルページURL(" x-man-page:// 2 / open")も理解します。 。

他のヒント

これ:

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

これは、Finderツールバーにドラッグする小さなアプリです。アイコンは非常にうまく収まります。 Terminal、xterm(X11の下)、itermで動作します。

代替として不可欠であると判断したアプリケーションは、 DTerm です。アプリケーション内のミニ端末。さらに、Finder、XCode、PhotoShopなど、世の中のほぼすべてのもので機能します。

明確化(@ vgm64に感謝):すでにターミナルにいる場合、これにより、ターミナルを離れずに最上部のFinderウィンドウにすばやく変更できます。これにより、マウスの使用を避けることができます。

次のコードを .bash_profile に追加したので、いつでもターミナルで 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 $@`"; };

これは、このmacosxhints.com端末ヒントからのものです。

ここでターミナルを開くをご覧ください。 「コマンドウィンドウをここで開く」に最も類似している可能性があります。 &gt; cdto を使用しましたが、これは非常によく似ていますが、スペースの処理が少し優れているようですが、完全ではありません。

非常に優れているのは、アプリケーションの開始時にキーダウンイベントを検出し、それを使用してスクリプトの動作を変更する機能です&quot; &#8984;を押してスクリプトを呼び出すと、最前面のターミナルウィンドウに新しいタブを開くことができます。キー。きちんとしたトリック。

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

vgm64 および d0k によって投稿された、非常にすてきでスリムなここでターミナルを開くの更新バージョンがあります。変更は、 james david low によって行われました。彼は彼のサイトで新しいバージョンを公開しました。 OpenTerminalHere.zipをダウンロードして解凍し、バンドルをLibrary / Scriptsフォルダーに移動して、そこからFinderツールバーにドラッグします。

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

また、command-Cを使用してファインダーから項目をコピーし、ターミナルにジャンプして(たとえば、SpotlightまたはQuickSilverを使用)、「cd」と入力し、command-vで貼り付けることができます

ファインダーツールバー用の3つのアプリを含むバンドルを作成しました。 他の2つのアプリは:

  • 現在の選択でTextmateを開く
  • 現在のフォルダーでGitXを開きます

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

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

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

それはあなたが求めている以上のことですが、Finderにもう少し力があることを望む人にはCocoatechのPath Finderをお勧めします。現在のディレクトリのターミナルウィンドウを開くためのツールバーボタン、または各Finderウィンドウの下部にターミナルコマンドラインがある格納可能なペインが含まれています。それに加えて、これなしでは生きていけない他の多くの機能。非常に成熟した安定したソフトウェア。 http://cocoatech.com/

わかりました、これは少し遅れていることに気づきました...この代替案は投稿の執筆時点では利用できなかったのでしょうか?

とにかく、posパッケージをFink(この場合の前提条件、MacPortsを使用する人には似たようなものがあるかもしれません)を介してインストールするのが最も簡単な解決策であることがわかりました。次の2つのコマンドが表示されます。

  1. posd-最前面のFinderウィンドウの現在のディレクトリを提供します(おそらくエイリアスcdf = cd posdを作成します)
  2. fdc-最前面のFinderウィンドウの現在のディレクトリをターミナルpwdに切り替えます。これは 'open'とは少し異なります。常に新しいファインダーウィンドウが開きます。

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

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

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

主にこの関数を使用します:

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の実行。

OSX 10.6のAppleScriptにはバグがあります。 (2つのターミナルウィンドウが開きます)。 アクティベート後に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
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top