The Editor and Viewer#

This chapter covers in more detail how the document editor and viewer panels work.

Editing a Document#


A screenshot of the Document Editor panel.#

To edit a document, double-click it in the project tree, or press the Return key while having it selected. This will open the document in the document editor. The editor uses a Markdown-like syntax for some features, and a novelWriter-specific syntax for others. The syntax format is described in the Formatting Your Text chapter.

The editor has a maximise button, which toggles the Focus Mode, and a close button in the top–right corner. On the top–left side you will find a tools button that opens a toolbar with a few buttons for applying text formatting, a drop down menu for navigating between headings, and a search button to open the search dialog.

Both the document editor and viewer will show the label of the currently open document in the header at the top of the edit or view panel. Optionally, the full project path to the document can be shown. This can be set in Preferences.


Clicking on the document title bar will select the document in the project tree and thus reveal its location there, making it easier to find in a large project.

Any references in the editor can be opened in the viewer by moving the cursor to the label and pressing Ctrl+Return. You can also control-click them with your mouse.

Editor Auto-Completer#

If you type the character @ on a new line, a pop-up menu will appear showing the different available keywords. The list will shorten as you type. Once a keyword command has been selected or typed, the editor may suggest further options based on your project content. See The References Auto-Completer for more details.

New in version 2.2.

Viewing a Document#


A screenshot of the Document Viewer panel.#

Any document in the project tree can also be viewed in parallel in a right hand side document viewer. To view a document, press Ctrl+R, or select View Document in the menu or context menu. If you have a middle mouse button, middle-clicking on the document will also open it in the viewer.

The document viewed does not have to be the same document as the one currently being edited. However, If you are viewing the same document, pressing Ctrl+R again will update the document with your latest changes. You can also press the reload button in the top–right corner of the viewer panel, next to the close button, to achieve the same thing.

In the viewer references become clickable links. Clicking them will replace the content of the viewer with the content of the document the reference points to.

The document viewer keeps a history of viewed documents, which you can navigate with the arrow buttons in the top–left corner of the viewer. If your mouse has backward and forward navigation buttons, these can be used as well. They work just like the backward and forward features in a browser. The left-most button is a dropdown menu for quickly navigation between headings in the document.

At the bottom of the view panel there is a References panel. (If it is hidden, click the button on the left side of the footer area to reveal it.) This panel contains a References tab with links to all documents referring back to the one you’re currently viewing, if any has been defined. If you have created root folders and tags for various story elements like characters and plot points, these will appear as additional tabs in this panel.


The References panel relies on an up-to-date index of the project. The index is maintained automatically. However, if anything is missing, or seems wrong, the index can always be rebuilt by selecting Rebuild Index from the Tools menu, or by pressing F9.

New in version 2.2: The reference panel was redesigned and the additional tabs added.

Search & Replace#


A screenshot of the Document Editor search box.#

The document editor has a search and replace tool that can be activated with Ctrl+F for search mode or Ctrl+H for search and replace mode.

Pressing Return while in the search box will search for the next occurrence of the word, and Shift+Return for the previous. Pressing Return in the replace box, will replace the highlighted text and move to the next result.

There are a number of settings for the search tool available as toggle switches above the search box. They allow you to search for, in order: matched case only, whole word results only, search using regular expressions, loop search when reaching the end of the document, and move to the next document when reaching the end. There is also a switch that will try to match the case of the word when the replacement is made. That is, it will try to keep the word upper, lower, or capitalised to match the word being replaced.

The regular expression search is somewhat dependant on which version of Qt your system has. If you have Qt 5.13 or higher, there is better support for Unicode symbols in the search.

See also

For more information on the capabilities of the Regular Expression option, see the Qt documentation for the QRegularExpression class.

Auto-Replace as You Type#

A few auto-replace features are supported by the editor. You can control every aspect of the auto-replace feature from Preferences. You can also disable this feature entirely if you wish.


If you don’t like auto-replacement, all symbols inserted by this feature are also available in the Insert menu, and via Insert Shortcuts. You may also be using a Compose Key setup, which means you may not need the auto-replace feature at all.

The editor is able to replace two and three hyphens with short and long dashes, triple points with ellipsis, and replace straight single and double quotes with user-defined quote symbols. It will also try to determine whether to use the opening or closing symbol, although this feature isn’t always accurate. Especially distinguishing between closing single quote and apostrophe can be tricky for languages that use the same symbol for these, like English does.


If the auto-replace feature changes a symbol when you did not want it to change, pressing Ctrl+Z once after the auto-replacement will undo it without undoing the character you typed before it.