Skip to content

Instantly share code, notes, and snippets.

@joelpt
Created April 16, 2012 18:51
Show Gist options
  • Save joelpt/2400685 to your computer and use it in GitHub Desktop.
Save joelpt/2400685 to your computer and use it in GitHub Desktop.
Go To Anything for Autohotkey - highlight some text, hit Win+G and "go"!
;; Go to anything that is in the currently selected text: URLs, email addresses, Windows paths, or just "Google it"
;; Forum topic: http://www.autohotkey.com/community/viewtopic.php?f=2&t=85152&p=537116
$#G::
;Tip("Clipping...") ;; include my mouse-tip library for this https://gist.github.com/2400547
clip := CopyToClipboard()
if (!clip) {
return
}
addr := ExtractAddress(clip)
if (!addr)
{
; Google it
;Tip("Searching for [" SubStr(clip, 1, 50) "] ...")
addr := "http://www.google.com/search?q=" . clip
}
else {
; Go to it using system's default methods for the address
;Tip("Going to " Substr(addr, 1, 25) " ...")
}
Run %addr%
return
;; utility functions
;; Safely copies-to-clipboard, restoring clipboard's original value after
;; Returns the captured clip text, or "" if unsuccessful after 4 seconds
CopyToClipboard()
{
; Wait for modifier keys to be released before we send ^C
KeyWait LWin
KeyWait Alt
KeyWait Shift
KeyWait Ctrl
; Capture to clipboard, then restore clipboard's value from before capture
ExistingClipboard := ClipboardAll
Clipboard =
SendInput ^{Insert}
ClipWait, 4
NewClipboard := Clipboard
Clipboard := ExistingClipboard
if (ErrorLevel)
{
MsgBox, The attempt to copy text onto the clipboard failed.
;Tip("The attempt to copy text onto the clipboard failed.")
return ""
}
return NewClipboard
}
;; Extracts an address from anywhere in str.
;; Recognized addresses include URLs, email addresses, domain names, Windows local paths, and Windows UNC paths.
ExtractAddress(str)
{
if (RegExMatch(str, "S)((http|https|ftp|mailto:)://[\S]+)", match))
return match1
if (RegExMatch(str, "S)(\w+@[\w.]+\.(com|net|org|gov|cc|edu|info))", match))
return "mailto:" . match1
if (RegExMatch(str, "S)(www\.\S+)", match))
return "http://" . match1
if (RegExMatch(str, "S)(\w+\.(com|net|org|gov|cc|edu|info))", match))
return "http://" . match1
if (RegExMatch(str, "S)([a-zA-Z]:[\\/][\\/\-_.,\d\w\s]+)", match))
return match1
if (RegExMatch(str, "S)(\\\\[\w\-]+\\.+)", match))
return match1
return ""
}
@crypta8
Copy link

crypta8 commented Aug 24, 2016

Hi,
I am a newbie here and was desperately looking for a way to send an highlighted text (not URL) to browser and bumped into this short script.
So got it. Just... I need some ABC to understand where (blush) I have to write it down, in the Developer tool in Chrome browser or?
Sorry for this "stupid" question but I'd need some tips to start with...
Thanks in advance for your patience... :)

Beppe

@walbjorn
Copy link

Hello,
I have been using this script for a while - much appreciation for sharing. However, since I've gone over to Firefox from Chrome, whenever I use the hotkey, the Firefox window is de-selected. This results in me having to click the Firefox window to continue browsing. Does anyone have an idea of how to fix this?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment