Skip to content

Questions and forms ​

Some text is almost the same every time: a reply where only the name changes, a bug report with the same headings, a form you fill in every week. Put questions in the snippet, and the picker asks before it pastes.

The picker asks before pasting:

What gets pastedHi Jordan, Thanks for your message. I’ll get back to you today. Best regards, Alex Morgan Northwind Studio
Saved variables
{{var:Name}} = Alex Morgan{{var:Email}} = [email protected]{{var:Company}} = Northwind Studio
Snippet “Signature”
Best regards, {{var:Name}} {{var:Company}}

Pro Uses choice lists, snippets inside snippets, variables.

Ask for a value ​

{{input:Label}} asks for a value and pastes your answer. The label is what the question is called.

Snippet

text
Hi {{input:Name}},

Thanks for your order! It ships today.

The picker asks for Name; you type Jordan

text
Hi Jordan,

Thanks for your order! It ships today.

Use the same label twice and it's asked only once:

text
Dear {{input:Name}}, … Thanks again, {{input:Name}}.

A plain {{input:Label}} is free, and it works like the Chrome extension's, so imported snippets keep asking.

Default answers Pro ​

{{input:Label=Answer}} fills the question in for you. Press Return to keep the answer, or type over it.

text
Hi {{input:Name=there}},

pastes “Hi there,” if you just press Return.

Longer answers Pro ​

End the label with … (or three dots ...) for a multi-line field. In it, Return starts a new line and ⌘Return finishes.

text
Bug report

Steps to reproduce:
{{input:Steps…}}

Expected: {{input:Expected}}
Actual: {{input:Actual}}

Choice lists Pro ​

{{choose:Label=A|B|C}} offers a pop-up menu. The first choice is selected to start with.

Snippet

text
Hi {{input:Name}},

{{choose:Answer=Thanks, that works for me.|Could we move it to next week?|Sorry, I can't make it this time.}}

Best,
Alex

You pick the second answer

text
Hi Jordan,

Could we move it to next week?

Best,
Alex

The label is optional: {{choose:Yes|No}} works too, and the question is called “Choose one”.

Fill in a form Pro ​

{{tab}} presses Tab and {{enter}} presses Return while pasting. That moves through a web form's fields, so one snippet can fill in all of them.

Snippet

text
{{var:Name}}{{tab}}{{var:Email}}{{tab}}{{input:Subject=Question about my order}}{{tab}}{{input:Message…}}{{enter}}

What happens

text
Alex Morgan        ⇥ (next field)
[email protected]  ⇥
Question about my order  ⇥
Hi! My order hasn't arrived…
↩ (submits the form)

Click into the first field, press ⌥⌘V, choose the snippet, answer the questions, and HandyPaste types each part and presses the keys in between.

Good to know:

  • It stops if you do. Press Esc or switch to another app, and the rest isn't typed.
  • Leave out {{enter}} if you'd like to check the form before sending it.
  • Copying types the keys as characters. With ⌘Return, {{tab}} becomes a tab character and {{enter}} a new line, which is handy for pasting rows into a spreadsheet.
  • A snippet can press up to 50 keys; beyond that it's pasted as text.

Spreadsheet rows

The same trick fills a row in Numbers or Excel: {{input:Date}}{{tab}}{{input:Amount}}{{tab}}{{input:Category}}{{enter}}.

Example: a support macro ​

Everything together, a reply support agents send dozens of times a day:

text
Hi {{input:Customer name=there}},

Thanks for contacting {{var:Company}} support.

{{choose:Topic=Your refund has been approved and will arrive in 3–5 business days.|We've sent a replacement, which should arrive within a week.|Could you send us a photo of the item so we can take a look?}}

{{input:Anything else…}}

{{snippet:Signature}}

The picker asks three things (the name, pre-filled with “there”; the topic; anything else to add) and fills in your company name and signature on its own.

No placeholders inside a choice or an answer

A choice list or a default answer can't contain another placeholder: in {{choose:Ships {{date+3d}}|Delayed}} the list is pasted as typed. Put the date next to the list instead:

text
{{choose:Status=Shipped|Delayed}}, expected by {{date+3d:EEEE d MMMM}}