In computing, a keyboard shortcut is a series of one or several keys that invoke a software program to perform a preprogrammed action. This action may be part of the standard functionality of the operating system or application program, or it may have been written by the user in a scripting language.
The meaning of term "keyboard shortcut" can vary depending on software manufacturer. For instance, Microsoft differentiates keyboard shortcuts from hotkeys ("mnemonics" on Windows) whereby the former consists of a specific key combination used to trigger an action, and the latter represents a designated letter in a menu command or toolbar button that when pressed together with the Alt key, activates such command--whereas a "hotkey" on Windows is a system wide shortcut that is always available in all contexts as long as the program responsible for it is running and not suspended.[ambiguous]
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.
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. These systems usually limit a user's ability to change shortcuts, possibly even requiring a separate or third-party utility to perform the task. Other systems, typically Unix and related, consider shortcuts to be a user's prerogative, and that they should be changeable 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.
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 + to mean Delete while another used it to Duplicate an item. The standard bindings were:
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.
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 together. For these, the usual notation is to list the keys names separated by plus signs or hyphens. For example: "Ctrl+C", "Ctrl-C", or "+". 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 "++".
Some keyboard shortcuts, including all shortcuts involving the 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 + or +. Default Emacs keybindings include + + to save a file or + + 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.
Emacs does not assign meanings to keys directly. Instead, Emacs assigns meanings to named commands, and then gives keys their meanings by binding them to commands.
If your app does not perform the task associated with a recommended shortcut, think very carefully before you consider overriding it. Remember that although reassigning an unused shortcut might make sense in your app, your users are likely to know and expect the original, established meaning.