Keyboard shortcuts

Draw faster. Edit faster. Don't touch the mouse more than necessary.

Element Editor has two categories of shortcuts: fixed shortcuts that cannot be changed, and configurable shortcuts that each user can remap to their preferred key. Shortcuts do not fire when focus is inside an input field, textarea, or any other form control.

Shortcuts are also scoped to their editor. A key acts on an editor only when focus is inside it, or when focus is on the page itself (not in another control) and your last click was inside that editor. With two editors on one page, keys go to the one you last used; your host page's own modals and inputs keep their keys, including Escape. A single editor on the page also responds before you've clicked it. If you add your own portaled UI (a menu or dialog attached to body), give its root a data-elm-portal attribute so the editor's shortcuts keep working while it has focus.

Keyboard keys floating over circles drawn on the map.
Draw and edit from the keyboard.

Fixed shortcuts

These shortcuts are built into the editor and cannot be remapped:

ShortcutAction
Cmd+Z / Ctrl+ZUndo
Cmd+Shift+Z / Ctrl+Shift+ZRedo
Cmd+A / Ctrl+ASelect all features
Cmd+C / Ctrl+CCopy selected features (writes a GeoJSON FeatureCollection to the system clipboard, so paste works across tabs)
Cmd+V / Ctrl+VPaste
Cmd+D / Ctrl+DDuplicate selected features
Cmd+E / Ctrl+EOpen edit/detail panel for the selected feature
Cmd+G / Ctrl+GGroup selected features into a new group
Cmd+J / Ctrl+JToggle "Return to select after each shape" (off by default: the drawing tool stays active after a shape)
Cmd+O / Ctrl+OImport a GeoJSON file (replaces the data, fits the map; same as dropping a file on the map)
Cmd+S / Ctrl+SExport a GeoJSON file
Cmd+Shift+G / Ctrl+Shift+GUngroup selected features
Cmd+F / Ctrl+FSearch / geocode (Enter goes to the highlighted or first result, ↑ / ↓ pick one)
Delete / BackspaceDelete selected features (or selected vertices in vertex edit mode)
EnterFinish drawing (commit line / area / route) — also toggles vertex edit on a selected line or area
EscapeCancel drawing / exit vertex edit / deselect, then close the open window (shortcuts, settings, schema); inside a window it closes that window

Opt-in shortcuts

Disabled by default. Enable via config.ui.keyboardShortcuts.mapZoom = true.

ShortcutAction
Cmd++ / Ctrl++ (or Cmd+=)Zoom map in by one level
Cmd+- / Ctrl+-Zoom map out by one level

These intercept the browser's page-zoom shortcut, so they are off by default and only fire while the cursor is over the editor and no input is focused. Outside the editor (or while typing in any field) the browser's normal page-zoom behavior is preserved.


Configurable shortcuts

These defaults can be remapped by each user. Press K to open the shortcuts panel and click any row to assign a new key.

Default keyActionShortcut ID
PPlace pointplace-point
LDraw linedraw-line
GDraw areadraw-polygon
RDraw rectangledraw-rect
ODraw circledraw-circle
CDraw routedraw-route
FDraw freehanddraw-freehand
XPickerpicker
MMeasuremeasure
AToggle transformtoggle-transform
HCut holecut-hole
JSlice shapeslice-shape
BBreak apartbreak-apart
TToggle data tabletoggle-table
SToggle schema editortoggle-schema
IToggle GeoJSON inspectortoggle-geojson
/Toggle layers paneltoggle-sidebar
KShow shortcuts panelshow-shortcuts
ZSet zoom level (opens the zoom input with the number selected)set-zoom

Customising shortcuts

Press K to open the shortcuts panel. Click any action row and press the key you want to assign. The new binding takes effect immediately.

Conflict detection: Element warns if you attempt to bind a key already in use by another action. You must resolve the conflict before the new binding is saved.

Read-only mode: with readonly, the shortcuts that edit (tool keys except Measure, Delete, undo/redo, duplicate, paste, group, import, vertex edit, transform) do nothing; viewing ones (select all, copy, export, measure, panels) still work.

Tool suppression: If tools (or config.tools) is set on the editor, keyboard shortcuts for excluded tools are suppressed automatically. A tool that isn't available in the toolbar doesn't respond to its key.


Persistence

Custom bindings are saved to localStorage under the key elm_shortcuts (elm_<persistKey>_shortcuts with config.persistKey; nothing is saved with config.persist: false). Bindings survive page reloads and persist until the user clears their browser storage or explicitly resets shortcuts in the panel.

Note: Custom bindings are per-browser, per-origin. If a user opens the editor on a different device or in a different browser profile, they start with the default bindings.