DragonFly On-Line Manual Pages
dkns(1) DragonFly General Commands Manual dkns(1)
NAME
dkns - Text editor
SYNOPSIS
dkns [<line-number>] <filename>
DESCRIPTION
Dickens is an old-school, black-and-white, one-buffer-in-one-window
console programmer's editor (because that's how we roll). Pretty visual
gewgaws are cognitive noise, my sons and daughters. The plainer the
editor, the deeper the flow. What you want is keystroke-efficiency.
Dickens is written in a custom dialect of lisp called Munger, so the
editor is programmable, but Dickens is not Emacs.
All editors suck to some degree, this one included.
In the command summaries which follow, lone letters preceded by C-
indicate a key chord, where the specified key is to be pressed at the
same time as the control key. Lone letters preceded by M- indicate a key
chord where the specified key is to be pressed at the same time as the
alt/meta key, or you may precede the specified key by a separate pressing
of the ESC key.
Note that chords made with the control key always consist of a lower case
character and the control key, but that chords made with the meta key may
consist of either the upper or lower case version of a character and the
meta key. For example, M-c and M-C are two distinct commands.
Keys or key chords preceded by C-x, indicate this chord is to be pressed
first separately, followed by the succeeding keys or key chords. Such
compound commands are called extended commands. While waiting for the
subsequent parts of an extended command, the editor will display "C-x ?"
in the status line. To cancel a pending extended command the user may
press C-u.
Exiting
C-x C-c exits the editor. This command will prompt the user for
confirmation if unsaved changes exist in the buffer.
C-x 9 Will write the contents of the buffer to disk, if unsaved
changes exist, and exit the editor.
Command-Line Arguments
Command line arguments can be used to specify a file to load into the
buffer upon start-up. If the first character of the first argument is a
plus-sign (+), then the remaining characters of that argument are
considered to specify a line number to move the cursor to upon loading
the file specified by the second argument. If the remainder of the first
argument is not a positive integer, it is ignored, but the file specified
by the second argument is still loaded. If the first argument does not
begin with a plus-sign, then it is assumed to be a filename to load into
the buffer upon start-up, and the cursor is moved to the first character
of the first line of the file. To load a file whose name begins with a
plus-sign, the user may either pass a do-nothing line number argument or
qualify the filename:
% dkns +1 +funnyfile
% dkns ./+funnyfile
Any other command-line arguments are assumed to be filenames, and are
pushed onto the file stack, where they may be subsequently accessed with
the commands which operate upon that entity. See the section of this
document, titled "Working With Files" for more information on using the
file stack.
Configuration Options
The editor has five user-modifiable configuration settings:
line_length This option is a positive integer specifying the desired
maximum length of manually-created lines. This limit is
used by the auto-wrapper and by the paragraph formatter.
tab_stop This option is a positive integer specifying the frequency
of tabstops. Tabstops are considered to occur every
tab_stop characters, ad infinitum in the line.
auto_indent This option is a boolean which specifies whether or not
leading whitespace from the preceding line should be
propagated to a new line, when the user manually terminates
a line.
auto_wrap This option is a boolean which specifies whether or not
lines should be automatically wrapped when manual input
causes a line to exceed the value of line_length.
show_match This option is a boolean which specifies whether or not the
location of opening delimiters will be indicated visually
when a closing delimiter is input. If turned on, when the
user inputs a ")", "}", or "]" character, the editor will
search backward in the buffer, for the corresponding opening
delimiter, and if found, move the cursor there for two-
tenths of a second and then return it to its previous
location. If the opening delimiter cannot be found, the
terminal bell is sounded. In no case will the editor search
further than the line which the cursor would be moved to, if
an "C-x [" command were invoked from the original cursor
position.
The user's startup configuration file, if it exists, must be named .dkns
and be located in the user's home directory. The following example shows
code to modify the user-modifiable settings.
; These values must be set via a function call.
(set_line_length 75)
(set_tab_stop 3)
; The boolean flags may be set directly.
(setq auto_indent 1)
(setq auto_wrap 1)
(setq show_match 1)
The following commands may be used to inspect or change the user-
modifiable settings from within the editor.
C-x @ displays the values of the user settings.
C-x N prompts the user for a new value for the line_length variable.
C-x B prompts the user for a new value for the tab_stop variable.
C-x I toggles the value of the auto_indent variable.
C-x U toggles the value of the auto_wrap variable.
C-x M toggles the value of the show_match variable.
Command Prompts
Some commands require textual or numerical input from the user. The
editor will prompt for this input on the last line of the screen, called
the status line. At any command prompt, three editing commands are
available, and possibly interactive filename completion and a browsable
history for the command.
C-h backspaces over the last character of input, if any.
C-w backspaces over the last complete word on the command line, if any.
C-u backspaces over the entire command line.
C-p causes the text input so far to be replaced with the most recent
item in the command's saved history. Successive invocations of this
command, continue to advance backward through the command history.
C-n If the C-p command has been invoked, this command will cause the
current text on the command line to be replaced with the next item
in the command history. Successive invocations of this command
continue to advance forward through the command history, until the
original input text, if any, is reached.
C-a Insert a tab character into the input text.
[tab]
invokes interactive filename completion, functioning similarly to
that of bash or csh. Not every command which receives input at a
command prompt enables filename completion. Those which do cannot
accept a literal tab character as input. To input a tab use C-a.
To input any other character bound to editing commands, type C-v
followed by the desired character.
C-c cancels the input operation, and the command which initiated it.
Repeating Commands
M-o causes the user to be prompted for a repeat count on the status
line. The very next command invoked will be repeated the
specified number of times, if that command supports a repeat
count. Those commands for which a repeat count does not make
sense, ignore the repeat count.
C-x g repeats the most recently invoked command. This command respects
the repeat count given to the original command, but will ignore
any repeat count given to itself.
C-x [space]
starts recording keystrokes for subsequent playback. If the
recording operation has already been started, then this command
turns it off.
M-[space]
plays the last group of previously recorded keystrokes. The
editor responds to those keystrokes just as if those keys were
pressed by the user, allowing the user to repeat multiple commands
at once. If this command is given a repeat count, if will be
respected. If C-g is invoked after invoking this command, the
last command in the set of recorded keystrokes will be invoked,
and not the playback operation.
The Region
An abitrary region of text may be delineated for certain operations. The
region consists of the text lying between the cursor location and the
mark. The cursor position and the mark are both considered to be between
the character they are over and the previous character in the buffer.
Therefore, at the region endpoint occurring first in the buffer, the
character under the endpoint will be included in the region, but at the
region endpoint occurring second in the buffer, the character under the
endpoint is outside the region.
C-[space] sets the mark before the character location the cursor is
over. The cursor is then moved by the user to the other
endpoint to form the region.
C-x C-e exchanges the cursor position and the mark.
Working With Files
Filename completion is triggered by entering a tab at the filename
prompt. Tab characters themselves can be entered at the prompt by
invoking C-a. To input any character bound to a line-editing command,
type C-v followed by the desired character. If the last line of a file
is not terminated with a newline, the editor will add a newline to the
end of that line.
C-x C-f loads the buffer from a file. The buffer is emptied first, and
the user is prompted for the filename. If the specified file
does not exist, then the editor assumes the user wishes to edit
a new file.
C-x 2 stores the filename currently associated with the buffer and the
cursor position, then loads the buffer from a new file. The
filename and cursor position are stored on a stack, and may be
returned to at a later time. The specified file must exist or
an error is generated.
C-x 3 pops the last saved filename and cursor position off of the
saved file stack and loads that file and jumps to the saved
cursor position.
C-x 4 exchanges the current file and cursor position with those stored
on top of the file stack. This command can be used to quickly
switch between two files.
C-x D pushes the current file and cursor position onto the file stack,
then shifts the filename and cursor position off of the bottom
of the file stack and loads that file and jumps to that cursor
position. This command may be used to visit each of the files
on the file stack, in succession, in a circular manner, ad
infinitum.
C-x C-s saves the buffer to a file. If the buffer were loaded from a
file, the buffer will be written back to that file. Otherwise,
the user will be prompted for a filename. Successive
invocations of this command will reuse that filename.
C-x C-a lists the filenames saved on the file stack.
C-x C-i Inserts a file into the buffer after the line the cursor is on.
If the cursor is on the first line in the buffer, the user will
be prompted to choose between inserting the file content before
or after the first line. This allows files to be inserted at
the beginning of the buffer. The user is prompted for the
filename.
C-x W writes the lines of the region to a file. The user is prompted
for the filename.
C-x F prompts the user for a new filename to associate with the
buffer. Subsequent invocations of C-x C-s will use this
filename.
Working With External Commands
For these commands, the region is considered to include the entire lines
the region endpoints lie on, as well as the lines in between, which is to
say, these commands work on whole lines. These commands also prompt the
user for a command line, which is passed to the shell (/bin/sh) for
execution, and so the command may be any expression that program
understands.
C-x C-m
filters the region through an external command. The lines in the
region are replaced by the command's output.
C-x & inserts the output of a specified command into the buffer, after
the current line.
C-x * writes the lines in the region to the standard input of a
specified command.
C-x ! runs a command under the shell.
C-x $ suspends the editor and returns to the shell from which it was
launched. Most shells define a "fg" command to resume suspended
applications.
Moving The Cursor And Scrolling The Buffer
Lines longer than the width of the terminal are truncated onscreen, but
the editor will scroll the screen horizontally, automatically, if an
attempt is made to move along such a line, to a destination off the edge
of the screen.
C-f moves the cursor one character forward in the buffer.
C-b moves the cursor one character backward in the buffer.
M-f moves the cursor forward one word in the buffer.
M-b moves the cursor backward one word in the buffer.
C-a moves the cursor to the beginning of the current line.
C-e moves the cursor to the end of the current line.
M-a moves the cursor to the ending punctuation mark of the sentence
the cursor is inside, or the sentence immediately succeeding the
cursor position if it is between sentences.
M-e moves the cursor to the ending punctuation mark of the sentence
immediately preceding the sentence the cursor is inside or before.
M-} moves the cursor forward to the next blank line, or line with a
full-stop in column zero, after the cursor position in the buffer.
M-{ moves the cursor backward to the next blank line, or line with a
full-stop in column zero, before the cursor position in the
buffer.
M-] moves the cursor forward in the buffer to the next line having an
opening parenthesis, an opening brace, or a full-stop followed by
an uppercase S in column zero (troff section).
M-[ moves the cursor backward to the next line in the buffer having an
opening parenthesis, an opening brace, or a full-stop followed by
an uppercase S in column zero.
M-^ moves the cursor to the first non-whitespace character in the
current line, if any.
M-+ moves the cursor to the first non-whitespace character in the line
immediately succeeding the line the cursor is on.
M-- moves the cursor to the first non-whitespace character in the line
immediately preceding the line the cursor is on.
M-n scrolls the buffer upward (or the window on the file downward) by
one line.
M-p scrolls the buffer downward (or the window on the file upward) by
one line.
C-t scrolls the buffer upward to place the line the cursor is on at
the top of the screen.
C-l scrolls the buffer to place the line the cursor is on in the
middle of the screen.
C-c scrolls the buffer downward to place the line the cursor is on at
the bottom of the screen.
C-x 0 moves the cursor to first character of the line at the top of the
screen.
C-x 1 moves the cursor to the first character of the line at the bottom
of the screen, or the last line in the buffer.
C-x l moves the cursor to the line closest to the center of the screen.
C-v scrolls the buffer upward (or the window on the file forward) by
one screenful of lines. The cursor is moved to the bottom line on
the screen.
M-v scrolls the buffer downward (or the window on the file backward)
by one screenful of lines. The cursor is moved to the top line on
the screen.
M-> moves the cursor to the last character in the buffer.
M-< moves the cursor to the first character in the buffer.
C-x # prompts the user for a line number to move the cursor to.
Marking Lines With Bookmarks
An unlimited number of named bookmarks may be associated with lines in
the buffer. A bookmark is unset when the bookmarked line deleted.
C-x m prompts the user for the name of a bookmark to associate with the
line the cursor is on.
C-x j jumps to the line associated with a named bookmark. The user is
prompted for the bookmark name.
Cutting And Pasting Text To And From The Clipboard
The following commands are provided to perform cut and paste operations
on the buffer text. All of the deletion commands unset the mark. The
text on the clipboard is overwritten with every successive deletion or
copy, except when invoking deletion commands with a repeat count, or when
invoking the C-k command multiple times in succession, when all the
successive deletions so made will be appended to form one item on the
clipboard. To preserve the contents of the clipboard for later use, it
may be pushed onto a stack.
C-x C copies the region to the clipboard without deleting it from the
buffer.
M-c copies text to the clipboard from the cursor position to the end
of the line, without deleting it. Suppying a repeat count to
this command determines the number of lines from which text will
be copied. A repeat count of 1 is the same as supplying no
repeat count. A repeat count of 2, for example, would copy the
text of the current line, from the cursor position to the end of
the line, and the text of the subsequent line, to the end of
that line, to the clipboard. The final terminating newline of
the last line affected is not copied.
M-C copies text to the clipboard from the cursor position to the end
of the current paragraph, without deleting it. Supplying a
repeat count to this command determines the number a paragraphs
from which text will be copied. Supplying a repeat count of 1
is the same as supplying no repeat count.
C-d deletes the character under the cursor.
C-h deletes the character before the cursor.
M-d deletes the text from the cursor position forward, stopping at
the first character of the next word in the buffer. If the
cursor is on whitespace, this command will delete all the
whitespace characters between the cursor position and the next
non-whitespace character in the buffer. The deleted whitespace
is stored on the clipboard, unlike that deleted by the C-x C-p
command.
M-h deletes the text from the cursor position backward to the first
character of the word the cursor is within, or the first
character of the previous word if the cursor is between words.
C-x C-p deletes successive whitespace characters from the cursor
location to the next non-whitespace character in the current
line, or to the end of the line, if text does not appear after
the cursor location in the current line. The deleted whitespace
is not stored on the clipboard, but discarded. The user can
restore accidentally-deleted whitespace with the undo command.
C-k deletes the characters in the line from the cursor position
forward to the end of the line, excepting the terminating
newline. Invoking this command on a blank line will delete the
terminating newline, causing the blank line to be removed from
the buffer. If this command is given a repeat count, it will
delete whole lines. Successive invocations of this command will
cause each separate deletion to be appended to form one item on
the clipboard.
M-k deletes the characters from the start of the line the cursor is
on to the cursor position.
C-x E deletes the text from the cursor position to the ending
punctuation mark of the sentence the cursor is within or before.
C-x A deletes the text from before the cursor position to the ending
punctuation mark of the sentence preceding the one the cursor is
within or before.
C-x i deletes the text from the cursor position forward to the next
blank line, or line with a full-stop in column zero, without
deleting the line.
C-x o deletes the text from the blank line, or line with a full-stop
in column zero, closest to the cursor position, occuring before
the cursor position, without deleting the blank line.
C-x w deletes the text from the cursor position forward to the next
occurrence of a specified regular expression. The user is
prompted for the pattern to use.
C-x q deletes the text from the occurrence of a match on a specified
regular expression closest to the cursor position, occurring
before the cursor position, to the cursor position.
C-x K deletes the text from a specified bookmark to the cursor
position. The exact text deleted depends upon whether the
bookmark occurs before or after the cursor position in the
buffer, as described in the section documenting the region. The
book mark will be unset after this operation.
C-x = deletes the text from the first non-whitespace character in the
line the cursor is on, to the cursor position.
C-x y deletes the text from the cursor position to the end of the
buffer, excepting the final terminating newline of the final
line, which cannot be deleted.
C-x u deletes the text from the beginning of the buffer to the cursor
position.
C-x C-d deletes the text delineated by the region.
C-y pastes the content of the clipboard into the buffer before the
cursor position. The region is set to the inserted text, so
that it may be removed again by invoking C-x C-d, or M-y.
M-y deletes the text delineated by the region, moves the current
clipboard to the bottom of the clipboard stack, then pops the
clipboard on the top of the clipboard stack to replace the
current clipboard, whose content is then pasted into the current
buffer. Successive invocations after an invocation of C-y,
allow the user to browse the items on the clipboard stack, by
successively replacing the region with the content of each
clipboard on the clipboard stack.
M-t pushes the current clipboard onto the clipboard stack, and
creates a new empty clipboard for use by subsequent deletion
operations.
M-g destroys the current clipboard and replaces it with the last
clipboard pushed onto the clipboard stack.
C-x ; Prompts the user for a number of an item on the clipboard stack,
and then pastes the content of that clipboard into the buffer at
the cursor location. Clipboards on the clipboard stack are
numbered from 1, with clipboard 1 being the clipboard on the
bottom of the clipboard stack, which is to say, the first
clipboard pushed onto the stack. The number of the clipboard on
the top of the clipboard stack (the last clipboard pushed onto
the clipboard stack) may be ascertained by invoking this command
and giving it a clipboard number of zero.
C-x M-q Executes M-g, followed by C-y, to pop the clipboard stack and
paste the new content into the buffer at the cursor location.
C-x Q copies the contents of the clipboard on top of the clipboard
stack into the current clipboard, overwriting its previous
content, without popping the clipboard stack, and then pastes
the new content into the buffer at the cursor location.
Undoing Modifications To Buffer Content
Insertions and deletions may be undone with the undo command. If the
last buffer-modifying command invoked was the undo command, then the redo
command is available to allow the undone changes themselves to be undone.
One can think of the undo operation as moving the buffer back in time,
and the redo operation moving the buffer forward in time.
C-u undoes the last modification to the buffer. Changes to the buffer
occur in a line-oriented manner internally in the editor, and so
these changes are undone line-by-line as well. This means that if
you deleted many lines in the buffer with one invocation of C-x y,
for example, the lines would be undeleted one at a time, by
successive invocations of this command, and not all at once. The
undo behaviour of the editor may baffle you at first, but you are
merely seeing the changes that go on "behind the scenes," and if
you keep invoking C-u, you will get back to the buffer state you
desire. This command accepts a repeat count.
C-x _ undoes the last undo operation. This command is only available if
the last modification to the buffer was performed by an undo
operation. Once fresh changes to the buffer have been made after
the undo command has been invoked, the redo information is
discarded. This command accepts a repeat count.
One can think of the discarding of the redo information in this
manner. Let's say, after having moved the buffer backward in time
by invoking the undo command, and then perhaps having moved
forward in time again by invoking the redo command, the user then
chose to move forward into a different future from that point by
manually modifying the buffer content. At that moment the old
future is discarded and no longer exists.
Searching For Matches On Regular Expressions
All searches wraparound to search the portion of the buffer on the
opposite side of the cursor, if they do not find a match in the specified
direction. A search will fail if there is no match anywhere in the
buffer.
C-s searches forward in the buffer for a match upon a specified regular
expression. The user is prompted for the pattern to use.
C-r searches backward in the buffer for a match upon a specified regular
expression. The user is prompted for the pattern to use.
M-s repeats the last regular expression search, searching forward in the
buffer.
M-r repeats the last regular expression search, searching backward in
the buffer.
Transforming Lines With Regular-Expression-Based Substitutions
Each of the commands below performs a regular-expression-based
substitution over a range of lines in the buffer. For each command the
user is prompted for the pattern, the replacement text, and a repeat
count to use. A repeat count of 0 means to replace every occurrence in
the affected region. The replacement text can refer to the first ten
parenthesized subexpressions in the pattern by using the escape sequences
\1 to \0, with \0 referring to the tenth subexpression. The text of the
entire match can be accessed with \&. As well, \U turns on conversion to
uppercase and will effect all text from that point forward in the
affected line, including that portion of the line outside the replacement
text. Similarly \L will turn on conversion to lowercase. Either can be
turned off with \e. The two sequences \u and \l convert the single
character succeeding them to upper or lower case, respectively. These
commands are front-ends to the Munger(1) "substitute" intrinsic. More
information on performing substitutions can be found in the Munger(1)
manual page.
Terminating newlines are removed from lines when performing substitutions
so that "$" will match the empty string before the newline, and "^$" will
match empty lines. The terminators are replaced when the modified lines
are written back to the buffer.
C-x t performs a substitution on the portion of the line after the
cursor.
C-x T performs a substitution on the portion of the line before the
cursor.
C-x ) performs a substitution on the region from the cursor position
to the next blank line, or line with a full-stop in column zero.
C-x ( performs a substitution on the region from the blank line, or
line with a full-stop in column zero, closest to the cursor
position, occurring before the cursor position, to the cursor
position.
C-x S performs a substitution on the region from the cursor position
to the occurrence of the next match of a specified regular
expression in the buffer. The user is prompted for the pattern.
C-x R performs a substitution on the region from the match on a
specified regular expression closest to the cursor position,
occurring before the cursor position, to the cursor position.
The user is prompted for the pattern.
C-x C-r performs a substitution on the region.
C-x J performs a substitution on the region formed between a named
bookmark and the cursor location. The exact region affected
depends upon whether the bookmark occurs before or after the
cursor in the buffers as detailed in the section of this
document describing the region.
C-x . performs a substitution on the region from the cursor position
to the end of the buffer.
C-x , performs a substitution on the region from the start of the
buffer to the cursor position.
Modifying The Indentation Of Lines
The following commands alter the indentation of lines in the buffer. The
functions which decrease indentation, do so by one tab character or the
equivalent number of space characters, as determined by the tabstop
variable. Indentation is assumed to be in increments of this variable,
so for example, if it were set to three, then one tab or three space
characters would be removed from the start of the affected lines.
M-z decreases the indentation of contiguous lines from the line the
cursor is on, forward in the buffer. Supplying a repeat count
to this command determines the number of lines this command
affects. The default is to only affect the line the cursor is
on.
M-x behaves similarly to the above described command but increases
the indentation of the affect lines, instead of decreasing it.
C-x z decreases the indentation of the range of lines from the line
the cursor is on to the next blank line. Supplying a repeat
count to this command will cause it to affect lines to the nth
next blank line.
C-x x increases the indentation of the range of lines from the line
the cursor is on to the next next blank line. Supplying a
repeat count to this command will cause it to affect lines to
the nth next blank line.
C-x C-z decreases the indentation of the range of lines from the blank
line closest to the cursor position, occurring before the cursor
position, to the line the cursor is on. Supplying a repeat
count to this command will cause it to affect lines from the nth
previous blank line to the cursor position.
C-x C-x increases the indentation of the range of lines from the blank
line closest to the cursor position, occurring before the cursor
position, to the line the cursor is on. Supplying a repeat
count to this command will cause it to affect lines from the nth
previous blank line to the cursor position.
C-x 5 attempts to invoke M-%, to jump to the other end of a region
delimited by parentheses, brackets, or braces, and if
successful, decreases the indentation of that range of lines,
inclusive. This command ignores repeat counts.
C-x 6 attempts to invoke M-%, to jump to the other end of a region
delimited by parentheses, brackets, or braces, and if
successful, increases the indentation of that range of lines,
inclusive. This command ignores repeat counts.
C-x 7 decreases the indentation of the lines in the region. This
command ignores repeat counts.
C-x 8 increases the indentation of the lines in the region. This
command ignores repeat counts.
C-x ` increases the indentation of the range of lines from the cursor
position to the line containing the next occurrence of a match
on a specified regular expression, inclusive. The user is
prompted for the pattern to use. Supplying a repeat count to
this command will cause it to affect lines to the nth next
occurence of the specified regular expression.
C-x \ decreases the indentation of the range of lines from the cursor
position to the line containing the next occurrence of a match
on a specified regular expression. The user is prompted for the
pattern to use. Supplying a repeat count to this command will
cause it to affect lines to the nth next occurence of the
specified regular expression.
C-x | decreases the indentation of the range of lines from the
occurrence of a match on a specified regular expression closest
to the cursor position, before the cursor position, to the
cursor position. The user is prompted for the pattern to use.
Supplying a repeat count to this command will cause it to affect
lines from the nth previous occurence of the specified regular
expression.
C-x ~ increases the indentation of the range of lines from the
occurrence of a match on a specified regular expression, closest
to the cursor position, before the cursor position, to the
cursor position. The user is prompted for the pattern to use.
Supplying a repeat count to this command will cause it to affect
lines from the nth previous occurence of the specified regular
expression.
Altering The Capitalization Of Words
M-; capitalizes the character under the cursor, and converts any
contiguous non-whitespace succeeding characters to lowercase.
M-" converts the contiguous non-whitespace characters from the cursor
position forward to lowercase.
M-: converts the contiguous non-whitespace characters from the cursor
position forward to uppercase.
Reforming Paragraphs Of Text
The following commands filter a range of buffer lines through the
fmt.munger script, which is part of the Munger(1) distribution. Any tabs
in the formatted region will be expanded, according to the value of the
tabstop variable and their position in the line. The maximum length of
formatted lines is determined by the value of the line_length variable.
M-q formats the lines from the line the cursor is on to the next
blank line, or line with a full-stop in column zero. Supplying
a repeat count to this command will cause it to affect lines to
the nth next delimiter line.
M-w formats the lines from the blank line, or line with a full-stop
in column zero, closest to the cursor, before the cursor
position, to the line the cursor is on. Supplying a repeat
count to this command will cause it to affect lines from the nth
previous delimiter line.
C-q formats the lines from the line the cursor is on to the next
blank line, or line with a full-stop in column zero, propagating
any non-alphabetic prefix characters, possibly delimited by
whitespace on either or both sides, found at the start of the
first line of the region, to the start of each line of the
formatted region. This command can be used to format some types
of program comments and citations in email messages. Supplying
a repeat count to this command will cause it to affect lines to
the nth next delimiter line.
C-w formats the lines from the blank line, or line with a full-stop
in column zero, closest to the cursor, before the cursor
position, to the line the cursor is on, propagating any non-
alphabetic prefix characters, possibly delimited by whitespace
on either or both sides, found at the start of the first line of
the region, to the start of each line of the formatted region.
This command can be used to format some types of program
comments and citations in email messages. Supplying a repeat
count to this command will cause it to affect lines from the nth
previous delimiter line.
Working With Tags
The following command can be used to find the location of a toplevel
definition in program code, using tags tables. See ctags(1) for more
information on tags.
C-x C-g prompts the user for a symbol name on the status line, and
attempts to lookup that symbol in the tags file in the current
directory. If the cursor appears to be on a symbol in the
buffer, that symbol will appear on the status line as a default
value. Tag completion is available at the prompt and is
triggered by pressing the tab key. If a tag is found, the
editor will load the appropriate file and jump to the location
of the toplevel definition for that symbol as specified in the
tags table. The current filename and cursor position will be
pushed onto the file stack, first, and may be returned to with
the C-x 3 command.
Evaluating Munger Code
C-x L sends the s-expression immediately before the cursor position to
an inferior Munger process for evaluation. The editor will
attempt to read and page the inferior Munger's output. If the
editor does not receives output from the inferior Munger
immediately, it will complain. Any subsequently arriving data
from the inferior Munger may be paged by invoking C-x ?.
C-x ? displays any output pending from the inferior Munger process.
C-x C-l terminates the inferior Munger process.
Miscellaneous Commands
C-x s Causes the editor to remove trailing contigous whitespace
characters from the ends of buffer lines. Lines consisting of
only whitespace will become blank lines.
M-% instructs the editor to move the cursor to the location of the
delimiter which matches ("closes") the delimiter character under
the cursor. If the cursor is not on a "(", ")", "[", "]", "{", or
"}" character, an error message will be displayed in the status
line.
C-o inserts a blank line into the buffer before the line the cursor is
on.
C-x g displays the filename associated with the buffer, the cursor
position, and whether or not the buffer contains unsaved changes,
on the status line.
C-x V displays the version of the editor and the version of Munger on
which is it running, as well as the author's copyright notice.
C-x C-v
counts the number of words in the buffer, using the same algorithm
as wc(1), and displays the count on the status line.
M-i allows the user to insert any character their keyboard can
generate, excepting the carriage return character (ascii 13), into
the buffer. When invoked, the command prompts the user to type a
character and that character is inserted into the buffer. In this
manner characters which have commands bound to them, may be
inserted into the buffer.
AUTHOR
James Bailie <jimmy@mammothcheese.ca>
http://www.mammothcheese.ca
Mon, Oct 13, 2014