So you just got yourself a character and you want to type in a nice long description of yourself so that everyone knows what you look like.
The first thing you probably noticed was that you are limited to 4 to 5 lines of text or about 512 characters. Most standard telnet programs have this as a limit. The other thing you noticed was that if you made a typo on your second sentence, you had to probably retype the entire description if you didn't notice it in time.
How to get around this annoyance? How to get a longer description?
The answer is simple. Use lsedit lists.
< cue dramatic music >
An lsedit list is a series of properties stored on some object. This list can be read and displayed a number of different ways which will be explained later.
The syntax to create an lsedit list is:
<object> can be a dbref, object name, or the words "me" or "here". "me" refers to your player object, "here" refers to the room you are
<listname> can be any text you want.
Some examples of lsedit:
lsedit me=mydesc - this will create a list called "mydesc" on your player object. lsedit me=_desc/human - will create a list called "_desc/human" on your player object. lsedit here=roomdesc - will create a list called "roomdesc" in the current room. (assuming you own the room.)
Once you type in the lsedit command, you will be put placed into the lseditor which resembles EDLIN for MS-DOS people. The lseditor runs in an 'interactive' mode which means that you anything you type gets sent to the lseditor and not to the muck. So if someone pages you while you're in the lseditor, your response page will be input as a line in the lseditor unless you exit the lseditor first.
In lsedit, each line can have up to 4096 characters or as many characters as your terminal will allow you to type. If you press enter, it will advance to the next line. There are a number of commands in lseditor that are used by entering them on a line by themselves.
To get a list of commands, type '.h' and press enter.
'.end' will save any text you type in and exit the editor.
'.abort' will exit the editor without saving the text.
'.l' will list what you have typed so far.
'.p' will list what you have typed with line numbers.
'.del linenumber' will delete that line.
There are a number of options available for how you type in descriptions. There are two recommendations I have. The first is to type your description out completely and then use the command, '.format 1 $' at the end. This will automatically format break your text into separate lines of 72 columns each with wordwrapping. The second is two have each sentence on a separate line, ie. press enter after each period. This allows for easier editing, but also requires that you use a certain method to display the list.
~ Author Unknown
Any line not starting with a '.' is inserted at the current line.
Lines starting with '..', '."' , or '.:' are added with the '.' removed.
Sarting with '.|' will remove the '.' in the editor.
st = start line en = end line de = destination line
|.end||Exits the editor with the changes intact.|
|.abort||Aborts the edit.|
|.h[elp]||Displays this help screen.|
|.i [st]||Changes the current line for insertion.|
|.l [st [en]]||Lists the line(s) given. (if none, lists all.)|
|.p [st [en]]||Like .l, except that it prints line numbers too.|
|.del [st [en]]||Deletes the given lines, or the current one.|
|.copy [st [en]]=de||Copies the given range of lines to the dest.|
|.move [st [en]]=de||Moves the given range of lines to the dest.|
|.find [st]=text||Searches for the given text starting at line start.|
|.repl [st [en]]=/old/new||Replaces old text with new in the given lines.|
|.join [st [en]]||Joins together the lines given in the range.|
|.split [st]=text||Splits given line into 2 lines. Splits after text|
|.left [st [en]]||Aligns all the text to the left side of the screen.|
|.center [st [en]]=cols||Centers the given lines for cols screenwidth.|
|.right [st [en]]=col||Right justifies to column col.|
|.indent [st [en]]=cols||Indents or undents text by cols characters|
|.format [st [en]]=cols||Formats text nicely to cols columns.|
|.mpi [st [en]]||Tests the mpi code in the given lines.|
|.paste [st]=[db]/[lsprop]||Grabs a list of strings and pastes them to the editor.|
|.sort [st [en]][=reverse]||Sorts the list in order to being forward or reverse.|
|.scramble [st [en]]||Randomize the strings in the list.|
|.ansi [st [en]]=[atype]||Parses ansi to standard ansi for the lines. [1 = neon, 2 = mush].|
|.unparse [st [en]]=[atype]||Unparses ansi codes for the given type. [0 = standard, 1 = neon, 2 = mush]|
|.escape [st [en]]=[atype]||Escapes the ansi codes to be displayable. [atype same as .unparse]|
|.lhelp||Shows a help screen for the program running the editor.|
Example line refs: $ = last line, . = curr line, ^ = first line.
12 15 (lines 12 to 15) 5 $ (line 5 to last line) ^+3 6 (lines 4 to 6)
.+2 $-3 (curr line + 2 to last line - 3) 5 +3 (line 5 to curr line + 3)
Note: To run any command in the editor type: |<any command>
Type '|@set me=_prefs/lstoggle:alt' to change how this works.
|.undo||Returns the list to its last save state.|
|.save||Saves the current list to its property.|