User manual

Bryan A. Jones edited this page Nov 25, 2015 · 28 revisions

Internal documentation for developers is here.

The best documentation is a clear UI and consistent behavior. Therefore, this manual won't try to describe every button and menu. If you are having problems with copy-pasting text and navigation in the main menu, you probably don't need Enki. But, some topics still should be documented...

Table of Contents


Enki doesn't store any project files on a disk like some IDEs do. For Enki, the project is the current directory. Open a directory with the Locator or File Browser or Shift+Ctrl+O and you'll be able to fuzzy-open files in this directory.


Create file

If Enki is executed from the command line with parameters consisting of file names, it creates any files which don't exist.

Open file

The open file dialog begins in the directory where current file located. If you want to open a file from some other directory, it's usually quicker to select a file from the opened file list which resides in the same directory, then press Ctrl+O or Ctrl+L.


Enki supports the classic Open File dialog, which you see when press Ctrl+O. But is much quicker to open files with the Locator. Press Ctrl+L and try to use fuzzy-search or completable exact match open commands.

File Browser

The File browser (shortcut: Alt+F) supports a few shortcuts which may be used when the tree of files within it is focused:

Backspace Move one level up
~ (actually, `) Move to home directory
. (dot) Move to the directory in which current file is located

Use Ctrl+H to focus the file browser's history combo box.


Enki preserves the set of opened files across Enki restarts in a session file (by default, session.json in Enki's configuration directory). If you use multiple instances of Enki or specify filenames for Enki to open on the command line, this session file might be overwritten.

Use the ENKI_SESSION environment variable or the -s (--session) command-line option to make named sessions. It simplifies the use of Enki for multiple projects.

Mouse-free focus and navigation

This section gives a few tips to minimize mouse usage. The keyboard map lists all hotkeys.

You can open (if the dock is closed) or focus (if the dock is already opened) any dock widget by pressing its shortcut. For example:

  • Alt+F - show the File browser (if hidden), then move the focus to it.
  • Press any search or replace shortcut (Ctrl+F, Shift+Ctrl+R, ...) to jump to the search dialog and set the focus to the Search line.
  • Ctrl+Enter - move focus to current document.
To close a dock, press Esc. For example, Alt+F, Esc closes the File browser. Press Shift+Esc to close all visible docks and search dialogs.

Enki doesn't allocate Alt+letter accelerators for main menu items. Instead, you can open the main menu with F10, then navigate through it with the arrow keys.


Line manipulations

Alt+C Copy
Alt+V Paste
Alt+X Cut
Alt+Del Delete
Alt+Down Move down
Alt+Up Move up

Advanced replacements

Enki search functionality supports replacements with escape sequences and groups from regular expression. To insert \n or some other sequence, just enter it to the Replace field. Example:

 replace text: "I want to break\nthis line"
 result: "I want to break
 this line"

List of supported sequences

If you don't want Enki replace your \something sequences, escape it with additional slash: \\n. Example:

 replace text: "I don't want to break\\nthis line"
 result: "I don't want to break\nthis line"

Groups from regular expression match are referenced as \{number}. \1 - first submatch, \2 - second... Example:

 text: "foo bar"
 pattern: "((\w+) (\w+))"
 replace text: "\1 replaced with \3 \2"
 result: "foo bar replaced with bar foo"

Rectangular selection

Hold Alt and use the normal selection shortcuts to select rectangular areas of text; for example, Alt+Shift+Down expands the rectangular selection down by one line. The selected text can then be deleted, copied, or pasted.

To select a rectangle with the mouse, hold Alt, Shift+Alt or Ctrl+Alt. Note that Alt and Shift+Alt may be used by your OS to move the window.

Vim Mode

Enki supports Vim mode, which allows you to rapidly edit text. Open Help -> Vim mode tutorial for basic information on how to use it and refer to this page for a full list of supported commands.

Markup languages preview

Enki supports live preview of Markdown, reStructuredText / Sphinx, and HTML. Its literate programming capabilities allow it to view source code as a web page. Press Alt+P when a file is active to open the preview dock.

Press Alt+Shitf+P (or go to File->Save Preview as HTML) to save the preview as an HTML file.

See also Markdown preview templates

Language specific functionality


Use Ctrl+Alt+I to quickly switch between header and implementation.


Enki supports Scheme REPL integration. See this page.

Standard ML (SML)

Enki supports SML REPL integration. See the Scheme video. End commands with ; to execute it.


Enki supports Python intepreter (REPL) integration. See the Scheme video. If flake8 is installed, linter marks will be shown near line numbers.

If something in Enki is not clear, please ask the team to simplify or document it!

You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.
Press h to open a hovercard with more details.