Advanced Features

Autocompletion

It’s a sign that you’re really getting along when you can finish each other’s sentences. nvUltra has a some special features for autocompleting your thoughts.

Autocomplete Labels and Footnotes

In the nvUltra Preferences, Editing pane, under Smart editing features, you’ll find options for “Autocomplete labels” and “Autocomplete footnotes.” When one or both of these are turned on, nvUltra will keep track of what titles you use in link and footnote references, autocompleting them for you when it detects you’re adding a link or footnote marker.

For example, if you had the following in your document:

Autocomplete example
Autocomplete example

When you start to type a link, e.g. [text to link][], and your cursor is inside the second pair of square brackets, nvUltra will start offering you a list of existing links, narrowing it down as you type more characters.

Smart Autocomplete

nvUltra keeps track of words you’ve used in the current document, autocompleting those in addition to the standard dictionary. After the first time you’ve typed out an unusual word like “adscititious,” it’s in the dictionary. Start typing “ads”, hit the escape (or F5) key, and nvUltra will pop up a selection of completions for the word, including “adscititious”.

You can also edit the default dictionaries used by autocomplete to include completions in all of your documents automatically. In the nvUltra Preferences, Advanced pane, click the “Open Dictionaries Folder” button under Autocompletion. Dictionaries are text files with one word or phrase per line.

Smart Capitalization

When you use autocompletion, the case of the replaced string can be affected by the capitalization of what you’ve typed.

Text Expansion

Under the nvUltra Preferences, Advanced pane, you’ll find a section called “Text Expansion”. You can enable and disable the feature here, as well as determine whether expansion happens instantly when a snippet is typed, or requires a space/punctuation character to trigger.

To create your own expansions, click the button in the Preference pane labeled “Open Expansions Folder.” There you’ll find a Default.json file with some expansion examples that you can copy to a new file and start editing. The files are written in JSON, but even if you’re not familiar with JSON you can use the Default.json as a base to start adding your own.

Note that changes to expansions require closing the current window and re-opening to take effect.

Undo Mode

nvUltra can undo your typing actions the way you always would: hit ⌘Z and make your last edit disappear. But you can go one step further by changing your Undo Mode under the nvUltra Preferences, Advanced pane. There, you’ll choose between Regular Undo, and History Mode Undo.

To explain History Mode, we have to first look at how regular undo handles the undo history. If you make three edits, then undo them, once you type anything in the document, there’s no way to redo the other two things you just undid. They’re lost. With History Mode, if you undo the three changes, then type something, you can undo the most recent change and then still use undo/redo to move back to the changes you removed initially. Give it a try!

AppleScript Support

Using AppleScript, nvUltra can provide information about the current folder and selected note. Use it to integrate nvUltra with other apps and utilities.

tell application id "com.multimarkdown.nvUltra"
    -- target the foreground window
    set _doc to document 1 
    -- Get the URL of the parent folder for the window
    get file of _doc
    -- Get the URL of the currently selected note
    get note of _doc
    -- Get an x-nvultra:// link to the currently selected note
    get note link of _doc
end tell

URL Handler

You can use the x-nvultra: URL handler to create links that open notebooks, and search and create notes.

Methods

find
(Compatible with the nvALT and Notational Velocity url handlers)

Start a search in the frontmost window with the txt parameter:

x-nvultra://find?txt=My%20Note

The method can also be called with a path instead of a query parameter:

x-nvultra://find/My%20Note
make
(Compatible with the nvALT and Notational Velocity url handlers)
Create a new note with the specified text (and optional title)

If no title is provided, it will be created using the first line of the text

x-nvultra://make?txt=My%20note%20text&title=My%20Note%20Title

This method also accepts a notebook parameter which will open a specific folder in which to create the notebook. You can use forward slashes in the note name to create the note in a subfolder of the notebook.

x-nvultra://make?notebook=~/Dropbox/Notes&txt=My%20note%20text&title=My%20Note%20Title
open

Open and search in a specific notebook. Provide either a full path to a note, or separate notebook and note parameters:

x-nvultra://open/~/Documents/My%20Notebook/
x-nvultra://open/~/Documents/My%20Notebook/My%20Note.md
x-nvultra://open?notebook=~/Documents/My%20Notebook/&note=My%20Note.md
This method is essentially a more full-featured version of the find method, allowing specification of the parent folder. The note parameter can be used like find’s txt parameter, setting the search without having to be an exact file match.

Advanced Appearance Options

For more advanced users, you can make changes to the editor appearance beyond what the themes allow using defaults on the command line.

To set new values for the keys below, quit nvUltra, open Terminal, and run:

defaults write com.multimarkdown.nvUltra [key] [value]

To return to the default setting, use:

defaults delete com.multimarkdown.nvUltra [key]

Be sure to quit nvUltra before running defaults commands. This avoids cached values overriding your new values, and prevents deleted values from causing issues with the running application. Deleted preferences will be restored to default on the next launch.

Available defaults settings
Description Key Value Default
Font for file list NVTableFontName String: Font name Avenir
Font size for file list NVTableFontSize Number: point size 14.0
Row size for file list NVTableRowSize Number: pixels 48.0
Spacing between rows NVTableRowSpacing Number: pixels 0.0
Spacing between columns NVTableColumnSpacing Number: pixels 28.0
Divider line inset (affects width) NVTableGridLineInset Number: pixels 14.0
Note name cell padding NVTableTextPadding Number: pixels 6.0
Note selection indicator width NVTableSelectionIndicatorWidth Number: pixels 6.0
Info bar font size STInfoBarFontSize Number: point size
Info bar font name STInfoBarFontName String: Font name Helvetica
File extension whitelist textFileExtensionWhitelist Array: File extensiosn empty

Next up: Keyboard Shortcuts


Search | Support Site | Legal | Privacy