I was working on Systematic show notes today and, as always, making good use of SearchLink for quickly adding links to my notes. Then I ran into a LinkedIn handle and decided I needed a faster way to do that. Fast forward an hour.

Yes, I could have opened a browser, searched for the username, and copied the url 120 times in the time it took me to do this, but next time it’s going to be a cinch.

For a while now SearchLink has had the ability to turn @ttscoff into [@ttscoff](https://twitter.com/ttscoff), but not many other services, and that shorthand version only worked with Twitter. So, as of 2.2.16, you can now type i@ttscoff and get [instagram.com/ttscoff](https://www.instagram.com/ttscoff/) or l@BrettTerpstra and get [linkedin.com/in/BrettTerpstra](https://www.linkedin.com/in/BrettTerpstra/).

The services handled are Twitter (t), Facebook (f), Instagram (i) and LinkedIn (l). These work as above in single-line searches, or using the full syntax like [](!@i ttscoff), which is replaced with [instagram.com/ttscoff](https://www.instagram.com/ttscoff/).

The format of the linked text can be defined in your ~/.searchlink configuration file. The configuration option is social_template and uses the placeholders %url%, %user%, and %service%. You can combine these any way you like. As you can see in the examples above, my template is set to use an abbreviated url, e.g. social_template: "%url%". You can easily make them look like “ttscoff on Instagram” or “Instagram/ttscoff” with the placeholders. See the docs for details.

It’s a minor update, but as someone who interviews a lot of people, I’m constantly turning handles into links for show notes. This saves me a bunch of steps, so I’m not ashamed.

SearchLink v2.3.65

Generate Markdown links from web searches without leaving your editor.

Published 11/10/14.

Updated 01/16/24. Changelog

DonateMore info…

P.S. TextBuddy Stuff

An addendum because it’s so simple it doesn’t deserve its own post… I added another TextBuddy script that takes a bunch of methods in an Objective-C implementation file and turns them into declarations to stick in your interface. Basically just turns:

- (NSString *)myMethod:(NSString *)param {

- (NSString *)anotherMethod:(NSString *)param {


- (NSString *)myMethod:(NSString *)param;
- (NSString *)anotherMethod:(NSString *)param;

It’s another one that there used to be an Xcode plugin for and I missed it.

You can find my slowly growing collection of TextBuddy scripts on GitHub.