DTERC(5)
dterc(5) โ the manual page for the command + config language of dte(1) ๐
File Formats Manual โจ DTERC(5)
๐ธ NAME ๐ธ
dterc โ the command and configuration language that dte(1) speaks, bestie ๐
โจ SYNOPSIS โจ
Okay so here's literally every command, grouped by vibe. Copy-paste responsibly ๐ซถ
Commands:
Configuration Commands:
alias name command
bind key [command]
set [-gl] option [value] ...
setenv name [value]
hi [-c] name [fg-color [bg-color]] [attribute]...
ft [-b|-c|-f|-i] filetype string...
option [-r] filetype option value...
include [-bq] file
errorfmt [-i] compiler regexp [file|line|column|message|_]...
load-syntax filename|filetype
Editor Commands:
quit [-f|-p] [exitcode]
suspend
cd directory
command [text]
search [-Hnprw] [pattern]
refresh
Buffer Management Commands:
open [-g|-t] [-e encoding] [filename]...
save [-fp] [-d|-u] [-b|-B] [-e encoding] [filename]
close [-qw] [-f|-p]
next
prev
view N|last
move-tab N|left|right
Window Management Commands:
wsplit [-bghnrt] [filename]...
wclose [-f|-p]
wnext
wprev
wresize [-h|-v] [N|+N|-- -N]
wflip
wswap
Movement Commands:
left [-c]
right [-c]
up [-c|-l]
down [-c|-l]
pgup [-c|-l]
pgdown [-c|-l]
blkup [-c|-l]
blkdown [-c|-l]
word-fwd [-cs]
word-bwd [-cs]
bol [-cs]
eol [-c]
bof
eof
bolsf
eolsf
scroll-up
scroll-down
scroll-pgup
scroll-pgdown
center-view
match-bracket
line number
tag [-r] [tag]
msg [-n|-p]
Editing Commands:
cut
copy [-k]
paste [-c]
undo
redo [choice]
clear
join
new-line
delete
erase
delete-eol [-n]
erase-bol
delete-word [-s]
erase-word [-s]
delete-line
case [-l|-u]
insert [-km] text
replace [-bcgi] pattern replacement
shift count
wrap-paragraph [width]
select [-bkl]
unselect
External Commands:
filter [-l] command [parameter]...
pipe-from [-ms] command [parameter]...
pipe-to [-l] command [parameter]...
run [-ps] command [parameters]...
compile [-1ps] errorfmt command [parameters]...
eval command [parameter]...
exec-open [-s] command [parameter]...
exec-tag [-s] command [parameter]...
Other Commands:
repeat count command [parameters]...
toggle [-gv] option [values]...
show [-c] type [key]
macro action
Options:
Global options:
case-sensitive-search [true]
display-invisible [false]
display-special [false]
esc-timeout [100] 0...2000
filesize-limit [250]
lock-files [true]
newline [unix]
select-cursor-char [true]
scroll-margin [0]
set-window-title [false]
show-line-numbers [false]
statusline-left [" %f%s%m%r%s%M"]
statusline-right [" %y,%X %u %E%s%b%s%n %t %p "]
tab-bar [true]
utf8-bom [false]
Local options:
brace-indent [false]
filetype [none]
indent-regex [""]
Local and global options:
auto-indent [true]
detect-indent [""]
emulate-tab [false]
expand-tab [false]
file-history [true]
indent-width [8]
syntax [true]
tab-width [8]
text-width [72]
ws-error [special]
๐ฆ DESCRIPTION ๐ฆ
So dterc is the language that dte(1) uses in its config files (~/.dte/rc) and in command mode inside the editor (Alt+x). The syntax is lowkey similar to shell, but way simpler โ no cap ๐
Commands get separated either by a newline or a ; character. Wanna make a command stretch across multiple lines in an rc file? Escape the newline, bestie โ put \ at the end of the line โจ
Rc files can have comments at the start of a line. Comments start with a # character and can be indented, but they can't be put on the same line as a command โ that's not the vibe.
Commands can contain environment variables. Variables always expand into a single argument even if they contain whitespace. But variables inside single or double quotes are NOT expanded ๐. This is actually iconic because it means you can bind keys to commands that contain variables (inside single or double quotes), and those get expanded right before the command runs.
Example:
alias x "run chmod 755 $FILE"
So $FILE expands when the alias x gets executed. And the command still works even if $FILE contains whitespace. slay ๐
๐ Special variables ๐
These variables are always defined and they override environment variables with the same name. main character energy fr fr.
$FILEโ the filename of the current buffer (or an empty string if it's unsaved).$FILETYPEโ the value of thefiletypeoption for the current buffer.$LINENOโ the line number of the cursor in the current buffer.$WORDโ the selected text, or the word under the cursor.$DTE_HOMEโ the user configuration directory. This is either the value of$DTE_HOMEwhen the editor first started, or the default value ($HOME/.dte).
๐ Single quoted strings ๐
Single quoted strings can't contain single quotes or escaped characters. That's it, that's the whole rule ๐
๐ Double quoted strings ๐
Double quoted strings may contain the following escapes:
\a,\b,\t,\n,\v,\f,\rโ control characters (same as in C)\eโ escape character\\โ backslash\"โ double quote\x0aโ hexadecimal byte value0x0a. Note that\x00is not supported because strings are NUL-terminated ๐\u20acโ four hex digit Unicode code pointU+20AC\U000020acโ eight hex digit Unicode code pointU+20AC
๐ COMMANDS ๐
๐ง Configuration Commands ๐ง
Configuration commands are how you customize aspects of the editor โ adding key bindings, setting options, etc. And listen: these are the only commands allowed in user config files. periodt.
alias name command
Creates an alias name for command.
Example:
alias read 'pipe-from cat'
Now you can run read file.txt to insert file.txt into the current buffer. obsessed ๐ญ๐
bind key [command]
Binds command to key. If no command is given, then any existing binding for key is removed. bye bestie ๐
Special keys:
leftrightupdowninsertdeletehomeendpguppgdownbegin(keypad "5" with Num Lock off)entertabspaceF1..F12
Modifiers:
- Ctrl:
C-Xor^X - Alt:
M-X - Shift:
S-left
set [-gl] option [value] ...
Sets value for option. For a boolean option you can just omit the value and it sets it to true โจ. You can set multiple options at once, but then a value must be given for every option.
There are three kinds of options.
- Global options.
- Local options. These are file specific options. Each open file has its own copies of the option values.
- Options that have both global and local values. The global value is just a default local value for opened files and is never used for anything else. Changing the global value does not affect any already opened files.
By default set changes both global and local values.
-gโ change only the global option value-lโ change only the local option value of the current file
In configuration files only global options can be set (no need to specify the -g flag).
See also: toggle and option commands.
setenv name [value]
Set (or unset) an environment variable. ๐ซถ
hi [-c] name [fg-color [bg-color]] [attribute]...
Set highlight color. โจ
The name argument can be a token name defined by a dte-syntax(5) file, or one of the following built-in highlight names:
defaultnontextnolinewserrorselectioncurrentlinelinenumberstatuslinecommandlineerrormsginfomsgtabbaractivetabinactivetabdialog
The fg-color and bg-color arguments can be one of the following:
- No value (equivalent to
default) - A numeric value between
-2and255 - A 256-color palette value in R/G/B notation (e.g.
0/3/5) - A true color value in CSS-style
#RRGGBBnotation (e.g.#ab90df) keep(-2)default(-1)black(0)red(1)green(2)yellow(3)blue(4)magenta(5)cyan(6)gray(7)darkgray(8)lightred(9)lightgreen(10)lightyellow(11)lightblue(12)lightmagenta(13)lightcyan(14)white(15)
Colors 16 to 231 correspond to R/G/B colors. Colors 232 to 255 are grayscale values.
If the terminal has limited support for rendering colors, the fg-color and bg-color arguments will fall back to the nearest supported color (unless the -c flag is used).
The attribute argument(s) can be any combination of the following:
bolddimitalicunderlinestrikethroughblinkreverseinvisiblekeep
The color and attribute value keep is useful in selected text to keep fg-color and attributes and change only bg-color. ๐
NOTE: Becausekeepis both a color and an attribute, you need to specify bothfg-colorandbg-colorif you want to set thekeepattribute.
Unset fg/bg colors are inherited from highlight color default. If you don't set fg/bg for the highlight color default, then the terminal's default fg/bg is used.
-cโ do nothing at all if the terminal can't displayfg-colorand/orbg-colorwith full precision
ft [-b|-c|-f|-i] filetype string...
Add a filetype association. Filetypes are used to determine which syntax highlighter and local options to use when opening files. ๐ฅ
By default string is interpreted as one or more filename extensions.
-bโ interpretstringas a file basename-cโ treat string as aregex(7)pattern and match it against the contents of the first line of the file ๐-fโ treat string as aregex(7)pattern and match it against the full (absolute) filename ๐๏ธ-iโ treat string as a command interpreter name and match it against the Unix shebang line (after stripping any path prefix and/or version suffix) ๐
Examples, fr fr โ copy these exactly:
ft c c h
ft -b make Makefile GNUmakefile
ft -c xml '<\?xml'
ft -f mail '/tmpmsg-.*\.txt$'
ft -i lua lua luajit
Also go peep:
- The
optioncommand (right below this ๐) - The
filetypeoption (also below ๐) - The
dte-syntax(5)man page
option [-r] filetype option value...
Adds an automatic option for a filetype (one you already registered with the ft command up there โฌ๏ธ). Automatic options get set whenever files are opened. Set it and forget it, bestie โจ
-rโ interpret the filetype argument as aregex(7)pattern instead of a filetype, and match it against full filenames
include [-bq] file
Read and execute commands from file.
-bโ read a built-in file instead of reading from the filesystem ๐ฆ-qโ don't show an error message if file doesn't exist (shhh, it's fine ๐)
Note: "built-in files" are config files bundled right into the program binary. See the-Band-bflags in thedte(1)man page for the deets.
errorfmt [-i] compiler regexp [file|line|column|message|_]...
Registers a regex(7) pattern for later use with the compile command.
When compile is invoked with a specific compiler name, the regexp pattern(s) you previously registered under that name get used to parse messages out of that program's output.
Your regexp pattern should contain as many capture groups as there are extra arguments. Those capture groups are what parse the file, line, message, etc. out of the output and โ if possible โ jump you straight to the corresponding file position. Wanna use parentheses in the regexp but not capture them? Just use _ as the extra argument. ๐ฏ
Run errorfmt multiple times with the same compiler name and each regexp gets appended to a list. When you run compile, the entries in that list are checked for a match in the exact order they were added.
For a basic example of how this works, go look at the output of dte -b compiler/go.
-iโ ignore this error ๐ โโ๏ธ
load-syntax filename|filetype
Loads a dte-syntax(5) file into the editor. If the argument contains a / character, it's treated as a filename.
Note: this command only loads a syntax file, ready for later. To actually apply a syntax highlighter to the current buffer, use thesetcommand to change the buffer's filetype instead โ e.g.set filetype html. That's the one that does the thing, bestie ๐
๐ธ Editor Commands ๐ธ
quit [-f|-p] [exitcode]
Quits the editor. Bye bestie ๐
The exit status of the process is set to exitcode, which can be anywhere in the range 0..125, or defaults to 0 if you don't specify one.
-fโ force quit, even if there are unsaved files ๐ค-pโ prompt for confirmation if there are unsaved files
suspend
Suspends the editor (run fg in the shell to resume it). Nap time ๐ด
cd directory
Changes the working directory and updates $PWD and $OLDPWD. Running cd - changes to the previous directory ($OLDPWD). Classic.
command [text]
Enter command mode. If text is given, it gets written to the command line (see the default ^L key binding for why this is useful ๐).
search [-Hnprw] [pattern]
If there are no flags, or just -r, and no pattern given, then dte switches to search mode where you can type a regular expression to search. Type that regex, queen ๐
-Hโ don't add pattern to search history-nโ search next-pโ search previous-rโ start searching backwards-wโ search the word under the cursor
refresh
Triggers a full redraw of the screen. Blink blink โจ
๐ Buffer Management Commands ๐
open [-g|-t] [-e encoding] [filename]...
Opens a file. If filename is omitted, a brand new file gets opened. Fresh start energy ๐ฆ
-eencoding โ set the file encoding. Runiconv -lfor the list of supported encodings.-gโ performglob(7)expansion on filename.-tโ mark the buffer as "temporary" (always closeable, no warnings about "unsaved changes") ๐
save [-fp] [-d|-u] [-b|-B] [-e encoding] [filename]
Saves the current buffer. Protect it at all costs ๐ซถ
-bโ write a byte order mark (BOM)-Bโ don't write a byte order mark-dโ save with DOS/CRLF line-endings-fโ force saving a read-only file-uโ save with Unix/LF line-endings-pโ open a command prompt if there's no specified or existing filename-eencoding โ set the file encoding. Runiconv -lfor the list of supported encodings.
See also: the newline and utf8-bom global options ๐
close [-qw] [-f|-p]
Closes a file.
-fโ force close the file, even if it has unsaved changes ๐ฌ-pโ prompt for confirmation if the file has unsaved changes-qโ quit if you're closing the last open file-wโ close the parent window if you're closing its last contained file
next
Displays the next file.
prev
Displays the previous file.
view N|last
Displays the Nth or last open file.
move-tab N|left|right
Moves the current tab to position N, or 1 position left or right. Rearranging, we love to see it ๐
๐ฆ Window Management Commands ๐ฆ
wsplit [-bghnrt] [filename]...
Splits the current window. More screen real estate, more main character energy ๐
filename arguments get opened in a manner similar to the open command. If there are no arguments, the contents of the new window will be an additional view of the current buffer.
-bโ add the new window before the current one instead of after-gโ performglob(7)expansion on filename-hโ split horizontally instead of vertically-nโ create a new, empty buffer-rโ split the root instead of the current window-tโ mark the buffer as "temporary" (always closeable, no warnings about "unsaved changes")
wclose [-f|-p]
Closes a window.
-fโ force close the window, even if it contains unsaved files ๐ญ-pโ prompt for confirmation if there are unsaved files in the window
wnext
Next window.
wprev
Previous window.
wresize [-h|-v] [N|+N|-- -N]
If no parameter is given, equalizes window sizes in the current frame. Balance restored ๐งโโ๏ธ
-hโ resize horizontally-vโ resize verticallyNโ set the size of the current window to N characters.+Nโ increase the size of the current window by N characters.-Nโ decrease the size of the current window by N characters. Use--to stop the minus symbol from being parsed as an option flag, e.g.wresize -- -5.
wflip
Changes from a vertical layout to a horizontal one, and vice versa. Flip it ๐
wswap
Swaps the positions of this frame and the next one.
๐ง Movement Commands ๐ง
Movement commands are what you use to move the cursor around, bestie.
Several of these commands also have -c and -l flags, which let you create character/line selections. Those 2 flags are noted in the command summaries below, but they only get described once, right here:
-cโ select characters-lโ select whole lines
left [-c]
Moves one column left.
right [-c]
Moves one column right.
up [-c|-l]
Moves one line up.
down [-c|-l]
Moves one line down.
pgup [-c|-l]
Moves one page up.
pgdown [-c|-l]
Moves one page down.
blkup [-c|-l]
Moves one block up.
Note: a "block", in this context, is kind of like a paragraph. Blocks are delimited by one or more blank lines.
blkdown [-c|-l]
Moves one block down.
word-fwd [-cs]
Moves forward one word.
-sโ skip special characters
word-bwd [-cs]
Moves backward one word.
-sโ skip special characters
bol [-cs]
Moves to the beginning of the current line.
-sโ move to the beginning of indented text or the beginning of the line, depending on the current cursor position.
eol [-c]
Moves to the end of the current line.
bof
Moves to the beginning of the file.
eof
Moves to the end of the file.
bolsf
Incrementally moves to the beginning of the line, then the beginning of the screen, then the beginning of the file. Escalating ๐ค
eolsf
Incrementally moves to the end of the line, then the end of the screen, then the end of the file.
scroll-up
Scrolls the view up one line. Keeps the cursor position unchanged if possible.
scroll-down
Scrolls the view down one line. Keeps the cursor position unchanged if possible.
scroll-pgup
Scrolls one page up. The cursor position relative to the top of the screen is maintained. See also pgup.
scroll-pgdown
Scrolls one page down. The cursor position relative to the top of the screen is maintained. See also pgdown.
center-view
Centers the view on the cursor. Self-care for your eyeballs ๐
match-bracket
Moves to the bracket character paired with the one under the cursor. The character under the cursor should be one of {}[]()<>.
line number
Goes to the line.
tag [-r] [tag]
Saves the current location and jumps to the location of tag. If no tag argument is specified, the word under the cursor is used instead.
This command needs a tags file generated by ctags(1). tags files are searched for in the current working directory and its parent directories.
-rโ jump back to the previous location โฉ๏ธ
See also: the msg command.
msg [-n|-p]
Shows the latest, next (-n) or previous (-p) message. If its location is known (a compile error or a tag message) then the file gets opened and the cursor moved to that location.
-nโ next message-pโ previous message
See also: the compile and tag commands.
๐ Editing Commands ๐
cut
Cuts the current line or selection. Snip snip โ๏ธ
copy [-k]
Copies the current line or selection.
-kโ keep the selection (by default, selections are lost after copying) ๐
paste [-c]
Pastes text previously copied by the copy or cut commands.
-cโ Paste at the cursor position, even when the text was copied as a whole-line selection (where the usual default is to paste at the start of the next line). Lowkey clutch when you wanna paste right where you're at, not on the next line. ๐
undo ๐
Undo latest change. No cap, it's the ultimate rewind button, bestie. Just hit it and watch your last change vanish. โจ
redo [choice] ๐
Redo changes done by the undo command. If there are multiple possibilities a message is displayed:
Redoing newest (2) of 2 possible changes.
If the change was not the one you wanted, just run undo and then, for example, redo 1. It's giving time travel, but make it precise.
clear ๐งผ
Clear current line. Wipe it clean, like it never happened.
join ๐
Join selection or next line to current. Merge them together, bestie.
new-line โจ
Insert empty line under current line. Fresh space, who dis?
delete โ
Delete character after cursor (or selection). Poof, gone.
erase ๐งฝ
Delete character before cursor (or selection). Backspace energy, but make it fancy.
delete-eol [-n] ๐๏ธ
Delete to end of line.
-nโ Delete newline if cursor is at end of line
erase-bol โฌ
๏ธ
Erase to beginning of line. Back it up, back it up.
delete-word [-s] โ๏ธ
Delete word after cursor.
-sโ Be more "aggressive"
erase-word [-s] ๐งน
Erase word before cursor.
-sโ Be more "aggressive"
delete-line ๐ฎ
Delete current line. Bye bye, whole line.
case [-l|-u] ๐
Change text case. The default is to change lower case to upper case and vice versa. It's giving flip-flop realness.
-lโ Lower case-uโ Upper case
insert [-km] text ๐ฅ
Insert text into the buffer.
-kโ Insert one character at a time, as if manually typed. Normally text is inserted exactly as specified, but this option allows it to be affected by special input handling like auto-indents, whitespace trimming, line-by-line undo, etc.-mโ Move after inserted text
replace [-bcgi] pattern replacement ๐
Replace all instances of text matching pattern with the replacement text. Glow up your text, bestie.
The pattern argument is a POSIX extended regex(7).
The replacement argument is treated like a template and may contain several, special substitutions:
- Backslash sequences
\1through\9are replaced by sub-strings that were "captured" (via parentheses) in the pattern. - The special character
&is replaced by the full string that was matched by pattern. - Literal
\and&characters can be inserted in replacement by escaping them (as\\and\&). - All other characters in replacement represent themselves.
Note: extra care must be taken when using double quotes for the pattern argument, since double quoted arguments have their own (higher precedence) backslash sequences.
-bโ Use basic instead of extended regex syntax-cโ Ask for confirmation before each replacement-gโ Replace all matches for each line (instead of just the first)-iโ Ignore case
Examples:
replace 'Hello World' '& (Hallo Welt)'
replace "[ \t]+$" ''
replace -cg '([^ ]+) +([^ ]+)' '\2 \1'
shift count ๐
Shift current or selected lines by count indentation levels. Count is usually -1 (decrease indent) or 1 (increase indent).
To specify a negative number, it's necessary to first disable option parsing with --, e.g. shift -- -1.
wrap-paragraph [width] ๐
Format the current selection or paragraph under the cursor. If paragraph width is not given then the text-width option is used.
This command merges the selection into one paragraph. To format multiple paragraphs use the external fmt(1) program with the filter command, e.g. filter fmt -w 60.
select [-bkl] ๐ฑ๏ธ
Enter selection mode. All movement commands while in this mode extend the selected area.
Note: A better way to create selections is to hold the Shift key whilst moving the cursor. The select command exists mostly as a fallback, for terminals with limited key binding support.
-bโ Select block between opening{and closing}curly braces-kโ Keep existing selections-lโ Select whole lines
unselect ๐ซ
Unselect. Deselect, bestie. Let it go.
External Commands ๐
filter [-l] command [parameter]... ๐งน
Filter selected text or whole file through external command.
Example:
filter sort -r
Note that command is executed directly using execvp(3). To use shell features like pipes or redirection, use a shell interpreter as the command. For example:
filter sh -c 'tr a-z A-Z | sed s/foo/bar/'
-lโ Operate on current line instead of whole file, if there's no selection
pipe-from [-ms] command [parameter]... ๐ฅ
Run external command and insert its standard output.
-mโ Move after the inserted text-sโ Strip newline from end of output
pipe-to [-l] command [parameter]... ๐ค
Run external command and pipe the selected text (or whole file) to its standard input.
Can be used to e.g. write text to the system clipboard:
pipe-to xsel -b
-lโ Operate on current line instead of whole file, if there's no selection
run [-ps] command [parameters]... ๐
Run external command.
-pโ Display "Press any key to continue" prompt-sโ Silent -- both stderr(3) and stdout(3) are redirected to/dev/null
compile [-1ps] errorfmt command [parameters]... ๐จ
Run external command and collect output messages. This can be used to run e.g. compilers, build systems, code search utilities, etc. and then jump to a file/line position for each message.
The errorfmt argument corresponds to a regex capture pattern previously specified by the errorfmt command. After command exits successfully, parsed messages can be navigated using the msg command.
-1โ Read error messages from stdout instead of stderr-pโ Display "Press any key to continue" prompt-sโ Silent. Both stderr(3) and stdout(3) are redirected to/dev/null
See also: errorfmt and msg commands.
eval command [parameter]... ๐ง
Run external command and execute its standard output text as dterc commands. It's like inception, but for commands.
exec-open [-s] command [parameter]... ๐
Run external command and open all filenames listed on its standard output.
-sโ Don't yield terminal control to the child process
Example uses:
exec-open -s find . -type f -name *.h
exec-open -s git ls-files --modified
exec-open fzf -m --reverse
exec-tag [-s] command [parameter]... ๐ท๏ธ
Run external command and then execute the tag command with its first line of standard output as the argument.
-sโ Don't yield terminal control to the child process
Example uses:
exec-tag -s echo main
exec-tag sh -c 'readtags -l | cut -f1 | sort | uniq | fzf --reverse'
Other Commands ๐
repeat count command [parameters]... ๐
Run command count times. Loop it, bestie.
toggle [-gv] option [values]... ๐๏ธ
Toggle option. If list of values is not given then the option must be either boolean or enum.
-gโ toggle global option instead of local-vโ display new value
If option has both local and global values then local is toggled unless -g is used.
show [-c] type [key] ๐
Display current values for various configurable types.
The type argument can be one of:
aliasโ Show command aliasesbindโ Show key bindingscolorโ Show highlight colorscommandโ Show command historyenvโ Show environment variableserrorfmtโ Show compiler error formatsftโ Show filetype associationsincludeโ Show built-in configsmacroโ Show last recorded macrooptionโ Show option valuessearchโ Show search historywsplitโ Show window dimensions
The key argument is the name of the entry to look up (e.g. the alias name). If this argument is omitted, the full list of entries of the specified type will be displayed in a new buffer.
-cโ write value to command line (if possible)
macro action ๐ฅ
Record and replay command macros.
The action argument can be one of:
recordโ Begin recordingstopโ Stop recordingtoggleโ Toggle recording on/offcancelโ Stop recording, without overwriting the previous macroplayโ Replay the previously recorded macro
Once a macro has been recorded, it can be viewed in text form by running show macro.
โจ OPTIONS โจ
okay bestie, options are literally the lil control panel of dte, and you change them with the set command. Enumerated options can also be toggled. Wanna see which ones are enumerated? Type toggle in command mode and press the tab key (yes, keep that space after toggle ๐
). You can also use the option command to set default options for specific file types.
๐ Global options
case-sensitive-search [true]โ controls how search vibes with letter case.falseโ Search is case-insensitive.trueโ Search is case-sensitive.autoโ If the search string contains an uppercase letter, search is case-sensitive; otherwise it is case-insensitive.
display-invisible [false]โ Display invisible characters.display-special [false]โ Display special characters.esc-timeout [100] 0...2000โ When a single escape is read from the terminal,dtewaits some time before treating the escape as a single keypress. The timeout value is in milliseconds.
Too long timeout makes the escape key feel slow, and too small timeout can cause escape sequences of, for example, arrow keys to be split and treated as multiple key presses. ๐ญ
filesize-limit [250]โ Refuse to open any file with a size larger than this value (in mebibytes). Useful to prevent accidentally opening very large files, which can take a long time on some systems.lock-files [true]โ Keep a record of open files, so that a warning can be shown if the same file is accidentally opened in multipledteprocesses.
See also: the FILES section in the dte(1) man page.
newline [unix]โ Whether to use LF (unix) or CRLF (dos) line-endings in newly created files.
Note: buffers opened from existing files will have their newline type detected automatically.
select-cursor-char [true]โ Whether to include the character under the cursor in selections.scroll-margin [0]โ Minimum number of lines to keep visible before and after cursor.set-window-title [false]โ Set the window title to the filename of the current buffer (if the terminal supports it).show-line-numbers [false]โ Show line numbers.statusline-left [" %f%s%m%r%s%M"]โ Format string for the left aligned part of the status line.%fโ Filename.%mโ Prints*if file has been modified since last save.%rโ PrintsROfor read-only buffers orTMPfor temporary buffers.%yโ Cursor row.%Yโ Total rows in file.%xโ Cursor display column.%Xโ Cursor column as characters. If it differs from cursor display column then both are shown (e.g.2-9).%pโ Position in percentage.%Eโ File encoding.%Mโ Miscellaneous status information.%nโ Line-ending (LForCRLF).%Nโ Line-ending (only ifCRLF).%sโ Separator (a single space, unless the preceding format character expanded to an empty string).%Sโ Like%s, but 3 spaces instead of 1.%tโ File type.%uโ Hexadecimal Unicode value of character under cursor.%%โ Literal%.
statusline-right [" %y,%X %u %E%s%b%s%n %t %p "]โ Format string for the right aligned part of the status line.tab-bar [true]โ Whether to show the tab-bar at the top of each window.utf8-bom [false]โ Whether to write a byte order mark (BOM) in newly created UTF-8 files.
Note: buffers opened from existing UTF-8 files will have their BOM (or lack thereof) preserved as it was, unless overridden by the save command.
๐ Local options
brace-indent [false]โ Scan for{and}characters when calculating indentation size. Depends on theauto-indentoption.filetype [none]โ Type of file. Value must be previously registered using theftcommand.indent-regex [""]โ If thisregex(7)pattern matches the current line whenenteris pressed andauto-indentis true, then indentation is increased. Set to""to disable.
๐ Local and global options
The global values for these options serve as the default values for local (per-file) options.
auto-indent [true]โ Automatically insert indentation when pressingenter. Indentation is copied from the previous non-empty line. If also theindent-regexlocal option is set, then indentation is automatically increased if the regular expression matches the current line.detect-indent [""]โ Comma-separated list of indent widths (1-8) to detect automatically when a file is opened. Set to""to disable. Tab indentation is detected if the value is not"". Adjusts the following options if indentation style is detected:emulate-tab,expand-tab,indent-width.
Example: set detect-indent 2,3,4,8
emulate-tab [false]โ Makedelete,eraseand moving left and right inside indentation feel as if there were tabs instead of spaces.expand-tab [false]โ Convert tab to spaces on insert.file-history [true]โ Save and restore cursor positions for previously opened files.
See also: the FILES section in the dte(1) man page.
indent-width [8]โ Size of indentation in spaces.syntax [true]โ Use syntax highlighting.tab-width [8]โ Width of tab. Recommended value is8. If you use other indentation size than8you should use spaces to indent.text-width [72]โ Preferred width of text. Used as the default argument for thewrap-paragraphcommand.ws-error [special]โ Comma-separated list of flags that describe which whitespace errors should be highlighted. Set to""to disable.auto-indentโ If theexpand-taboption is enabled then this is the same astab-after-indent,tab-indent. Otherwise it's the same asspace-indent.space-alignโ Highlight spaces used for alignment after tab indents as errors.space-indentโ Highlight space indents as errors. Note that this still allows using less thantab-widthspaces at the end of indentation for alignment.tab-after-indentโ Highlight tabs used anywhere other than indentation as errors.tab-indentโ Highlight tabs in indentation as errors. If you set this you most likely want to set"tab-after-indent"too.specialโ Display all characters that look like regular space as errors. One of these characters is no-break space (U+00A0), which is often accidentally typed (AltGr+spacein some keyboard layouts).trailingโ Highlight trailing whitespace characters at the end of lines as errors.
๐ SEE ALSO ๐
โ๏ธ AUTHORS โ๏ธ
Craig Barnes Timo Hirvonen
and that's the whole vibe, bestie ๐ this page's footer says March 2021 and its page/source tag is DTERC(5) โ iconic, official, and now you know it. slay โจ
๐ฆ where this page comes from
- debian bookworm: dte 1.10-1 ยท GPL-2.0-only
- debian trixie: dte 1.10-1 ยท GPL-2.0-only
- ubuntu jammy: dte 1.10-1 ยท GPL-2.0-only
- ubuntu noble: dte 1.10-1 ยท GPL-2.0-only
- ubuntu resolute: dte 1.10-1build1 ยท GPL-2.0-only
- ubuntu stonking: dte 1.10-1build1 ยท GPL-2.0-only
- ๐ girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms