34

I write blog posts, and I often need to type en-dash (–) and sometimes em-dash (—) in my blog posts. Currently I keep these characters saved in a text file, and copy-paste them whenever I need them. Unnecessary to say, it is a headache to move between keyboard and mouse when you type large texts.

It would be better for me if there ware a keyboard shortcuts available for these two characters. Is there a way to type en-dash and em-dash in Windows? I use Windows 7 and Windows 8 in different computers.


Here's an aligned comparison of dashes, if you need to see the difference for some reason.

  1. Here's-dash
  2. Here's–en-dash
  3. Here's—em-dash
5
  • 1
    Your #1 is a "hyphen-minus". It is also important not to confuse these with U+2212: MINUS SIGN (−). Sep 13, 2014 at 22:41
  • The accepted answer is great, but I want to add that you don't need the mouse to copy and paste the dashes from your text file. Assuming you have your text file and the document you're typing open in two different windows, when you get to the spot where you want a dash, you can: 1. Use Alt+Tab to switch between them 2. Use the arrow keys to get to the dash you want 3. Hold down Shift+Arrow key to highlight the dash 4. Ctrl+C to copy 5. Alt+Tab back to your document 6. Ctrl+V to paste
    – nstenz
    Sep 13, 2014 at 22:48
  • 2
    If you don't mind using a 3rd party tool, I'd recommend WinCompose. en-dash is then [hotkey]--. and em-dash [hotkey]---
    – Berend
    Aug 26, 2016 at 6:39
  • Depending on where you’re from, there may be appropriate keyboard layouts (like German T2).
    – Daniel B
    Aug 26, 2016 at 8:19
  • Pragmatical way for infrequent use and with a laptop without a numerical keyboard or num lock: google for "en dash windows" and copy/paste from characters from this post.
    – simon
    Dec 21, 2017 at 16:48

6 Answers 6

36

If you have a numpad, turn numlock on and use Alt + 0150 for en-dash and Alt + 0151 for em-dash. That is keep Alt pressed and type the numbers on the numeric keypad.

EDIT: As @gronostaj points out, this works with only left Alt.

8
  • 9
    It's worth noting that it works only with left Alt.
    – gronostaj
    Sep 13, 2014 at 17:59
  • 1
    @gronostaj: Thanks for the info. Luckily I typed with left alt. Otherwise I would not have accepted the answer. Sep 13, 2014 at 18:01
  • 3
    Just checked, this works for me with right Alt as well. I was using autohotkey to map right Alt to left Alt for a while but not anymore. Maybe it is keyboard dependent
    – Vamsi
    Sep 13, 2014 at 18:09
  • 2
    It also requires a 10-key. Sep 13, 2014 at 18:29
  • 1
    Well in my laptop I can use both alt keys as well. Sep 13, 2014 at 19:22
11

For anyone looking for a slightly faster (although not-native) solution, I have made an AutoHotKey program that lets you type Em and En dashes somewhat naturally. I really made it for myself, but it's on Github if anyone's interested.

It's called Em-n-en.

The entire point of this program is to allow a user to quickly insert an em/en dash by typing ==- (Em dash) or --= (En dash). There are other methods for inserting the dashes - these are covered in the program itself. Note that this only works on windows.

Hopefully this is helpful! :)

2
  • Could you possible expand on how the OP would make use of your software? Please see How to recommend software
    – Burgi
    Aug 26, 2016 at 7:54
  • 1
    +1 for clever and appropriate use of a candy name for your AHK script. It would be nice to see the actual code in your answer.
    – ChrisB
    Jun 25, 2018 at 23:02
7

As of Windows 10 Version 1903, you can enter en-dash, em-dash, and various other symbols in a much simpler way using the updated Emoji panel:

Just type Win + . (or Win + ;) and select the omega symbol on the top of the panel.

If you don't want to take your hands off the keyboard, you can select the omega symbol using TAB and arrow keys.

1
  • 1
    Yass! Winner on Windows 10.
    – Levente
    Feb 15, 2021 at 17:46
2

To find any character you need, use "Character Map" - note the text in the lower right corner.
Note also that the availabilty of a character depends on the typeface (Font) that you have active.

WindowsXP version

You use Character map to find out which character and what "Keystroke" (above) it can be generated with. Then you do not need Character map any more - assumed you can remember the number or keys to type/use. Note that some are available also with Alt/Shift/Control - as in Alt+Space == either of Em or En space (can't remember which it is right now and no W-computer to try it out on).

5
  • Thanks for the answer. Character map is how I initially found the two characters. My requirement was that I should not need to move my hand to mouse from my keyboard. That's why I asked the question. Sep 13, 2014 at 20:12
  • 2
    Yes? You use Character map to find out which character and what "Keystroke" (above) it can be generated with. Then you do not need Character map any more - assumed you can remember the number or keys to type/use. Note that some are available also with Alt/Shift/Control - as in Alt+Space == either of Em or En space (can't remember which it is right now and no W-computer to try it out on).
    – Hannu
    Sep 13, 2014 at 20:17
  • This may help also: windows.microsoft.com/en-us/windows/… - especially "How do I create private character"
    – Hannu
    Sep 13, 2014 at 20:27
  • And this: howtogeek.com/howto/21187/…
    – Hannu
    Sep 13, 2014 at 20:29
  • @Hannu Alt+Space just opens the current window's system menu (the one with restore, move, close...). Some programs, like Microsoft Word, may have other shortcuts for em and en dashes, but the only shortcut that works everywhere is the Alt+numpad key combination. Jan 25, 2019 at 16:11
0

As an alternative way, you can use a clipboard manager like ClipX with the "Stickies" plugin. If you store proper en dash into the list, entering it is just Ctrl+Alt+V (or whatever shortcut is configured to show the list) followed by A.

0

Via AutoHotKey:

Create a script like dashes.ahk somewhere on your computer:

; en dash
::--::–

; bonus point: em dash
::---::—

Make sure it's stored as UTF-8 with BOM. Double click it and try typing -- followed by space somewhere; it will replace it with n-dash.

Similarly for m-dash.

Not the answer you're looking for? Browse other questions tagged or ask your own question.