Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Screenshots

Each heading is an area of Features, in the same order. Every shot is dk in a terminal of 100 by 30 cells, in the yo theme. Click a shot to open it at full size.

Command line

This is dk grammar --help. The first line says that this command is the only one that fetches or builds a grammar, and the list under it shows its two subcommands, build and fetch, so you know what to run when a language shows as plain text.

The output of dk grammar –help, with its subcommands and flags

Commands

After :wr and Tab, the prompt reads :write. The row above it lists the eight names that match, and the box shows what write does and its alias w, so you can check a command before you run it.

The command prompt with matching command names and a help box for write

Config

A config.toml with ruler-column = 80 on line 2, a key that dk does not read. The last row names it, config.toml: dk does not read ruler-column, and the other keys of the file still load, which means a key that dk skips does not go unnoticed.

A config.toml with a key that dk does not read and the note that names it on the last row

Display

A Go file in a theme. Look at the line numbers in the gutter, the syntax colors, the brackets that change color with each level of nesting, and the statusline with the mode NOR, the file name, 1 sel and the position. These are the parts of the screen that a theme colors.

A Go file with line numbers and the statusline, in the yo theme

The cursor is on line 36, well below the for, if and inner for that contain it. Those three lines stay on the top rows with their numbers 8, 9 and 10, so you never have to scroll up to find out where you are.

Three sticky rows over the text, with the cursor in the inner loop

dk with no file shows a splash over the empty [scratch] Document: a framed box with the name, the version, the link https://ductus-editor.com/, and the keys of help, quit, the file picker and the command palette. The box uses the colors of a popup, so nothing under it shows through, and the first key press removes it.

The splash of dk with no file, a framed box with the name in large letters and four key hints

Editing

One Selection with five Ranges, one on each match of name, including the ones inside names. 1/5 sels in the statusline counts them, and the lighter last character of each Range shows where its cursor is. A key such as d now acts on all five at once.

Five cursors on the matches of a word in a Go file

Grammars

A Rust file in syntax colors, from the rust grammar that dk ships. rust at the right end of the statusline is the language dk chose for the file, and the grammar of that language does the coloring.

A Rust file in colors by syntax, with rust as the language in the statusline

Install

No screenshot yet. The area is a release tarball and a home-manager module, and neither prints anything in dk.

Keys

The box that opens after the Space key. Each row is a key on the left and what it does on the right, from ! down to u, and +2 more at the bottom stands for the rows that do not fit, so you do not have to remember what lives under Space.

The Space menu over a Go file, listing the keys that can come next

Language servers

No screenshot yet. A hover or a list of diagnostics needs a running server, and the capture runs none.

Manual

No screenshot yet. The manual is a Markdown file that a generator writes, and it has no screen of its own. The :help page belongs to Commands.

Opening files

Three files opened from the command line, listed in the buffer picker. Look at the flags and path columns: the * marks hello.go, the focused file, and the pane on the right previews it.

The buffer picker over a Go file, with three open files listed

Pickers

The file picker. The list of files is on the left with hello.go selected, and the pane on the right previews that file, which shows you what you are about to open.

The file picker with a preview of hello.go

Plugins

The vcs plugin at work on notes.md. In the statusline, the change id qpvuntsm has its first letter in bold and the bookmark main has a count after it. The bar in the gutter beside line 6 is the diff sign of the line that you added.

A Markdown file with a diff sign on an added line, and the change id and bookmark in the statusline

Saving

The refusal of :w on a readonly file with unsaved changes. The statusline shows [readonly] [+], and the last row says 'readonly' option is set (add ! to override), which tells you why nothing was saved.

A Go file marked readonly and unsaved, with the message of a refused save

Tab pages

The tab line with three tab pages: 1 hello.go, 2 notes.md and 3 todo.txt. The second one is highlighted because it is the current page, and by default the tab line shows only when there is more than one.

The tab line above a Markdown file, with the second of three tab pages focused

Views

A View split to the right, with hello.go on the left and notes.md on the right. Each View has its own statusline, and NOR shows only in the right one, because the mode belongs to the focused View.

Two views side by side, each with its own statusline

Workspaces

The last row after a change to a directory with a .ductus says .ductus is not trusted: :trust loads it. Until you run :trust, dk ignores that .ductus and your own config still applies.

A Go file with the last row saying .ductus is not trusted