Blueprint by Tiny
Return to Tiny.cloud
Return to Tiny.cloudTry TinyMCE for Free
Search by
Laptop keys in a pile

Creating Keyboard Shortcuts for TinyMCE

Team Tiny

October 14th, 2017

Written by

Team Tiny
Team Tiny

Category

How-tos & Tutorials

Tagged

Keyboard shortcuts and text editors are nigh-inseparable in the world of content editing productivity. You’ll be hard-pressed to find any WYSIWYG text editor without a solid set of keyboard shortcuts to improve your workflow while editing content.

TinyMCE is no exception. There are over 30 useful shortcuts in TinyMCE that improve the editing power you have over your content. All of them are perfectly compatible with Microsoft Word or LibreOffice.

If you’ve ever wondered exactly which shortcuts TinyMCE allows you to use, the documentation linked above will tell you what already exists in our shortcut feature set. We also have this infographic you can use as a quick visual reference on TinyMCE’s core editor shortcuts.

One of TinyMCE’s major strengths is its customizability. In addition to these pre-existing shortcuts, TinyMCE also gives you the ability to add your own shortcuts.

Using the tinymce.Shortcuts API, you can add two kinds of keyboard shortcuts. Both shortcuts for pre-existing functionality (features that are already part of core TinyMCE), or shortcuts for new functionality, limited only by the scope of your JavaScript knowledge.

For either of these, all it takes is a simple addition to your TinyMCE init statement. Here’s how to do it.

How to add shortcuts

First, you’ll need an initialization callback. It looks something like this:

init_instance_callback: function (editor) {
  // Shortcuts and useful things go here.
}

Nothing too major. This statement will get called as soon as TinyMCE is initialized in your browser, giving you access to the editor object before anything else happens.

You’ll need to add that right inside your tinymce.init, just like you would any other property:

tinymce.init({
  selector: ".myTinySelector",
  init_instance_callback: function(editor) {
    // Shortcuts and useful things go here.
  }
});

Adding shortcuts with pre-existing functionality

Adding shortcuts for features that are already part of TinyMCE is straightforward. Inside your init_instance_callback (that we’ve already written above), place the following line:

editor.shortcuts.add("alt+b", "A New Way To Bold", "Bold");

Here, we’ve called editor.shortcuts.add with three parameters:

  • A list of keys that activate the shortcut, separated by the + symbol
  • A description of the shortcut itself
  • A command string

More examples

You can add as many editor.shortcuts.add as you like, as long as they’re comma-separated.

init_instance_callback: function (editor) {
  editor.shortcuts.add("alt+i", "A New Way To Italicize", "Italic"),
  editor.shortcuts.add("alt+ctrl+u", "A New Way To Underline", "Underline"),
  editor.shortcuts.add("alt+shift+c", "A New Way To Copy", "Copy")
}

Adding shortcuts with new functionality

Adding shortcuts for custom functionality follows a similar process. Instead of supplying a TinyMCE command string, a function must be provided. This function can be almost anything you want, as long as it can be expressed in JavaScript. Anything you write will have access to the editor object.

Examples

init_instance_callback: function (editor) {
  editor.shortcuts.add("alt+t", "Show Me My Content", function() {
    alert(editor.getContent())
  }),
  editor.shortcuts.add("alt+ctrl+t", "Take Me To a Webpage", function() {
    window.open("https://www.ephox.com")
  }),
  editor.shortcuts.add("alt+shift+t", "Insert Some Content", function() {
    editor.execCommand("mceInsertContent", false, "Some Content")
  }),
}

Conclusion

There are a lot of benefits to adding shortcuts for either existing functionality, or new functionality expressed through custom JavaScript. TinyMCE’s many convenient shortcuts facilitate greater editing ability.

Adding your own shortcuts also significantly helps the user become more familiar in editing with TinyMCE, making your application more useful in the context of content creation when you use the editor.shortcuts API.

TinyMCE
Team Tiny
byTeam Tiny

Powering more than 40% of the world’s websites.

Related Articles

  • Text "Insert Template" with corresponding icon above.
    How-tos & Tutorials

    Making the most of templates in TinyMCE

    by Marty Friedel in How-tos & Tutorials
Subscribe for the latest insights served straight to your inbox. Delivered weekly.

Deploy TinyMCE in just 6 lines of code

Built to scale. Developed in open source. Designed to innovate.

Begin with your FREE API Key
Tiny Editor