Blueprint by Tiny
Return to Tiny.cloud
Return to Tiny.cloudTry TinyMCE for Free
Search by

Creating Keyboard Shortcuts for TinyMCE

Ben Cream

October 14th, 2017

Written by

Ben Cream

Category

Tips & How-Tos

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
byBen Cream

Engineer at Tiny

Related Articles

  • Tips & How-Tos

    How to add TinyMCE 5 to a simple Angular project

    by Simon Fjeldså in Tips & How-Tos

Build beautiful content for the web with Tiny.

The rich text editing platform that helped launch Atlassian, Medium, Evernote and more.

Begin my FREE 30 day trial
Tiny Editor