Keyboard shortcuts
The function keys, the modifier chords, the mouse, and the typed aliases — everything you can hit, on one page.
The one rule that explains the rest#
Bare printable keys are not shortcuts. They go to the command line, where they are matched against command names and aliases. L draws a line because l is LINE's alias.
So the keys a binding can own are only the ones that must never reach the command line: modifier chords, the function keys, Esc, Delete, and the mouse. Everything else on this page under "typed aliases" is text you type, not a key that is bound.
Every default here is remappable in keybindings.json — see Settings & customization.
Function keys#
Inherited unchanged from CAD convention, because this is exactly where muscle memory lives.
| Key | Toggles |
|---|---|
F1 | Help |
F2 | Expanded command history window |
F3 | Object snap (OSNAP) |
F5 | Isoplane — cycles Left → Top → Right → Off |
F6 | Dynamic UCS |
F7 | Grid display |
F8 | Ortho |
F9 | Grid snap |
F10 | Polar tracking |
F11 | Object snap tracking |
F12 | Dynamic input |
Each of these is also a command you can type — OSNAP, ORTHO, GRID, SNAP, POLAR, LWDISPLAY, AXES — taking ON / OFF or toggling on Enter. The status bar buttons, the F-keys and the typed commands all route through the same place, so they cannot disagree.
Editing and files#
| Action | Linux / Windows | macOS |
|---|---|---|
| Undo | Ctrl+Z | Cmd+Z |
| Redo | Ctrl+Shift+Z (also Ctrl+Y) | Cmd+Shift+Z |
| Cut | Ctrl+X | Cmd+X |
| Copy | Ctrl+C | Cmd+C |
| Paste | Ctrl+V | Cmd+V |
| Select all | Ctrl+A | Cmd+A |
| New | Ctrl+N | Cmd+N |
| Open | Ctrl+O | Cmd+O |
| Save | Ctrl+S | Cmd+S |
| Save As | Ctrl+Shift+S | Cmd+Shift+S |
| Plot | Ctrl+P | Cmd+P |
Keys that are not chords#
| Key | Does |
|---|---|
Enter | Accept the prompt, or repeat the last command at an idle prompt |
Space | The same as Enter at a command prompt |
Esc | Cancel the running command; press again to clear the selection |
Delete | ERASE the selection — but only when there is one, no command is running, and you are not typing |
Shift (held) | Invert the ortho state for as long as it is held |
Shift + click | Remove from the selection |
↑ / ↓ | Walk the command history |
Tab | Accept the autocomplete suggestion |
Delete is the clearest example of what a binding's when clause buys: the same key still deletes a character when the command line has focus.
Mouse#
| Gesture | Does |
|---|---|
| Left click | Pick, or answer a point request |
| Left drag → right | Window selection — only what is entirely inside |
| Left drag ← left | Crossing selection — anything inside or touching |
| Shift + left click | Remove from the selection |
| Middle drag | Pan — transparent, so it runs inside another command |
| Middle double-click | Zoom Extents |
| Wheel | Zoom, keeping the world point under the cursor fixed |
| Right click | Contextual — repeat, accept, or open a menu |
| Double-click an entity | Edit it in place |
Pan and zoom are transparent: a half-drawn line still rubber-bands after you pan, and its cursor position is correct against the new view.
Typed aliases#
These are typed at the command line, not bound to keys. The full list, and what each command asks for, is in the Command reference.
Draw#
| Alias | Command | Alias | Command |
|---|---|---|---|
L | LINE | PL | PLINE |
C | CIRCLE | A | ARC |
REC | RECTANG | EL | ELLIPSE |
PO | POINT | POL | POLYGON |
XL | XLINE | SPL | SPLINE |
H | HATCH | DIV | DIVIDE |
ME | MEASURE |
Modify#
| Alias | Command | Alias | Command |
|---|---|---|---|
E | ERASE | M | MOVE |
CO / CP | COPY | RO | ROTATE |
SC | SCALE | MI | MIRROR |
S | STRETCH | O | OFFSET |
TR | TRIM | EX | EXTEND |
F | FILLET | CHA | CHAMFER |
AR | ARRAY | BR | BREAK |
J | JOIN | X | EXPLODE |
LEN | LENGTHEN | MA | MATCHPROP |
Structure and annotation#
| Alias | Command | Alias | Command |
|---|---|---|---|
LA | LAYER | B | BLOCK |
I | INSERT | W | WBLOCK |
XR | XREF | G | GROUP |
T / MT | MTEXT | DT | TEXT |
TB | TABLE | D | DIMSTYLE |
DLI | DIMLINEAR | DAL | DIMALIGNED |
DAN | DIMANGULAR | DRA | DIMRADIUS |
DDI | DIMDIAMETER | DOR | DIMORDINATE |
DCO | DIMCONTINUE | DBA | DIMBASELINE |
LE / MLD | LEADER / MLEADER | UN | UNITS |
View, inquiry and settings#
| Alias | Command | Alias | Command |
|---|---|---|---|
Z | ZOOM | P | PAN |
RE | REGEN | V | VIEW |
MS / PS | MSPACE / PSPACE | PR | PROPERTIES |
DI | DIST | AA | AREA |
LI | LIST | U | UNDO |
OS | OSNAP settings | DS | Drafting settings |
POLARANG | Polar increment |
Three dimensions#
| Alias | Command | Alias | Command |
|---|---|---|---|
UCS | UCS | UC | UCS manager |
PLAN | Plan view | 3DO | 3D orbit |
VS | Visual style | HI | HIDE |
ELEV | Elevation / thickness | BOX | BOX |
CYL | CYLINDER | CONE | CONE |
SPHERE | SPHERE | TOR | TORUS |
WE | WEDGE | PYR | PYRAMID |
EXT | EXTRUDE | REV | REVOLVE |
SW | SWEEP | LOFT | LOFT |
PP | PRESSPULL | UNI | UNION |
SU | SUBTRACT | IN | INTERSECT |
3M | 3DMOVE | 3R | 3DROTATE |
AL | ALIGN | SL | SLICE |
SEC | SECTION | FSHOT | FLATSHOT |
Classic system variable names#
The classic sysvar names still work as command-line aliases over Draft's named settings — typing LTSCALE finds the linetype scale, PDMODE finds the point style. You never have to learn a numeric code to change a point style, but you never have to unlearn the name either.
Remapping#
keybindings.json maps an input to a command id, with an optional when clause:
{
"key": "Delete",
"command": "drafting.command.erase",
"when": "selection && !commandActive && !typing"
}
Only the keys you specify are overridden — your file is merged over the shipped defaults rather than replacing them.