|
NAMEdterc - Command and configuration language used by dte(1)SYNOPSISCommands:Configuration Commands:
alias name command
bind key [command]
set [-gl] option [value] ...
setenv name value
hi name [fg-color [bg-color]]
[attribute]...
ft [-bcfi] filetype string...
option [-r] filetype option value...
include [-b] file
errorfmt [-i] compiler regexp
[file|line|column|message]...
load-syntax filename|filetype
Editor Commands:
quit [-fp]
suspend
cd directory
command [text]
search [-Hnprw] [pattern]
git-open
refresh
Buffer Management Commands:
open [-g] [-e encoding] [filename]...
save [-dfup] [-e encoding] [filename]
close [-fqw]
next
prev
view N|last
move-tab N|left|right
Window Management Commands:
wsplit [-bhr] [file]...
wclose [-f]
wnext
wprev
wresize [-hv] [N|+N|-- -N]
wflip
wswap
Movement Commands:
left [-c]
right [-c]
up [-cl]
down [-cl]
pgup [-cl]
pgdown [-cl]
word-fwd [-cs]
word-bwd [-cs]
bol [-cs]
eol [-c]
bof
eof
bolsf
eolsf
scroll-up
scroll-down
scroll-pgup
scroll-pgdown
center-view
line number
tag [-r] [tag]
msg [-np]
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]
case [-lu]
insert [-km] text
replace [-bcgi] pattern replacement
shift count
wrap-paragraph [width]
select [-bkl]
unselect
External Commands:
filter command [parameter]...
pipe-from [-ms] command [parameter]...
pipe-to command [parameter]...
run [-ps] command [parameters]...
compile [-1ps] errorfmt command
[parameters]...
eval command [parameter]...
Other Commands:
repeat count command [parameters]...
toggle [-gv] option [values]...
show [-c] type [key]
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]
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 %n %t %p "]
tab-bar [horizontal]
tab-bar-max-components [0]
tab-bar-width [25]
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]
DESCRIPTIONdterc is the language used in dte(1) configuration files (~/.dte/rc) and also in the command mode of the editor (Alt+x). The syntax of the language is quite similar to shell, but much simpler.Commands are separated either by a newline or ; character. To make a command span multiple lines in an rc file, escape the newline (put \ at the end of the line). Rc files can contain comments at the start of a line. Comments begin with a # character and can be indented, but they can't be put on the same line as a command. Commands can contain environment variables. Variables always expand into a single argument even if they contain whitespace. Variables inside single or double quotes are NOT expanded. This makes it possible to bind keys to commands that contain variables (inside single or double quotes), which will be expanded just before the command is executed. Example:
$FILE is expanded when the alias x is executed. The command works even if $FILE contains whitespace. Special variablesThese variables are always defined and override environment variables of the same name.$FILE The filename of the current buffer (or an empty string if
unsaved).
$FILETYPE The value of the filetype option 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.
Single quoted stringsSingle quoted strings can't contain single quotes or escaped characters.Double quoted stringsDouble quoted strings may contain the following escapes:
COMMANDSConfiguration CommandsConfiguration commands are used to customize certain aspects of the editor, for example adding key bindings, setting options, etc. These are the only commands allowed in user config files.alias name command Create an alias name for command.
Example:
Now you can run read file.txt to insert file.txt into the current buffer. bind key [command] Bind command to key. If no command
is given then any existing binding for key is removed.
Special keys: • left
Modifiers:
set [-gl] option [value] ... Set value for option. Value can be omitted
for boolean option to set it true. Multiple options can be set at once but
then value must be given for every option.
There are three kinds of options. 1. Global options. 2. Local options. These are file specific options. Each open file has its own copies of the option values. 3. 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.
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 environment variable.
hi 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: • default
The fg-color and bg-color arguments can be one of the following: • No value (equivalent to default)
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, which may be less precise than the value specified. The attribute argument(s) can be any combination of the following: • bold
The color and attribute value keep is useful in selected text to keep fg-color and attributes and change only bg-color. NOTE: Because keep is both a color and an attribute you need to specify both fg-color and bg-color if you want to set the keep attribute. Unset fg/bg colors are inherited from highlight color default. If you don't set fg/bg for the highlight color default then terminal's default fg/bg is used. ft [-bcfi] 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.
Examples:
See also: • The option command (below)
option [-r] filetype option value... Add automatic option for filetype (as
previously registered with the ft command). Automatic options are set
when files are are opened.
include [-b] file Read and execute commands from file.
Note: "built-in files" are config files bundled into the program binary. See the -B and -b flags in the dte(1) man page for more information. errorfmt [-i] compiler regexp [file|line|column|message]...
See compile and msg commands for more information. load-syntax filename|filetype Load a dte-syntax(5) file into the editor. If the
argument contains a / character it's considered a filename.
Note: this command only loads a syntax file ready for later use. To actually apply a syntax highlighter to the current buffer, use the set command to change the filetype of the buffer instead, e.g. set filetype html. Editor Commandsquit [-fp]Quit the editor.
suspend Suspend the editor (run fg in the shell to
resume).
cd directory Change the working directory and update $PWD and
$OLDPWD. Running cd - changes to the previous directory
($OLDPWD).
command [text] Enter command mode. If text is given then it is
written to the command line (see the default ^L key binding for why
this is useful).
search [-Hnprw] [pattern] If no flags or just -r and no pattern given
then dte changes to search mode where you can type a regular expression to
search.
git-open Interactive file opener. Lists all files in a git
repository.
Same keys work as in command mode, but with these changes:
refresh Trigger a full redraw of the screen.
Buffer Management Commandsopen [-g] [-e encoding] [filename]...Open file. If filename is omitted, a new file is
opened.
save [-dfup] [-e encoding] [filename] Save file. By default line-endings (LF vs CRLF) are
preserved.
close [-fqw] Close file.
next Display next file.
prev Display previous file.
view N|last Display _N_th or last open file.
move-tab N|left|right Move current tab to position N or 1 position left
or right.
Window Management Commandswsplit [-bhr] [file]...Like open but at first splits current window
vertically.
wclose [-f] Close window.
wnext Next window.
wprev Previous window.
wresize [-hv] [N|+N|-- -N] If no parameter given, equalize window sizes in current
frame.
wflip Change from vertical layout to horizontal and vice
versa.
wswap Swap positions of this and next frame.
Movement Commandsleft [-c]Move left.
right [-c] Move right.
up [-cl] Move cursor up.
down [-cl] Move cursor down.
pgup [-cl] Move cursor page up. See also scroll-pgup.
pgdown [-cl] Move cursor page down. See also scroll-pgdown.
word-fwd [-cs] Move cursor forward one word.
word-bwd [-cs] Move cursor backward one word.
bol [-cs] Move to beginning of line.
eol [-c] Move cursor to end of line.
bof Move to beginning of file.
eof Move cursor to end of file.
bolsf Incrementally move cursor to beginning of line, then
beginning of screen, then beginning of file.
eolsf Incrementally move cursor to end of line, then end of
screen, then end of file.
scroll-up Scroll view up one line. Keeps cursor position unchanged
if possible.
scroll-down Scroll view down one line. Keeps cursor position
unchanged if possible.
scroll-pgup Scroll page up. Cursor position relative to top of screen
is maintained. See also pgup.
scroll-pgdown Scroll page down. Cursor position relative to top of
screen is maintained. See also pgdown.
center-view Center view to cursor.
line number Go to line.
tag [-r] [tag] Save current location to stack and go to the location of
tag. Requires tags file generated by Exuberant Ctags. If no tag
is given then word under cursor is used as a tag instead.
Tag files are searched from current working directory and its parent directories. See also msg command. msg [-np] Show latest, next (-n) or previous (-p)
message. If its location is known (compile error or tag message) then the file
will be opened and cursor moved to the location.
See also compile and tag commands. Editing CommandscutCut current line or selection.
copy [-k] Copy current line or selection.
paste [-c] Paste text previously copied by the copy or
cut commands.
undo Undo latest change.
redo [choice] Redo changes done by the undo command. If there
are multiple possibilities a message is displayed:
If the change was not the one you wanted, just run undo and then, for example, redo 1. clear Clear current line.
join Join selection or next line to current.
new-line Insert empty line under current line.
delete Delete character after cursor (or selection).
erase Delete character before cursor (or selection).
delete-eol [-n] Delete to end of line.
erase-bol Erase to beginning of line.
delete-word [-s] Delete word after cursor.
erase-word [-s] Erase word before cursor.
case [-lu] Change text case. The default is to change lower case to
upper case and vice versa.
insert [-km] text Insert text into the buffer.
replace [-bcgi] pattern replacement Replace all instances of text matching pattern
with the replacement text.
The pattern is a POSIX extended regex(7).
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.
unselect Unselect.
External Commandsfilter command [parameter]...Filter selected text or whole file through external
command.
Example:
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:
pipe-from [-ms] command [parameter]... Run external command and insert its standard
output.
pipe-to 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:
run [-ps] command [parameters]... Run external command.
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.
See also: errorfmt and msg commands. eval command [parameter]... Run external command and execute its standard
output text as dterc commands.
Other Commandsrepeat count command [parameters]...Run command count times.
toggle [-gv] option [values]... Toggle option. If list of values is not
given then the option must be either boolean or enum.
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:
The key argument is the name of the entry to lookup (i.e. alias name or key string). If this argument is specified, the value will be displayed in the status line. If omitted, a pager will be opened displaying all entries of the specified type.
OPTIONSOptions can be changed using the set command. Enumerated options can also be toggled. To see which options are enumerated, type "toggle " in command mode and press the tab key. You can also use the option command to set default options for specific file types.Global optionscase-sensitive-search [true]
display-invisible [false] Display invisible characters.
display-special [false] Display special characters.
esc-timeout [100] 0...2000 When single escape is read from the terminal dte waits
some time before treating the escape as a single keypress. The timeout value
is in milliseconds.
Too long timeout makes 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] Lock files using $DTE_HOME/file-locks. Only
protects from your own mistakes (two processes editing same file).
newline [unix] Whether to use LF (unix) or CRLF (dos)
line-endings. This is just a default value for new files.
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 status line.
statusline-right [" %y,%X %u %E %n %t %p "] Format string for the right aligned part of status
line.
tab-bar [horizontal]
tab-bar-max-components [0] Maximum number of path components displayed in vertical
tab bar. Set to 0 to disable.
tab-bar-width [25] Width of vertical tab bar. Note that width of tab bar is
automatically reduced to keep editing area at least 80 characters wide.
Vertical tab bar is shown only if there's enough space.
Local optionsbrace-indent [false]Scan for { and } characters when
calculating indentation size. Depends on the auto-indent option.
filetype [none] Type of file. Value must be previously registered using
the ft command.
indent-regex [""] If this regular expression matches current line when
enter is pressed and auto-indent is true then indentation is increased.
Set to "" to disable.
Local and global optionsThe global values for these options serve as the default values for local (per-file) options.auto-indent [true] Automatically insert indentation when pressing enter.
Indentation is copied from previous non-empty line. If also the
indent-regex local option is set then indentation is automatically
increased if the regular expression matches 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:
emulate-tab [false] Make delete, erase and 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 line and column for each file to
$DTE_HOME/file-history.
indent-width [8] Size of indentation in spaces.
syntax [true] Use syntax highlighting.
tab-width [8] Width of tab. Recommended value is 8. If you use
other indentation size than 8 you should use spaces to indent.
text-width [72] Preferred width of text. Used as the default argument for
the wrap-paragraph command.
ws-error [special] Comma-separated list of flags that describe which
whitespace errors should be highlighted. Set to "" to
disable.
SEE ALSOdte(1), dte-syntax(5)AUTHORSCraig BarnesTimo Hirvonen
Visit the GSP FreeBSD Man Page Interface. |