Safari「検索タブ」キーボードショートカット


12

Safari 8の新しい「検索タブ」機能は非常に便利です。「すべてのタブを表示」がアクティブになっている場合、テキストを入力してタブを必要なものにフィルターできます。ただし、1つのタブが表示されたら、そのタブをアクティブにできると非常に便利です。これにより、タブの「スポットライト」タイプの機能が許可されます。

ただし、検索したタブをアクティブにするキーボードショートカットがないように思えるので、マウスでタブをクリックする必要があります。これは見落としのように思えます。Appleがタブをフィルターする良い方法を追加するとは信じられませんが、タブを選択する方法はありません!

スクリーンショット:

ここに画像の説明を入力してください


これは全く役に立たないことは知っていますが、彼らはそうするだろうと信じています。:P特に、どのように...ヨセミテの端のいくつかが一般的であるかを考えると。
tubedogg 14年

その上で何か新しいことはありますか?それは数ヶ月であり、この問題はまだ続くようです
dvcrn

High Sierraのネイティブタブを使用するすべてのアプリで、この「検索付きのすべてのタブを表示」ビューを使用できるようになりました。
スティーブモーザー

回答:


3

私はこれをしようとして次のキーの組み合わせを試しましたが、効果はありません:

  • Command + Return ... + Space
  • Option + Return ... + Space
  • Ctrl + Return ... + Space
  • Command + Shift + \(Macbookの「すべてのタブを表示」コマンド)

これは、それが本当にApple側の見落としであると信じさせてくれます。

Kludge:マウスクリックをシミュレートするAutomatorコマンドを作成する

https://discussions.apple.com/thread/3708948で見つけたコードを使用して、次のAppleScriptを作成しました。

試行1:うまくいかなかっ た「Command + Shift + Option + Control + Space」にマッピングされたAutomator ServiceにラップされたApplescriptでこのコードを実行し、「Command + Control + Shift + 4」エリアのアドレス(左から横600ピクセル、上から縦300ピクセル)を取得し、通常のSafariで機能します(キーの組み合わせを押すと、そのピクセルアドレスでマウスがクリックされます)が、 Safariの「すべてのタブを表示」モードで同じキーコマンドが実行されました。

on run {input, parameters}
    tell application "System Events"
            tell process "Safari"
                click at {600, 300}
            end tell
        end tell

        return input
    end run

試行#2:動作したが、実行不可能

Automator Serviceにラップされた次のApplescriptで動作するキーコマンドを取得しましたが、完了するには5.125秒かかりました。(

    on run {input, parameters}

    set x to 600
    set y to 150

    do shell script "
/usr/bin/python <<END
import sys
import time
from Quartz.CoreGraphics import *
def mouseEvent(type, posx, posy):
          theEvent = CGEventCreateMouseEvent(None, type, (posx,posy), kCGMouseButtonLeft)
          CGEventPost(kCGHIDEventTap, theEvent)
def mousemove(posx,posy):
          mouseEvent(kCGEventMouseMoved, posx,posy);
def mouseclick(posx,posy):
          mouseEvent(kCGEventLeftMouseDown, posx,posy);
          mouseEvent(kCGEventLeftMouseUp, posx,posy);
ourEvent = CGEventCreate(None);
currentpos=CGEventGetLocation(ourEvent);             # Save current mouse position
mouseclick(" & x & "," & y & ");
mousemove(int(currentpos.x),int(currentpos.y));      # Restore mouse position
END"
    return input
end run

これは「ベストアンサー」としてマークします。これは、このテーマに関するかなり徹底した処理であり、ほとんど不可能であることを示しているからです。ありがとうございました。
サムベラン14

少し不格好な回避策は、Shortcatを使用してタブを選択することです。
アダムリンドバーグ

3

私はあなたの答えを得たと思います。これを探して一日中過ごしました。BetterTouchTool(OS X 10.10を使用)と呼ばれるすばらしい無料アプリを使用して、すべてのAppleデバイスに追加のジェスチャーとショートカットを追加すると、すぐに動作します!遅延なし!

設定する必要がある各ステップでスクリーンショットを作成します。注:サファリを使用している場合は、選択したキーボードショートカットとしてマウス位置をバインドします。欠点:サファリのウィンドウの位置を変更することはできません。マウスの位置はノートブックのモニターとは異なります。解決策:最も頻繁に使用する画面でフルスクリーンでマウス位置をマップすることをお勧めします(または単に各画面に2つのショートカットをマップします)

  • 1アプリをダウンロードhttp://www.bettertouchtool.net

  • 2アプリを開き、キーボードを選択し、追加するショートカットにリストにアプリを追加し(この場合はSafari)、ショートカットを選択します(このスクリーンショットでは「Option + 1」をマッピングしています)。次に、トリガー選択内でメニューの[ その他のマウス操作]で[ マウスを位置に移動 ]を選択します。スクリーンショットで間違ったオプションをマークしました。それは上のオプションです。「マウスの位置を保存」ではありません。すみません、疲れています。午前3時です。明日は仕事をしなければなりません。 ここに画像の説明を入力してください

  • 3カーソルを移動する場所を選択します(UIが〜3個の結果を表示しているとき、入力ボックスの位置は最初の結果を確認します)

ここに画像の説明を入力してください

  • 4次のイベントを追加します。左クリックイベント。以上です! ここに画像の説明を入力してください

2番目、3番目の結果を得るには、異なるマウス位置で同じ操作を行いますが、結果が大きくなると、場合によっては最初の結果が非表示になることもあり、UIが変わることに注意してください。


に再マップshift+command+\ しましたcommand+d。そこで、command+d command+f ここでテキストを入力しますcommand+d
-Dzh

2

この機能を追加する前からApplescriptを使用してこれを行っています。

http://hea-www.harvard.edu/~fine/OSX/safari-tabs.html

検索ダイアログがポップアップし、検索を入力すると、すぐに単一の一致するタブがアクティブになるか、一致するタブのリストから選択するダイアログが表示されます。ウィンドウを前面に移動し、これをウィンドウ内のアクティブなタブにします。

(ターミナルウィンドウを見つけるための同様のスクリプトがあります。)


とてもかっこいい; これを試してみると思います。私の理解では、スクリプトは現在のウィンドウだけでなく、開いているすべてのウィンドウも検索するようです。あれは正しいですか?これは、通常の検索にはない機能です。
krs013

0

私はパーティーに少し遅れていますが、Shortcatが必要な機能を実行すると思います。

メールなどで使用できるようにボーナスを追加しました。


0

Automatorを使用し、AppleScriptを貼り付けて、次のようにキーボードショートカットに添付します。

作成したAppleScriptにキーボードショートカットを割り当てるにはどうすればよいですか?

set question to display dialog ("Find Safari tab:") default answer ""
set searchpat to text returned of question

tell application "Safari"
    set winlist to every window
    set winmatchlist to {}
    set tabmatchlist to {}
    set tabnamematchlist to {}
    repeat with win in winlist
        set ok to true
        try
            set tablist to every tab of win
        on error errmsg
            --display dialog name of win as string
            set ok to false
        end try
        if ok then
            repeat with t in tablist
                if searchpat is in (name of t as string) then
                    set end of winmatchlist to win
                    set end of tabmatchlist to t
                    set end of tabnamematchlist to (id of win as string) & "." & (index of t as string) & ".  " & (name of t as string)
                    --display dialog name of t as string
                else if searchpat is in (URL of t as string) then
                    set end of winmatchlist to win
                    set end of tabmatchlist to t
                    set end of tabnamematchlist to (id of win as string) & "." & (index of t as string) & ".  " & (name of t as string)
                    --display dialog name of t as string
                end if
            end repeat
        end if
    end repeat
    if (count of tabmatchlist) = 1 then
        --display dialog "one!"
        set w to item 1 of winmatchlist
        set t to item 1 of tabmatchlist
        set current tab of w to t
        set index of w to 1
    else if (count of tabmatchlist) = 0 then
        display dialog "No matches"
    else
        set whichtab to choose from list of tabnamematchlist with prompt "The following tabs match, please select one:"
        set AppleScript's text item delimiters to "."
        if whichtab is not equal to false then
            set tmp to text items of (whichtab as string)
            set w to (item 1 of tmp) as integer
            set t to (item 2 of tmp) as integer
            set current tab of window id w to tab t of window id w
            set index of window id w to 1
        end if
    end if
end tell
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.