Nomenomicon

This is the Nomenomicon, it contains all of the built-in Merlin commands and nomens, with usage notes.

Note: This page will be updated based upon the development branch of Merlin, not stable releases.

Normal Commands:

[s] ;genesis
Create a new volume, filled optionally with [s]
[i] ;spine [s]
Return the name of the volume at index [i]
;carved [s]
Return "@" if the current volume is written, "!" otherwise
[i] ;shelve
Close volume [i]
[i] ;focus
Focus volume [i]
;volume [i]
Return the index of the current volume
;volumes [i]
Return the number of open volumes (this is also the index of the last volume)
[c] ;incant [s]
Run a system command, returning the text written to stdout
[c] ;decant [s]
Similar to incant, but for stderr
[s] [c] ;infuse [s]
Pipe [s] into command [c], returning stdout
[s] [c] ;defuse [s]
infuse for stderr
;spot [i]
Return the current line number
;span [i]
Return the total number of lines in the volume
;pin [i]
Return the location of the cursor
;columns [i]
Return the length of the current line
[n] ;traverse
Move the cursor vertically in relation to the current line. If [n] is positive, move down. If negative, go up
[n] ;shift
Like traverse, but for moving the cursor horizontally on the current line.
[i] ;appear
Move to line [i]
[i] ;infix
Move to character [i]
[i] [i] ;peer [s]
Return all of the lines in the range described by the given indexes
[s] ;inscribe
Insert [s] into the current volume
[s] ;trample
Like inscribe, but it overwrites text
;burn
Empty the entire volume
[n] ;shave
Delete [n] characters left of the current cursor position
;molecule
Print the contents of the stack to the screen, separated by spaces
;atoms [n]
Return the length of the stack. Hhow many atoms are present)
;pen
Print the last atom on the stack (This does not consume the atom)
;orbit
Perform a swap with the last two atoms
;pervert
Reverse the stack
[a] ;decay
Pop off the bottom atom
...[a] ;destroy
Clear the stack
...[a] [s] ;tether
Join atoms together by [s], consumes entire stack
[s] [s] [s] ;stitch
Like tether, but it only operates on two atoms
[s] [s] ;fray
Split [s] by [s]
;atom
Switch to atom mode
;scribe
Switch to scribe mode
;adieu
Quit Merlin
...[a] [;] ;nomen
Create a new "nomen" (macro)
[a] [;] ;bottle
Create a "nomen", only taking one atom
[;] ;disenchant
"Clear" a nomen, the nomen will still remain in memory but will do nothing
[;] ;smash
Completely remove a nomen from memory
[;] ;rune
Return the definition of a nomen
[s] ;merlin
Execute an atom as inline Merlin Notation
[f] ;summon
Open file [f] for editing
[f] ;dub
Name an unnamed volume [f]
;carve
Write a volume to a file
[f] ;spellbook
Open and parse [f] as Merlin Notation

Predefined Nomens:

;space [s]
Returns a space
;tab [s]
Returns a tab
;new [s]
Returns a newline character (\n)
;blank [s]
Returns an empty atom
;escape [s]
Returns an escape character (ASCII 27)
;scribe-nomen
Runs after each line is parsed in scribe mode, by default it does nothing
;atom-nomen
Exactly the same as scribe-nomen, but for atom mode
;scribe-pompt
This nomen is parsed BEFORE each line in scribe mode is parsed. It is intended to be used as a prompt, but you can do with it as you wish
;atom-prompt
The same as scribe-prompt, but it has a default setting. By default it prints a comma followed by a space