# Keyboard shortcut

In computing, a keyboard shortcut (also hotkey/hot key or key binding) is a software-based assignment of an action to one or more keys on a computer keyboard. Most operating systems and applications come with a default set of keyboard shortcuts, some of which may be modified by the user in the settings.
Keyboard configuration software allows users to create and assign macros to key combinations which can perform more complex sequences of actions. Some older keyboards had a physical macro key specifically for this purpose.

## Terminology

The precise words used for these assignments and their meaning can vary depending on the context.
For example, Microsoft has generally used keyboard shortcuts for Windows and Microsoft Office since the transition to 64-bit for Windows 7. However, they used hot keys prior to that and continue to do so in their 32-bit API for developing 'classic desktop apps'. Meanwhile, Lenovo and ASUS each have keyboard configuration software made for Windows that are named "Lenovo Hotkeys" and "ASUS Keyboard Hotkeys" respectively.
The assignment process is referred to as mapping the actions to the keys, and changing them afterwards is therefore remapping. The assigned action is then said to be bound to the key, leading to the phrase key binding being used interchangeably with shortcut and hotkey.
As other input devices became increasingly configurable in the early 2000's, the term shortcut began to be used to refer to what are essentially keyboard shortcuts being mapped to objects that are not keyboard keys. The most prevalent of these are computer mice, which went from only having two buttons for left and right clicks to having additional buttons on the around the side, top, and back of the mice (2-4 for common usage and up to 12 extra programmable buttons for certain types of gaming uses).
As Internet of things (IoT) devices continue to proliferate, shortcuts are appearing in many other device types such as electronic keyboards, home automation devices, wearable technology, and more.
Human-computer interaction experts also continue to design new types of shortcuts altogether, such as gestures on touchscreens and touchless interfaces.

## Description

Keyboard shortcuts are typically a means for invoking one or more commands using the keyboard that would otherwise be accessible only through a menu, a pointing device, different levels of a user interface, or via a command-line interface. Keyboard shortcuts are generally used to expedite common operations by reducing input sequences to a few keystrokes, hence the term "shortcut".
To differentiate from general keyboard input, most keyboard shortcuts require the user to press and hold several keys simultaneously or a sequence of keys one after the other. Unmodified key presses are sometimes accepted when the keyboard is not used for general input - such as with graphics packages e.g. Adobe Photoshop or IBM Lotus Freelance Graphics. Other keyboard shortcuts use function keys that are dedicated for use in shortcuts and may only require a single keypress. For simultaneous keyboard shortcuts, one usually first holds down the modifier key(s), then quickly presses and releases the regular (non-modifier) key, and finally releases the modifier key(s). This distinction is important, as trying to press all the keys simultaneously will frequently either miss some of the modifier keys, or cause unwanted auto-repeat. Sequential shortcuts usually involve pressing and releasing a dedicated prefix key, such as the Esc key, followed by one or more keystrokes.
Mnemonics are distinguishable from keyboard shortcuts. One difference between them is that the keyboard shortcuts are not localized on multi-language software but the mnemonics are generally localized to reflect the symbols and letters used in the specific locale. In most GUIs, a program's keyboard shortcuts are discoverable by browsing the program's menus – the shortcut is indicated next to the menu choice. There are keyboards that have the shortcuts for a particular application already marked on them. These keyboards are often used for editing video, audio, or graphics, as well as in software training courses. There are also stickers with shortcuts printed on them that can be applied to a regular keyboard. Reference cards intended to be propped up in the user's workspace also exist for many applications. In the past, when keyboard design was more standardized, it was common for computer books and magazines to print cards that were cut out, intended to be placed over the user's keyboard with the printed shortcuts noted next to the appropriate keys.

## Customization

When shortcuts are referred to as key bindings, it carries the connotation that the shortcuts are customizable to a user's preference and that program functions may be 'bound' to a different set of keystrokes instead of or in addition to the default. This highlights a difference in philosophy regarding shortcuts. Some systems, typically end-user-oriented systems such as Mac OS or Windows, consider standardized shortcuts essential to the environment's ease of use. In these commercial proprietary systems, the ability to change the default bindings and add custom ones can be limited, possibly even requiring a separate or third-party utility to perform the task, sometimes with workarounds like key remapping. In macOS, user can customize app shortcuts ("Key equivalents") in system settings, and customize text editing shortcuts by creating and editing related configuration files. Other systems, typically Unix and related, consider shortcuts to be a user's prerogative, and that they should be customizable to suit individual preference. In most real-world environments, both philosophies co-exist; a core set of sacred shortcuts remain fixed while others, typically involving an otherwise unused modifier key or keys, are under the user's control.
The motivations for customizing key bindings vary. Users new to a program or software environment may customize the new environment's shortcuts to be similar to another environment with which they are more familiar. More advanced users may customize key bindings to better suit their workflow, adding shortcuts for their commonly used actions and possibly deleting or replacing bindings for less-used functions. Hardcore gamers often customize their key bindings in order to increase performance via faster reaction times.

### Reserved Keyboard Shortcuts

The original Macintosh User Interface Guidelines defined a set of keyboard shortcuts that would remain consistent across application programs. This provides a better user experience than the then-prevalent situation of applications using the same keys for different functions. This could result in user errors if one program used ⌘ Command+D to mean Delete while another used it to Duplicate an item. The standard bindings were:
* ⌘ Q : Quit
* ⌘ W : Close Window
* ⌘ B : Bold text
* ⌘ I : Italicize text
* ⌘ U : Underline text
* ⌘ O : Open
* ⌘ P : Print
* ⌘ A : Select All
* ⌘ S : Save
* ⌘ F : Find
* ⌘ G : Find Again (the G key is next to the F key on a QWERTY keyboard)
* ⌘ E : Enter search string from selection (allowed searching a document by selecting text and typing ⌘ E⌘ G (exempli gratia)
* ⌘ Z : Undo (represents the do-undo-redo cycle)
* ⌘ X : Cut (resembles scissors or a general sign for removal – and the X key is next to the C key on a QWERTY keyboard)
* ⌘ C : Copy
* ⌘ V : Paste (resembles the proofreader's mark for "insert" – and the V key is next to the C key on a QWERTY keyboard)
* ⌘ N : New Document
* ⌘ . (full stop): User interrupt, it can be used to close dialogs, search bars, and context menus.
* ⌘ ? : Help (? signifies a question or confusion)
Later environments such as Microsoft Windows retain some of these bindings, while adding their own from alternate standards like Common User Access. The shortcuts on these platforms (or on macOS) are not as strictly standardized across applications as on the early Macintosh user interface, where if a program did not include the function normally carried out by one of the standard keystrokes, guidelines stated that it should not redefine the key to do something else as it would potentially confuse users.

## Notation

The simplest keyboard shortcuts consist of only one key. For these, one generally just writes out the name of the key, as in the message "Press F1 for Help". The name of the key is sometimes surrounded in brackets or similar characters. For example: [F1] or <F1>. The key name may also be set off using special formatting (bold, italic, all caps, etc.)
Many shortcuts require two or more keys to be pressed simultaneously. For these, the usual notation is to list the keys names separated by plus signs or hyphens. For example: "Ctrl+C", "Ctrl-C", or "Ctrl+C". The Ctrl key is sometimes indicated by a caret character (^). Thus Ctrl-C is sometimes written as ^C. At times, usually on Unix platforms, the case of the second character is significant – if the character would normally require pressing the Shift key to type, then the Shift key is part of the shortcut e.g. '^C' vs. '^c' or '^%' vs. '^5'. ^% may also be written "Ctrl+⇧ Shift+5".
Some keyboard shortcuts, including all shortcuts involving the Esc key, require keys (or sets of keys) to be pressed individually, in sequence. These shortcuts are sometimes written with the individual keys (or sets) separated by commas or semicolons. The Emacs text editor uses many such shortcuts, using a designated set of "prefix keys" such as Ctrl+C or Ctrl+X. Default Emacs keybindings include Ctrl+X Ctrl+S to save a file or Ctrl+X Ctrl+B to view a list of open buffers. Emacs uses the letter C to denote the Ctrl key, the letter S to denote the Shift key, and the letter M to denote the Meta key (commonly mapped to the Alt key on modern keyboards.) Thus, in Emacs parlance, the above shortcuts would be written C-x C-s and C-x C-b. A common backronym for Emacs is "Escape Meta Alt Ctrl Shift", poking fun at its use of many modifiers and extended shortcut sequences.