pedit Manual

written by

Paul Nevai

Paul Nevai

[still under construction - and so is the manual since pedit keeps evolving constantly]

NOTE. This very same manual can be found online here (HTML) and here (text). You can also download them from here (HTML) and here (text).

NOTE. If you are new to pedit, then you may want to start with the pedit Tutorial whose archived version you can find here together with other material.

WARNING

Since pedit, LapTopHack, and pToolSet share components, if you use more than one of them, then they all must be of the same version, preferably the latest one.

Table of Contents

Abstract

The pedits are innovative, scriptable, keyboard/thumbboard friendly, and extraordinarily powerful text editors for Palm Powered handhelds.

Introduction to the pedit Family of Palm Text Editors

Dear peditor:

Thank you for having made such an intelligent decision. In case you are one of those self-assured people who never read manuals [just like yours truly], then go ahead and experiment on your own. I know you won't regret it. On the other hand, if you want to be a savvy, intelligent, and educated customer prior to immersing yourself into the limitless features of pedit, then please set aside a few minutes of your precious time to read this [relatively speaking] short introduction to pedit.

The word pedit stands for Palm editor, and/or Paul's editor, and/or programmers' editor, and/or whatever else you prefer. It must be spelled with a lower cased p as in pedit. If you are a certified peditor, then you pronounce pedit as a 3-syllable word as in pee-edit.

By definition, a peditor is a person who installed pedit on his or her Palm computing device. A true peditor duly REGISTERS pedit. In case you happen to have a shorter than normal attention span [just like yours truly], let me repeat that a true peditor...

pedit is based on Palm Computing's built-in Memo Pad and is meant to replace it [just like DateBk made "Date Book" obsolete]. It packs a myriad highly customizable features which makes it a perfect tool for anyone using the Palm for serious text editing.

pedit also imports and exports industry standard Palm-style DOC files so that it is a perfect replacement for all Palm based text editors known to mankind.

Even casual writers will appreciate its simple but rich and efficient interface.

Due to overwhelming popular demand, the pedit family of editors consists of several applications, namely, pedit [aka pedit04], pedit32, peditPro, and peditLight.

pedit [aka pedit04] is for those peditors who want a hasslefree and super sophisticated Memo Pad replacement with 100% Memo Pad compatibility, and who don't want to be bothered and/or concerned with HotSync and DeskTop issues.

In what follows, sometimes I will refer to pedit as pedit04 since the word pedit is also used as a generic term for any member of the pedit family. If a specific feature relates to a specific pedit, then it will be emphasized.

pedit04 and pedit32 are essentially identical in practically every form and function with the exception that pedit32 breaks the infamous 4K barrier, and it works with memos of size up-to 32K [well, it is really 32K - 1, i.e., 0X7FFF, i.e., 2^15-1, i.e., 32767 bytes].

pedit32 is for those peditors who want to be able to create files which are bigger than the regular Memo Pad files are. Those peditors who want to access their pedit32 memos on the DeskTop, will have to do some additional steps involving exportation [see here too] of pedit32 memos to pedit04 or DOC files, and importation of DOC files to pedit04.

Prior to installing pedit32, you should read the section pedit04 vs pedit32 so that you would be fully aware of the subtle and not so subtle differences between the two.

peditPro is the flagship of the pedit family. It combines pedit04 and pedit32 into one convenient application whose RAM demand is more than 200K less than that of pedit04 and pedit32 combined. peditPro has two modes. If it is in pedit04 mode then it looks like pedit04, smells like pedit04, and behaves like pedit04. Similarly, if it is in pedit32 mode then it looks like pedit32, smells like pedit32, and behaves like pedit32. If I may suggest so, use peditPro and forget all the other pedits.

NOTE. Only peditPro has extensive Dynamic Input Area [DIA] support. No other flavor of pedit supports the DIA.

If your Palm is short of free RAM, then you can save approximately 100K if you use peditLight instead of pedit04. peditLight is identical to pedit04 in almost all essential editing functions. However, many of the "high end" feature of pedit04 are unavailable in peditLight. More precisely, those "high end" features are visually indicated but are functionally disabled in peditLight. For instance, all menu items starting with ! are disabled. This way, based on your editing needs, you can decide whether or not you want to upgrade to another pedit04.

pedit04 and Memo Pad can and do co-exist peacefully. Although pedit04 uses the Memo Pad database "MemoDB" with creator ID 'memo', it does not alter its structure in any way whatsoever so that the user can switch back and forth between the two with no harm done [see Clear History and Clear Preferences]. To be quite honest, once you try pedit04, you will probably never ever want to go back to Memo Pad. Still, if you wish, you may. In addition, deleting pedit04 from your hand-held device, does not remove the database MemoDB created by Memo Pad, although it will delete pedit04's own preference record and its own peditDB database. In particular, you don't need to worry about HotSync and conduit issues in conjunction with your memos since they all reside in MemoDB. The peditDB database holds the contents of your magiPad, scriptPad, and some records related to Find'n'Replace. For your protection, peditDB gets backed up by HotSync.

pedit32 and the Memo Pad can and do co-exist peacefully as well. However, pedit32 uses its own memo database which is called Memo32DB with creator ID 'pn32', and, therefore, pedit32 is almost 100% incompatible with everything imaginable which uses Memo Pad although each developer supporting the Memo Pad database can easily reconfigure her software for pedit32 support as well. Please see pedit04 vs pedit32 for more details.

If you are a Palm or pedit "newbie", and if you already feel overwhelmed by this sizeable manual, then it may be a good idea for you to visit James Seigel's, Harvey Gatlin's, Peter Grierson's, and Lee Hauser's pedit Tutorial whose archived version you can find here together with other material.

Minimum Requirements

If your Palm's operating system is below 3.0 you are out of luck. I designed pedit to work with OS 3.0 and above. It was tested with all operating systems above 3.0.

There are many peditors with Visors and TRGPros [including yours truly], and there seems to be absolutely no problem with using pedit on them. I believe that pedit will work practically flawlessly on all Palms and all Palm Powered handhelds as well as long as the operating system is at least 3.0.

There are a few pedit features which are available only on Palms with operating system 3.5 and above. However, they are minor features and I seriously doubt that you will miss them.

There is one feature of pedit which I like very much and which is only available if your Palm operating system is below 3.5. Namely, you can have inverted or black buttons only if your Palm OS is below 3.5.

If I may give you some unsolicited advice, as of July 7, 2000, my choice for a Palm OS is 3.3. It is the fastest and the most bug-free [or least bug ridden]. Alas, it is a fact of life that all but the simplest computer programs have scores of bugs, and this includes the Palm OS as well.

If I may give you another unsolicited advice, as of August 25, 2000, I have been using Palm OS 3.5.2 on my Palm Vx and Palm OS 3.5.1 on my TRGPro for a couple of weeks now, and the only problem I encountered so far was that it takes longer than I wish to go to the Application Launcher.

If I may give you yet another unsolicited advice, as of January 1, 2002, I have been using Palm OS 4.0 with great success as well.

Whether or not you want another piece of advice from me, here it is. If your Palm Powered handheld is upgradable, that is, it has a flash ROM, then please do not procrastinate and upgrade it.

I must admit that even pedit may have some bugs. If you find any, please e-mail a bug report to me.

pedit was written with a 100% compliance with the Palm software developers' general guidelines. It was built with the latest version of MetroWerks' and Palm's CodeWarrior on a Power Macintosh G3.

Well, I did improve upon the standard Palm interface on several occasions. For instance, my tips dialogs are more legible then Palm's. Another example is that even my simplest dialogs can take keyboard inputs and they even react visually to such inputs.

I also introduced a number of new concepts such as buttonPanel, instantHelp, magiPad, Find'n'Replace, and so forth.

Compatibility Issues

pedit was written with a 100% compliance with the Palm software developers' general guidelines.

Therefore, there are absolutely no compatibility issues whatsoever except the following.

First, the Palm OS itself is not entirely bug-free, and therefore, pedit, just like any other Palm application is at the mercy of Palm's software engineers.

Second, there are a great number of applications which themselves are not exactly bug-free and which may effect the behavior of other applications. Unfortunately, there is no way that pedit can defend itself against problems introduced into the Palm operating environment by other applications.

In particular, there are a number of HackMaster extensions which are defective.

Moreover, there are a number of defective applications which patch the OS even though they are not installed using the standard HackMaster mechanism.

Third, pedit itself is a rather complicated program, and, therefore, it also must contain a large number of bugs despite the fact that it passed tens of millions of gremlin test with various hardware and operating system configurations on the Palm OS Emulator [POSE].

pedit should work perfectly with every bug-free HackMaster extensions as long as either HackMaster or a reputable replacement is used as the HackMaster extension installer application.

As long as the HackMaster extension is bug-free and it is flash ROM certified, pedit doesn't care whether your HackMaster extension is installed into the regular RAM or the flash ROM.

Beware of applications which play tricks with your Palm's operating system.

Some users of pedit reported some problems with the following HackMaster extensions and applications: AportisDoc, ClipHack, Clipper, EVPlugBase, FindHack 3.8, GoType!'s keyboard driver, PPK's keyboard driver, TakeNote!, and TrapWeaver.

Please note that when I polled the peditors regarding the above mentioned HackMaster extensions and applications, there were quite a few who have never experienced any problem with them whatsoever.

However, for instance, if you have ClipHack and the "wrong" Palm OS [newer than 3.0], then the following procedure, as described by David Sommers, leads to a guaranteed crash which has nothing to do with pedit.

1) Open a small memo in pedit.
2) Select a small amount of text.
3) Press the "X" button in EditView's buttonPanel to cut the selected text.
4) Press the SilkScreen "MENU" button.

You have a crash with a "HwrRes.c, Line:215, Menu rsrc not found" error message.

The author of ClipHack told me on June 16, 2000, that he is working on trying to figure it out how to fix the problem.

The problem with AportisDoc and TakeNote! is that they treat DOC files differently than all the other DOC related applications.

It is somewhat unfair to accuse AportisDoc with anything since Rick Bram invented the DOC format in the first place. Nevertheless, if you use AportisDoc to read a DOC file prior to importing it to pedit, then all bets are off. In practically all cases you will not experience any problem at all. Nevertheless, there are scenarios under which the import procedure may fail.

The problem with TakeNote! is more innocent but, at the same time, it is more serious. As of July 17, 2000, when TakeNote! opens a DOC file, it modifies it in such a way that the file may no longer be interpreted by any other DOC related application in the proper way. While TakeNote! has every right to do so, it should also leave a message that it modified the DOC file so that the other DOC applications would have a chance of re-reading the DOC file prior to interpreting it. For instance, TakeNote! could [should] change the creator ID of all DOC files it modifies. This would send a clear message to the other DOC applications.

I hope that TakeNote!'s authors will take note of this very unfortunate behavior of TakeNote!, and that they will take steps to fix their program. Although I have notified them of this problem, as of July 17, 2000, TakeNote! has not been fixed yet. As soon as I get notified by the TakeNote! people that the problem has been fixed, I will update this discussion.

At this point, it must be clear to you that resolving compatibility problems is more like a subtle excursion into fine art than a rigorous scientific exercise.

SergioG told me FindHack 3.8 will crash your Palm if you use some "fancyFind" features of pedit. I verified his claim and indeed this happens since FindHack modifies the Palm OS TxtFindString() function and the modification may have been done incorrectly. I suggest that you either stop using "fancyFind" or switch to superFinderHack.

The Palm Operating System Emulator [POSE] vs. LapTopHack and pedit

It is my understanding that the latest versions of POSE, effective with perhaps version 3.2, limit the size of the ClipBoard to a maximum of 1000 characters. This limit is hardcoded into POSE and cannot be changed. Therefore, you should never ever use POSE for serious work with either LapTopHack or pedit since POSE may truncate your text without any warning.

It is perfectly all right to test LapTopHack and pedit with POSE but please do not perform text related tasks with your essential data.

Fitaly with LapTopHack and pedit

As HenkK pointed out, Textware Solutions' Fitaly and FitalyStamp have a "slide" mode which may result in some unexpected behavior, since instead of entering a letter, say, "A", sliding enters "a" first, then deletes it, and then enters "A". Hence, please read the following advice which was contributed by JohnH.

In addition to the regular "slides", Fitaly and FitalyStamp users can also assign text strings of up to 25 characters to each letter of the alphabet through a "Custom Left Slide" feature. This is perfect for starting pScripts or doing other actions in LapTopHack and pedit, if the first character of the assigned string is the appropriate "ESC" character.

Note however that by default, the lower case letter character itself is immediately sent to the current application at the pen-down motion. If that pen-down motion is turned into a slide (even a slide to simply capitalize the letter), then thelowercase letter is quickly erased and replaced by the "correct" one(s). Unfortunately, if the current application can respond to a single character (like LapTopHack and pedit do in certain cases), Fitaly cannot always retract it by deleting. The result is unexpected behavior.

The solution is to use Fitaly or FitalyStamp's Key Options menu to "Set letters at pen up". That way, nothing is sent to the application until the slide is done, at which time the correct character(s) are sent. According to the Fitaly manual, the "Set letters at pen up" option may slow Fitaly or FitalyStamp down. However, this has not been observed in actual usage.

Downloading pedit

I suggest that you use the official pedit web page which always has the most recent versions of all pedits. However, please keep reading.

NOTE. If you download pedit from Palm sites go such as Handango, I can't guarantee that you always get the latest version from them.

You can download the latest version of this very same manual as pedit_man.zip right here, or you can read pedit_man.html on-line here.

You can download pedit.zip or pedit.tgz right here.

You can download pedit32.zip or pedit32.tgz right here.

For your convenience, pedit and pedit32 are available in one combination package as well. You can download peditCombo.zip right here.

You can download peditPro.zip or peditPro.tgz right here.

You can download peditLight.zip or peditLight.tgz right here.

You can download peditFixer.zip right here. It is also included in all of the pedit packages.

If you are a Mac user, then you can download pedit.hqx, pedit32.hqx, peditPro.hqx, peditLight.hqx, and peditFixer.hqx here.

NOTE. The latest (perhaps beta) version of all pedits is here. I encourage you to install this version which is usually (but not necessarily always) quite stable, and which is always much better than the "officially" released version.

Installation

All pedits install the usual way via a HotSync job. If you are not sure how to install Palm applications, please study the manual which came with your Palm.

pedit can run both from the regular RAM and from the flash ROM as well.

It may be useful to remind you that if you already have any of the pedits installed, and if they happen to be in the flash ROM, then please move them back to your regular RAM prior to installing the newer versions.

If you are about to install peditLight then use peditFixer first to delete pedit04, and then do a normal installation job. If you delete pedit04 using Palm's built-in deletion mechanism, then you will lose your magiPad.

If you are about to install a pedit over an older version of the same pedit, then there is no need to delete your pedit prior to installing the new version. Otherwise, you will lose your corresponding pedit preferences, including your pedit registration [see the here and here].

If you are installing a new version of pedit32 over an existing pedit32, then you must not delete your current pedit32 prior to installing the new version. Otherwise, you will lose your pedit32 memos.

If you are about to install peditPro then please read the following paragraphs very carefully.

It is safe [but not recommended] to use Palm's built-in deletion mechanism to delete pedit04 prior to installing peditPro, but you will lose your magiPad if you do so. In addition, you will also lose your pedit04 preferences, including your pedit registration [see the here and here].

If you have pedit32 memos then do not delete pedit32 via Palm's built-in deletion mechanism before you install peditPro. Otherwise, you will lose your pedit32 memos. In addition, you will also lose your pedit32 preferences, including your pedit registration [see the here and here].

If this is the first time you install peditPro, please install peditPro over your existing pedit and/or pedit32. Then run peditPro and the first thing to do is to use the Total Cleaner Upper command in ListView's Options to delete pedit and/or pedit32 without deleting your pedit04 memos and/or pedit32 memos.

QUESTION. What are pedit04! [pedit04Launcher] and pedit32! [aka pedit32Launcher]?

ANSWER. Please see the truth about pedit04! and pedit32! here.

NOTE. If your current pedit is prior to version 5.43 then please delete the outdated "pedit!" [with exclamation mark and aka peditLauncher] and "pedit32!" [also with exclamation mark and aka pedit32Launcher] from your Palm prior to installing the new pedit04Launcher.prc and pedit32Launcher.prc with version numbers at least 5.43. You can use your Palm's built-in deletion mechanism for this job [see here].

QUESTION. Which flavor of pedit should I install?

ANSWER. I recommend peditPro although the truth is that all pedits are equally powerful [except perhaps peditLight] and your own editorial needs should determine which one to pick. It may be useful for you to review the differences between pedit04 and pedit32. If you can't decide, get peditPro.

WARNING. If you use version 7.xx or newer of any of the pedits, LapTopHack, or pToolSet, then all your pedits, LapTopHack, and pToolSet must be 7.xx or newer since they are not compatible with version 6.xx or older.

In addition, since pedit, LapTopHack, and pToolSet constantly exchange information, it may be necessary that they be of the same version number.

NOTE. I suggest that you keep a backup copy of your peditDB.pdb which is somewhere in your HotSync backup directory on your desktop computer since you may need it in the highly unlikely event that you decide go back to versions 6.xx of pedit, pToolSet, and LapTopHack.

NOTE. Only peditPro has extensive Dynamic Input Area [DIA] support. No other flavor of pedit supports the DIA.

Registering pedit

Now a few words about the benefits of registering pedit.

If you shell out the registration fee, then, in return, most, but not necessarily all, future versions will be made available to you for free on pedit's web page or here. For practical purposes and for legal reasons, I reserve the right to change this policy [the latter happened when version 6.00 was released].

Please keep in mind that I will always notify the peditors Forum if there is an update [subscribe]. For some details about the peditors Forum see here.

If you wish, then we can work out a deal that I will always e-mail you the most recent updates.

Here is another excellent reason for registering pedit. If you do so, then you will never see my friendly reminders which, eventually, will make even the most stubborn conscientious objectors follow the directions in the next paragraphs.

Upon registration you will be issued a personal password which you should enter using the Register button in the About pedit window.

Please note that you are not allowed to share registered versions of pedit and/or pedit passwords with anyone, including [but not limited to] your friends, relatives, colleagues, and neighbors.

However, your immediate family members [spouses, significant others, children, and parents living in the same household under the same roof] are allowed to use your registered pedit, as long as they agree to abide by the same rules as regular registered users.

If you have not registered pedit yet, then please do so without any delay.

Registering pedit and pedit32 will set you back by $US20.00, peditCombo and peditPro by $US32.00, whereas peditLight costs $US9.00.

NOTE. Please see www.paulcomputing.com for occasional discounts, ongoing promotions, and money-saving deals.

You can always upgrade/downgrade/sidegrade from one pedit to another by contacting me. There is an upgrade fee, whereas downgrades and sidegrades are usually free.

For instance, if you are registered for peditCombo then peditPro is free for you, and vice versa, whereas, going from pedit to peditPro costs $US12.00.

If you honestly cannot afford the registration fee but you must have my Palm products anyway, then please contact me for discount rates.

PayPal is the strongly preferred, easiest, and fastest way to register pedit. Please register

at PayPal right now.

A working alternative is to mail a check for US$20.00 [pedit or pedit32] or US$32.00 [peditCombo and peditPro] or US$9.00 [peditLight] to Paul Nevai, 3346 Mansion Way, Columbus OH 43221-1573, USA. Please include your e-mail or your mailing address if you have no e-mail.

You can also register pedit at eSellerate: browse all, pedit, pedit32, peditCombo, peditPro, peditLight, peditUpgrade.

QUESTION. I am a Palm-procrastinator, and I allowed my unregistered pedit to expire. Now I realize that I can't live without pedit, and I quickly registered it. However, I am unable to start up pedit since it refuses to run. What can I do? Am I doomed for good?

ANSWER. Do not panic! You did the right thing when you registered pedit. Now wait for your password to arrive. Once you have the password, download the latest release of pedit and then go ahead and run it on your Palm. It will allow you to register it even if your trial time has run out.

Technical Support

First, please read the section about troubleshooting.

Second, if the advice given in the section on troubleshooting did not solve your problem, then please contact me.

Please state clearly the name of your pedit, the version number, and compilation time'n'date of your pedit, the exact name of your Palm hardware, the version number of you Palm operating system, and please describe the problem you have experienced.

NOTE. The About pedit dialog has all the information you need about your pedit.

If you live in North America, please provide your phone number, your time zone, and the times which are convenient for you. If possible, please write your phone number in the form 1-XXX-YYY-ZZZZ which makes it easier for me to process it automatically.

Please use civilized language when writing to me. Otherwise, I may not respond. In the past year I received thousands of messages and about a handful of them were abusive. The latter did not please me at all.

Please note that you can also obtain help by contacting the peditors Forum. In fact, as it turns out, the collective mind of all peditors works better than mine alone. Therefore, in most if not all cases, it makes sense to write to the peditors Forum prior to contacting me.

On the advice of JohnH, I recommend that you use the following template when contacting me.

DO: Your Name (yourname@yourisp.com) year/month/day [such as 2001/09/11]
Short description of the problem such as "I start up peditPro and my Palm crashes."
Application: [LapTopHack | peditPro | pedit | pedit32 | peditLight]
Version: [such as 5.73]
Compilation time'n'date: [11:01:43 EST on Jan 19 2002]
Handheld hardware:	[such as TRGPro]
PalmOS version: [such as 3.5.1]
Other hardware (keyboard, expansion memory, etc.):
Free memory: [such as 2Mb]
Other HackMaster extensions active: [such as FitalyStamp]
Other OS patching applications: [such as QuickBits]
Steps to reproduce:
Other comments: [such as "I love your stuff"]

Troubleshooting

First, please read the section about compatibility issues.

Second, turn off all your HackMaster extensions and other OS patching applications you may have, and see if the problem goes away. If it did, then turn on your HackMaster extensions and/or OS patching applications one by one and isolate the problem.

NOTE. Unfortunately, many peditors don't realize that they are running OS patching applications and they keep insisting that pedit crashed even though they uninstalled all their HackMaster extensions. This is making life real difficult for me despite their good intentions.

EXAMPLE. Our veteran peditors, Bill, Joe, and HenkK kept insisting that pedit crashed if they used the Monaco font and the text had a ShortCut symbol in it. I kept saying that I don't see why this should happen since it made no sense to me. Finally, it dawned on me that they must be using an application which behaves like a HackMaster extension and they forgot about it. Bingo. It turned out that they all used QuickBits which patches the OS. Once they adjusted the parameters in QuickBits [they turned off "BltDrawChars"], everything was back to normal. The corollary of this story is that if you have a problem, then you also need a certain degree of ingenuity in helping me to hunt the problem down. The funny thing is that I can't even blame the QuickBits guys since I am sure they include a warning in their manuals that QuickBits may mess cause incompatibilities the system.

UPDATE. Dafydd told me on January 7, 2002, that the crash may be due to bad font specifications in the Monaco font and QuickBits may be completely innocent.

Once you identified the guilty party, please contact their technical support and explain the problem. I know from personal experience that most Palm developers provide superior support.

However, there are some exceptions. If you happen to experience the latter, then please be persistent. Being polite can't hurt you. It may help your case if you send a copy of your correspondence to the peditors Forum and to some of the Palm related newsgroups such as comp.sys.palmtops.pilot and alt.comp.sys.palmtops.pilot.

You may also try Calvin's PGHQ FAQ. Some of my own Palm knowledge comes from studying this FAQ database.

Third, use the Clear History and Clear Preferences commands in ListView's Options menu.

Fourth, run peditFixer

peditFixer

and try to delete some or all pedit components. Then reinstall your particular version of pedit and reenter your password.

It is always safe to delete all pedit components except MemoDB and Memo32DB which contain your pedit04 and pedit32 memos, respectively. Delete the latter only if you did a HotSync job prior to running peditFixer.

NOTE. Deleting pedit04! and pedit32! is done via Palm's built-in deletion mechanism.

EXAMPLE. Sometimes peditDB which houses magiPad and scriptPad gets corrupted. This may lead to crashes when attempting a Find'n'Replace job. If so, just copy the contents of magiPad and scriptPad to a 32K memo, use peditFixer to delete peditDB [check the "magiPad" box], and then open up your pedit and restore magiPad and scriptPad. That should fix the problem. This advice has been tried out and worked several times in the past.

WARNING. Please keep in mind that pedit04 memos and Memo Pad memos are exactly the same animals.

Next, check out the peditors Forum or write to peditors Forum since, as I mentioned it already, the collective mind of all peditors works better than mine alone.

If the problem still persists then contact pedit's Technical Support.

QUESTION. My pedit refuses to start up. When I tap on the icon, the screen looks for pedit but then returns to the launcher program I am running on my Palm. What is going on?

ANSWER. I don't have the faintest idea what is going on. This happened to three peditors only out of thousands. One of them disappeared from the pedit the scene before I could investigate it, whereas the second one, Elwood Matthews, solved the problem by deleting magiPad with peditFixer so that I never had a chance to be able to find out the reasons. I suspect that you may have a corrupted magiPad but I can't be sure until I am able to complete a case study. I told the third person what Elwood did, and I also told him to delete all the pedit preferences with peditFixer as well. It worked and I was again robbed the opportunity to investigate it.

The peditors Forum and Mailing List

Please check out Paolo Amoroso's peditors Forum for details [subscribe].

You can post messages to the peditors Forum here.

As I mentioned already, if you are a Palm or pedit "newbie", and if you already feel overwhelmed by this sizeable manual, then it may be a good idea for you to visit James Seigel's, Harvey Gatlin's, Peter Grierson's, and Lee Hauser's pedit Tutorial whose archived version you can find here together with other material.

Whether or not you are an "expert", you will greatly benefit from visiting peditors.com which was created by John Kershaw and is maintained by him and by a growing number of enthusiastic peditors.

For Palm Software Developers: the pedit SDK

The pedit Software Developer Kit [SDK] is available here.

In addition, all legitimate Palm software developers can count on my absolute and enthusiastic cooperation in providing mutual support for each others' software.

Terminology

As I already mentioned it, the word pedit is used as a generic term for any member of the pedit family.

When pedit refers to the actual pedit application, then I will use the term pedit04.

In what follows, Palm refers to any Palm computing device or any clones thereof.

DeskTop refers to your computer which is used when you HotSync files. It is irrelevant whether it is a Macintosh or a PC or a Unix/Linux box. The only thing what matters is that it holds your backed up files after a HotSync operation.

When I refer to a keyboard, I mean an actual piece of hardware, and not Palm's built-in virtual keyboard.

A DOC file has nothing to do with dot.doc files which are used in the DeskTop universe in conjunction with some word processors. In the Palm universe, a DOC is a special file [or a file structure] which allows to install and view [large] text files on your Palm.

Quoting from Rob Tillotson: The Doc format is the de facto standard for large text documents on the Palm Computing Platform. It enjoys wide support in both software and content, but documentation is sparse.

I suggest that you read Rob Tillotson's The Doc Format as an introduction.

A pedit04 memo refers to a memo created by pedit04 or peditLight as opposed to a pedit32 memo which is created by pedit32. Of course, peditPro can create either of these.

WARNING. Please keep in mind that pedit04 memos and Memo Pad memos are exactly the same animals.

When I refer to a memo created by any of the pedits and in the given context it is irrelevant which pedit was the particular pedit which created it, then I use the expression pedit memo as a generic term.

Memo or text vitals refer to a snapshot of your current memo, or text in general, such as current text selection, cursor location, scroll bar position, and so forth. As pedit evolves, memo vitals get more and more sophisticated. Somne vitals even include current font and ruler selections.

When I say sister pedit, then I am referring to the other pedit. In other words, if you are running pedit or peditLight then pedit32 is the sister pedit, whereas if you run pedit32 then pedit is the sister pedit.

If you are running peditPro then the sister pedit depends on the current mode you are in.

Also, in what follows, using the original Palm terminology, I call ListView the window with title p04Memos..., and I call EditView the other one with title p04 #xxx of yyy [more or less].

ListView separator EditView

If your run pedit32 then instead of p04Memos... you will see p32Memos... and so forth.

NOTE. If your Palm Powered handheld allows to create native 32K memos in the built-in "Memo Pad" which also could be called "Memos", then the letters "p04" are replaced by "m32" such as m32Memos....

You can think of ListView as the table of contents, and of EditView where the actual editing takes place.

For our understanding of what a memo title is, please look here.

Text Processors vs. Word Processors

pedit is a text processor, and therefore, it does not have the formatting features of word processors such as allowing different fonts in a memo. If you expect such features then pedit may not be the right editor for you.

pedit creates text files which are 100% compatible with with all computers and all applications which use text files, whereas word processors create proprietary files which can be read by applications with special capabilities. Most word processors allow you to save your file as a plain text file but then all the formatting is lost.

On the other hand, as you will see, pedit allows you to manipulate text in ways which is way beyond the capabilities of most word processors.

It is up-to you to decide what is more important for you, and if you choose to go for a text processor, then pedit will not disappoint you.

pedit and External Keyboards

pedit absolutely loves all external keyboards, including the Palm Portable Keyboard [aka PPK or Stowaway or Targus] and GoType!, and greatly enhances their ability to enter text.

In response to many peditorial inquiries, I want to state it clear and loud that I think both GoType! and PPK are absolutely first rate, and I consider each an engineering marvel. I endorse both of them when used with pedit. However, please keep reading...

Even though the software drivers of some of the keyboards are less than perfect and more than buggy, it is totally irrelevant as far as pedit goes, since pedit uses its own internal mechanism to utilize the keyboards. As long as the driver of your keyboard is able to recognize the letters you type on the keyboard, you are set for good. If I may suggest so, please do write to the manufacturer of your external keyboard whenever you discover a bug. Otherwise, you may never see a bug fix.

In what follows, when I refer to a keyboard, I mean an actual piece of hardware, and not Palm's built-in virtual keyboard. So please do not try to use any of our tricks on the latter.

As it turns out. even some of the third party software implemented virtual keyboards behave as if they were a piece of hardware. This is good news for pedit users although there will be no performance benefits since every function can also be accessed via menus and/or tapping at the right time in the right place.

In almost all dialogs, unless there is a text field accepting alphabetical input, all buttons and check boxes can be activated by entering the lower cased version of the first letter of their label. This is the reason for ".Cancel" and why some labels are misspelled intentionally such as "K" standing for capitalization and "Qopy" for "Copy". When there is no text field, many times even the upper cased version of that letter works.

If there is a bold framed button in a dialog, then it can be activated by your keyboard's RETURN key or by the equivalent / Graffiti character [stroke from NE to SW] or by "ESC RETURN". If there is a multi-line text field in the dialog such as the one activated by the "F" button then "RETURN" is no longer available for this purpose, and use "ESC RETURN" only. The explanation of the ESC key mechanism is an important basic concept so that please do not skip it. This default button concept is well familiar to all Macintosh and Windows users.

pedit has full GoType! keyboard support as well. If the installed keyboard driver version is at least 1.5, then all buttons can be activated by depressing the first letter of the button label while simultaneously depressing the "Command" and "Alt" keys on the GoType! keyboard.

There is similar approach if you use the Palm Portable Keyboard, although, as of July 8, 2000, the current software driver for PPK is not yet able to recognize all buttons on the screen.

Therefore, I find the ESC key approach preferable to trying to use the particular keyboard's built-in functions.

If in a dialog all the text fields are numeric only, then entering either a space or a tab character rotates the focus between the fields. In addition, if underlined letters are visible, then entering one of them makes the cursor jump to the corresponding field.

If in a dialog there is more than one text field, then entering either "ESC SPACE" or "ESC TAB" rotates the focus between the fields.

The Escape Key Mechanism

The user defined escape character ESC [the default value is the backquote character "`"] allows the peditor to activate almost any button and check box from external keyboards and/oir thumbboards and/or via Graffiti input.

It is very important to understand that in pedit's terminology ESC is NOT a hard key on your keyboard such as one labelled with Ctrl, or Alt, or Cmd or whatever, but it is an ordinary key playing the role of ESC . By default I call the backquote key "`" the ESC key although you can change it in the pedit preferences dialog to any other key.

The way it works is as follows. First you hit ESC and then the required letter. Do it consecutively and not simultaneously. Of course, this is a very familiar concept to emacs, vi, and joe users, and to others as well.

EXAMPLE. "ESC ." activates the ".Cancel" button.

EXAMPLE. "ESC h" = "ESC H" = "ESC ?" = "ESC i" = "ESC I" invokes HELP in most [but not all] dialogs even if there is no HELP button present on the current screen.

Did you notice that there is a visual confirmation when you use ESC to activate a button? Isn't that cool?

To use ESC itself as a regular character in the text, just enter ESC twice as in "``".

You can determine if a menu command has an ESC key equivalent by examining the command in the dropped down menu. All the equivalent ESC keys are listed next to the command.

ESC keys in Menu

NOTE. On GoType! and on almost every other standard keyboard, "`" is an ideal choice for ESC. On the Palm Portable Keyboard, I recommend using "1" or "\" for ESC, although, I must admit that neither are absolutely perfect choices from the ergonomic point of view.

NOTE. As BruceM correctly pointed it out, if you ever intend to use pScripting, then stay away from the forward slash "/" as an ESC key candidate.

Common ESC Commands

In addition to

"ESC h" = "ESC H" = "ESC ?" = "ESC i" = "ESC I" = help

both ListView and EditView share the following ESC commands.

"ESC =" = drop menu

"ESC C" = menu command

"ESC F" = SilkScreen FIND

"ESC L" = BackLight

NOTE. If you have LapTopHack, then you can navigate inside all menus via keyboard and Graffiti input [see here for details].

pedit vs pedit32

It is crucially important to understand clearly and fully that pedit works with the built-in Memo Pad memo database which is called MemoDB with creator ID 'memo', and, therefore, pedit is 100% compatible with everything imaginable which uses Memo Pad.

On the other hand, pedit32 uses its own memo database which is called Memo32DB with creator ID 'pn32', and, therefore, pedit32 is almost 100% incompatible with everything imaginable which uses Memo Pad.

One important consideration is that pedit32 loses some of its snappiness when editing files whose size approaches 32K.

By the way, Palm's built-in SilkScreen FIND button works perfectly with pedit and so does grepHack and superFinderHack and FindHack.

Further good news is that, if you choose to install both, then pedit and pedit32 can simultaneously co-exist on your Palm. They share the same magiPad database called peditDB, but otherwise they have their own creator IDs, preferences, and so forth. So go ahead and install both pedit and pedit32.

However, if I were you, I would rather have peditPro on my Palm than pedit and pedit32, since the former saves approximately 200K is RAM real estate.

Additional good news is that, after you did a HotSync job, if you wish, you can open up your huge pedit32 memos residing in Memo32DB on your DeskTop computing device with any competent text editor such as emacs, vi, joe, BBEdit, and so forth. I leave the rest to your imagination and creativity.

Of course, you should follow this advice only if you are the kind of person who does not follow any advice anyway. On the other hand, if you want to access your pedit32 memos in a professional and elegant manner then please keep reading.

QUESTION. How can I move a large text file from my DeskTop computer into pedit or pedit32?

ANSWER. Convert your text file to DOC format using one of the many widely available utilities [see, for instance, Document Conversion Tools and Utilities at MemoWare, or MakeDoc at Aportis, PalmGear, or Handango]. Then HotSync it to your Palm. Then import it to pedit or pedit32 using the Import Doc File command in ListView's Record menu.

QUESTION. How can I move a memo [and its sister segments] from my beloved pedit or pedit32 to my DeskTop computer?

ANSWER. Open up your memo [or one of its sister segments] using the Export Memo command in EditView's Record #1 menu. Then export it to a DOC file. After your next HotSync operation, you will find your memo [as a DOC file] in the backup directory on your DeskTop computer. Now use your DOC converter to turn it into a humanly readable text file.

NOTE. Pleae check out peditDesk, a small DOS application by Jerry Skelley for extracting pedit memos from both databases MemoDB.pdb and Memo32DB.pdb, which is available at the files section of the peditors Forum. Unlike the standard Palm DeskTop software, peditDesk rejoins your segmented memos, sending them to the Windows text editor of your choice. Memos may be exported singly or in groups, by category, or all at once. The intuitive interface even resembles pedit's ListView. Features include full-screen preview of memo text, your choice of Windows text editors, and high speed "Turbo" throughput. Screen messages and command keys may be edited for use by non-English speaking peditors.

NOTE. I also recommend Jesse Jacobsen's MemoCircus which is a utility for listing and extracting memos from database files on the DeskTop. These files are found in the directory where your handheld's data is backed up, and will probably be named MemoDB.pdb and Memo32DB.pdb. A special option allows pedit's segmented memos to be treated as a single memo. MemoCircus currently uses a UNIX-style command line interface, though a graphical interface is planned for the future. According to JesseJ, some day, MemoCircus will allow adding memos to the databases, and direct-to-handheld operation via the HotSync cradle. If you have problems, questions, or suggestions concerning MemoCircus, please e-mail the author at jmatjaco@yahoo.com. By the way, MemoCircus is free software, written in Python, and should be usable on any platform where Python can be installed. To run it, you will need Python on your DeskTop computer first. More information and downloads are here.

NOTE. EXpedit is a similar Windows utility by Casper Lassenius which is currently [as of November 3, 2000] under closed testing. Hopefully, a public beta version will be available soon. In the meantime, you may peek at a screen shot at the links section of the peditors Forum. Once EXpedit becomes available, you will find it at the files section of the peditors Forum.

So far, I have received no reports whatsoever of any problems with pedit32 which were not present in pedit [with the exception of some performance degradation with large memos]. In fact, the great news is that, at least in principle, pedit and pedit32 should share the same bugs, no more and no less.

But, as we all know, even if theory and practice are the same in theory, they are definitely different in practice. [I thank the author of pedit for allowing me to include this deep thought, and Daniel D. for taking time to polish it].

NOTE. Of course, pedit is 100% bug-free. It just may have some unexpected, undocumented, and perhaps inexplicable features. [smiley]

Which pedit is my pedit?

Since there are several pedits, it is not at all simple to keep track of them. If you want to figure out which pedit is the pedit which you are running at the moment, please examine the title bar.

If the title starts with the letter p [or m], then your are in pedit04.

If the title starts with the letters .p [or .m], then your are in pedit32.

If the title starts with the letters !p [or !m] then you are in peditPro.

If the title starts with the letters :p [or :m] then you are in peditLight.

NOTE. If your Palm Powered handheld allows to create native 32K memos in the built-in "Memo Pad" which also could be called "Memos", then the letters "p04" are replaced by "m32" such as !m32Memos....

In addition, you can also find out if your current memo in EditView is a 4K or 32K memo. Just look at title bar. If the title has p04 [or m32] in it then your memo is a pedit04 memo. If the title has p32 in it then your memo is a pedit32 memo.

If you are in EditView and if you are running stats in the title bar, then look carefully at the upper right area of your Palm's screen just below the title bar. If you see a small black square [2*2 pixels], then you have a pedit32 memo. Otherwise, it's a pedit04 memo.

Similarly, if you are in ListView, look for p04 [or m32] or p32 in the title bar, and you will know which mode you are in.

These considerations are especially relevant if you are running peditPro where you can switch between pedit04 and pedit32 memos.

The truth about pedit04! and pedit32!

The peditPro package includes two tiny applications called pedit04! [aka pedit04Launcher] and pedit32! [aka pedit32Launcher]. In order to differentiate between them and the pedit/pedit32 package, they both have an exclamation mark "!" at the end of their titles.

Think of them as "aliases" for peditPro. You can use them to start up peditPro in either pedit or pedit32 mode. You can assign them to hard buttons, and to GoType! and PPK function keys as well.

I use the word alias with quotation marks since the concept of aliases is unknown in the Palm universe, at least as of July 18, 2000. It is a shame since aliases work perfectly in the Macintosh and PC environments. In unix, the concept of soft and hard links goes way beyond the concept of Mac and PC aliases.

For the technically oriented, pedit04! and pedit32! fakes soft link to peditPro, and peditPro behaves like, for instance, vi in unix. Here is a part of our /bin directory which shows the edit, ex, vedit, vi, and view are, in fact, the same application.

  78088 -r-xr-xr-x   5 root       206948 Jan  5  2000 edit
  78088 -r-xr-xr-x   5 root       206948 Jan  5  2000 ex
  78088 -r-xr-xr-x   5 root       206948 Jan  5  2000 vedit
  78088 -r-xr-xr-x   5 root       206948 Jan  5  2000 vi
  78088 -r-xr-xr-x   5 root       206948 Jan  5  2000 view

Of course, here we have hard links, but they are functionally equivalent to soft links as in our /opt/local/bin

 150230 lrwxrwxrwx   1 root            5 May 19 12:37 ftp -> ncftp
 150224 -rwxr-xr-x   1 root       213588 May 31 07:55 ncftp

I hope that Palm will seriously consider the implementation of aliases and/or links in its upcoming OSs.

The installation of pedit04! and pedit32! is optional.

Deleting pedit04! and pedit32! is done via Palm's built-in deletion mechanism.

About pedit

Start out with our About pedit dialog which can be accessed from the Options menus in both ListView and EditView.

Among others, you will see the expiration date of your particular copy of pedit. Of course, if your pedit has already expired, then a clever dialog will inform you of your next moves prior to having a chance to see the About pedit box. Please explore the Credits, Abstract, and Register buttons, and please tap i in the upper right corner.

If you have a keyboard, then you can use the first letters of the buttons.

Please use this occasion to enter your pedit password via the Register button.

Once you invoke Register, just type your password as it was given to you. Make sure that you enter the right lower/upper case letters, and that you do not add additional space or tab characters.

Before you contact me that the password did not register, please make 100% sure that you are entering the password of your particular pedit into the correct pedit, and not into another pedit. It may sound incredible, but about 5% of the registered peditors try to enter their password into the wrong pedit.

As a registered user, you will get periodic [but not at all obnoxious] friendly reminders of the expiration date but panic no more since you will have the option of continuing using your copy of pedit even if it expired, and even if it became 100% obsolete, and even if it is full of bugs. Of course, if you were smart enough to register, then you are also smart enough to make sure that you always download the freshest and practically bug free version of pedit.

buttonPanels

Upon entering ListView or EditView you will see a row of buttons on the bottom of the screen. They constitute the ListView and EditView buttonPanels [© copyright Paul Nevai 1999-2002 & all rights reserved].

ListViewButtons separator EditViewButtons

Think of them as the instrument panel in your Palm's cockpit and that you are the pilot of your Palm.

As a default, the buttons are displayed in black. If you don't like it, then please go to the General Preference Panel and check the white buttons... box.

All buttons in the buttonPanels are tied to an ESC key to facilitate activation via keyboards.

I hope the buttonPanel concept will become standard in all Palm applications. Any interested party should contact me regarding licensing questions and the buttonPanel SDK.

editPanels

The editPanel [© copyright Paul Nevai 1999-2002 & all rights reserved]

editPanel

is a cluster of several buttons which allows access to the basic editing operations both by tapping the buttons on the screen or by using ESC keys.

For instance, "ESC c" copies the selected text, and "ESC g" brings up Graffiti Help.

Isn't it cool? I hope the editPanel will become standard in all Palm applications. Any interested party should contact me regarding licensing questions and the editPanel SDK.

pRotatorTool

The FIND SilkScreen button

Now let's talk for a little while about Palm's built-in FIND SilkScreen button and its interaction with pedit.

As you will see soon, I put a number of twists on the search process via Palm's built-in FIND SilkScreen button.

First, FIND can be invoked by typing "ESC F" [upper case "F"] in both ListView and EditView.

Second, FIND can find any string in your memos via pedit unlike via the built-in Memo Pad where it finds the beginnings of words only.

Third, whether you initiate the FIND process inside or outside pedit, you can add modifiers [options] to your search string to change the behavior of the search process of pedit memos.

These modifiers work whether or not you have FindHack installed in your Palm.

Effective with superFinderHack 1.21 and pedit 5.997, superFinderHack automatically disables pedit's "fancyFind" while it searches pedit so that you don't need to worry about anything. Hence, there is complete compatibility between superFinderHack and pedit. Just use superFinderHack's much more powerful searching capabilities.

In addition, effective with grepHack 1.21 and pedit 5.997, grepHack also automatically disables pedit's "fancyFind" while it searches pedit. Just use grepHack's much more powerful searching capabilities. There is one exception though. Namely, unlike superFinderHack, grepHack cannot tell pedit to search the current category.

NOTE. These modifiers will have no effect on your search of databases created by applications other than pedit. Simply put, they will not recognize these modifiers.

Here is how it works. You can add one or more of the modifiers

'@' ["at" sign or "commercial at"]

'.' [period]

'^' [caret]

'+' [plus sign]

':' [colon]

to the beginning of the search string [in an arbitrary order].

The "at" sign "@" means that your string will not be processed [successfully] by Memo Pad or any other application except for pedit so that you get no duplicate matches by both pedit and Memo Pad. By the way, there are some exceptions to this rule, so that if you happen find one, then please do not dump pedit. This option is not likely to influence the speed of your search.

The period "." means that the search in pedit is performed only in your current category. I borrowed "." from unix where it refers to the current directory [unlike in pattern matching where "." means exactly one character which is not a line terminator]. This option is likely to speed up your search.

The caret "^" means that the search in pedit is restricted to the first line of the memos. I borrowed "^" from pattern matching where it refers to the beginning [well, it's the beginning of a line and not that of a file, but it is still a good way to remember it]. This option is likely to speed up your search significantly.

By the way, many peditors like to refer to the first line of a memo as its title, so that you could say that "^" searches the table of contents.

The plus sign "+" means that the search in pedit is not case-blind, unlike the search in Memo Pad which always ignores cases. This option is likely to slow down your search significantly.

The colon ":" means that the search in pedit is no longer restricted to the beginnings of words as in Memo Pad, and partial words can be found as well. This option is likely to slow down your search significantly.

I want to emphasize that if you use either of the options "+" or ":", be prepared to be patient if you have many large memos.

Having pointed out the superiority of our implementation of "FIND" as opposed to Memo Pad, here are some examples:

"@^.pedit" finds in pedit but not in Memo Pad all memos in the current category which contain in their first line [the title] one of the words "pedit", "Pedit", "pEDit", and so forth.

On the other hand, "@+^.pediT" does the same for the word "pediT" but not for "pedit", "Pedit", and so forth.

If you don't care for these fancy FIND features and you wish you could turn them off so that the FIND button would regain its pre-pedit [lack of] functionality, worry no more! In fact, for the fancy mode to be active you need to turn it on by opening up the General Preference Panel, and by checking the fancy silk-screen "FIND" box.

Fourth, all pedits, except for peditLight, support REGEXP via the built-in FIND SilkScreen button, as long as the find process was initiated from inside pedit and the fancy silk-screen "FIND" box is checked [see the here]. Just start your search string with ")" [right parenthesis], and then your search will be via REGEXP in a case-blind mode.

EXAMPLE. ")pedit[^ ]*".

NOTE. If your pedit is running, and if you set the ")" magic greptivator [grep activator], then your other "fancy" options will be ignored.

NOTE. If you want to use REGEXP from outside pedit via the FIND SilkScreen button, then just install superFinderHack or grepHack. The magic activator option for grepHack is "R" [upper case "R" as in REGEXP].

NOTE. If you happen to have both peditPro and some other pedits installed on your Palm simultaneously, then FIND will search your memos only via peditPro. This is the case even if peditPro is dormant and another pedit is currently running.

Setting the Preferences

You can set pedit's preferences using either the Preferences command in EditView's Opt[ions] menu or the Preferences command in ListView's Options menu both of which take you to the pedit preferences dialog.

These two commands are the same and both invoke the same dialog. The only difference is that some of the options are available only if you invoke the dialog from ListView.

NOTE. Since pedit keeps evolving, the preference panels shown below may differ from the actual panels in your pedit.

NOTE. There is extensive on-line help available by pressing the "i-Tips" button in the "pedit preferences" dialog.

The "pedit preferences" dialog consists of several "panels" each of which can be invoked either by tapping on it by entering the first upper case letter of its label. The only exception is the myNotes push button which can be activated by "N".

All check boxes, buttons, push buttons, and so forth, can be activated by entering the first [case sensitive] letter of their labels.

Use the SPACE, TAB, left arrow, and right arrow keys to cycle through the push buttons,

Use the up arrow, down arrow, page up, page down, up repeating button, and down repeating button to scroll the text fields.

This is the General panel.

General Preferences

If the escape character is box is checked then the ESC key mechanism is activated, and the character following this check box is defined as your ESC character.

NOTE. If you want either SPACE or TAB to be the ESC character, then please enter "S" [upper case "S"] or "T" [upper case "T"], respectively.

NOTE. If the current ESC character is either SPACE or TAB, then it will not show up in the text field following the escape character is check box since it is invisible. However, you can highlight it, and then it becomes visible.

If create memos on top is checked and memo sorting is set to manual, then new memos are created at the top of the memo database. Otherwise, they are all created at the very end [unless they are alphabetically sorted].

If the fancy silk-screen "FIND" box is checked, then the search routine via the SilkScreen FIND button allows to use certain options as described here.

Regarding the save text in magiPad check box, please see magiPad for the details.

If the white buttons under memos box is checked, then the buttonPanels are displayed in white. Otherwise, they are black.

This is the EditView panel.

EditView Preferences

The allow double taps in the text check box and the Ticks between double taps text field are explained here.

If the cursor moves via 5-way button box is checked then the 5-way navigator button, if available, moves the cursor left/right/up/down.

NOTE. Due to the nature of the Palm OS, automatic capitalization only works in conjunction with text input via Graffiti. Neither the built-in virtual keyboard nor external keyboards are affected by it. In addition, the algorithm which decides whether or not to capitalize is not 100% foolproof.

If the enable statistics in title bar box is checked then the stats are enabled [see here for the details].

If the move cursor via btnSliding "J" box is checked, then left/right/up/down buttonSliding the "J" button moves the cursor left/right/up/down.

This is the ListView panel.

ListView Preferences

NOTE. The ListView panel is functional only if you invoked the "pedit preferences" dialog from ListView.

Selecting the alphabetic sort option makes pedit to sort all the memos in alphabetic order. Picking this option will overwrite the current sort order.

Selecting the manual sort option allows manual sorting of memos by dragging them up and down the list. To drag, first pen down on a memo, then drag it to the desired order, and, finally, lift up the pen.

The Edited/Visited memos move to top/move to bottom option allows reverse and forward chronological ordering of edited [changed] and visited [read] memos. Please see here for help on navigating the popped up list.

NOTE. The leftButtonSlided PopUp Font Trigger in EditView touches the current memo, that is, it pretends as if the memo were edited.

Selecting the new option means that if you enter a printable character while in ListView, then a new memo starts automatically whose first letter is the given character. This mimics Memo Pad's behavior.

Selecting the seek option means that if you enter a printable character while in ListView, then the table of contents scrolls to the first memo, after the currently shown top memo, whose title starts with the given character. The seeking process wraps around, that is, the search continues at the top once it has reached the bottom [see the related navigational commands here].

Selecting the direct [as in "direct action"] option means that you don't need to use the ESC key mechanism while in ListView. Instead, just entering the appropriate character activates your commands.

If the ! starts read only categories box is checked, then you can use readOnlyCategories. Please see the Lock|Unlock Memo command in EditView's Record #1 menu for the details.

This is the myNotes panel.

myNotes Preferences

If the category of myNotes is fixed box is unchecked, then 000.myNotes inherits the current category in ListView every time it is invoked via the myNotes button. Otherwise, the category 000.myNotes remains fixed.

If the date stamped myNotes box is checked, then 000.myNotes gets a new date'n'time stamp every time it is invoked via the myNotes button. The actual formatting of the date'n'time stamp uses the preferences set in the "Formats" Preference Panel.

If the top starting myNotes box is checked, then every new entry in 000.myNotes is placed in the beginning of the file as long as it was invoked via the myNotes button.

This is the Options panel.

Options Preferences

If the capitalization is automatic box is checked then each sentence will automatically start with a capital [upper case] letter.

If the ignore case during search box is checked then all text search and/or replace operations are case blind [case insensitive]. Please see herefor more details.

The linefeed is considered invisible option is used by the visibilator. Please see the Visibilator command in EditView's Edit+ menu for more details.

If the search is "wrap around" box is checked then all text search and/or replace operations continue at the beginning [top] once they reached the end [bottom] except for the "All R" [Replace All] command which stops at the end. Please see here for more details.

If the words are "Forth style" box is checked then all text search, replace, jump, and selection operations use a special definition of words. Please see here, here, and here for more details.

In addition...

This is the Modes panel.

Mode Preferences

For left-handed users, the scroll bars are positioned on the left-hand side of the screen, whereas for right-handed users, the scroll bars are positioned on the right-hand side of the screen.

WARNING.Unless you know what you are doing, you should always stay in normalMode.

You can turn on either the advancedMode, or the expertMode, or the normalMode by selecting the appropriate push button.

If one of your pScripts left a dangling globalMacroMode, then you can get rid of it by using the turn off globalMacroMode button which is only visible when appropriate.

NOTE. All the modes are sticky which survive quitting and relaunching pedit.

NOTE. If you are in the advancedMode or expertMode which happened to suppress the display of a dialog, then you should use Graffiti ShortCuts with extreme care. Neither I nor pedit accepts any responsibilities for any unexpected behavior. However, it would be very considerate of you if you reported such events to the peditors Forum.

NOTE. I must admit that, although I tried very hard to mess up pedit with Graffiti ShortCuts in both advancedMode and expertMode, pedit resisted all my attempts. However, I am sure that most advanced and/or expert peditors are much more ingenious than I am, and I have no doubts that they will succeed where I failed.

NOTE. I started implementing advancedMode and expertMode on April 7, 2001, and you will be able to find out what they accomplish by searching this manual for the expressions "expertMode" or "advancedMode", and "(advanced || expert)" or "(advanced && expert)". Since you are an advanced and/or expert peditor, I am sure that you do not want me to provide lengthy explanations. Please let me know if you find them too terse.

Batch Processing of Memos

The memo batch processor allows you to edit all or some of your memos in one fell swoop using commands which you collect in designated pScripts. Only your imagination sets limits to what can be accomplished with this tool.

NOTE. The initial implementation of the memo batch processor was introduced in version 6.28. The final version will have a truly sophisticated user interface with numerous options. However, in order to make sure that it will work properly, the initial version comes with no options and no user interface whatsoever. Once it had been fully tested and I had feedback from more than just a handful of peditors, I will add the fancy stuff to it.

WARNING. Batch processing is a powerful weapon and it must be used with extreme care. Among others, it allows you to screw up all your memos as fast as you can say "pedit" [well, depending on the number of memos you have, it may take a little longer].

You can activate the batch processor via the Batch Processor commands in the Options menu in ListView [here] and in the Opt[ions] menu in EditView [here].

NOTE. Temporarily, ESC % [percent] also activates the batch processor. However, this option may be removed from the final version since I view batch processing a "hazardous" activity requiring full attention of the operator. Of course, if you have no "defaultBatchScript" [see below], then you are in no danger of acidentally running amok with your pedit.

Batch processing is subject to the following rules.

Please let me know how it works. Have fun...

ListView

If you are in EditView, then you can enter ListView by pressing the "OK" button, or by using the "OK" & ".C" buttons" command in the Navigate menu.

What you see is your pedit's table of contents. Many peditors will refer to what you see as the titles of your memos.

I beg to differ. What you see is [a perhaps abbreviated version of] the first line of your memo. As a matter of fact, there is no such concept as the title of a memo in the Palm universe. Although some memo editors do create titles, these title are stored separately from the memo database, and, therefore, extra bookkeeping is required which can slow down ListView's startup significantly.

Nevertheless, for the lack of better terminology, I will refer to what you see as the title of your memo.

Once you graduate to segmented memos, you will realize that ListView makes a smart decision when displaying titles of such memos. I have no doubts that you will appreciate pedit's native intelligence.

As soon as you enter ListView, please visit the Preferences dialog which is located in the Options menu.

Navigating ListView

In addition to ListView's Navigate Menu, you have a number of other ways of exploring it.

As expected, the page up and page down buttons help you to navigate in ListView.

In addition, please memorize this table and you will no longer have any problems in finding the memo you are looking for.

page up = up arrow = scroll one page up

left arrow = scroll one one line up

page down = down arrow = scroll one page down

right arrow = scroll one one line down

space = select the next memo title

backspace = select the previous memo title

carriage return = open the memo whose title is currently selected

NOTE. The memo title selection process wraps around in the sense that the selection continues at the top once it reached the bottom of the screen if it was invoked with space, and it goes the opposite direction if it was invoked with backspace.

NOTE. If no memo title is currently selected, then both space and backspace select the top title shown on the screen.

NOTE. Please do not forget to study the effects of the seek option.

Please look up in your Graffiti reference how to enter the left arrow and right arrow characters. Basically, they consist of a left-right or a right-left job.

Please see the definition of memo titles here.

For additional tricks, please see the information about the SilkScreen FIND button.

Let us discuss the menus in ListView now.

ListView's Record Menu

New Memo

This command creates a new memo.

Open Memo

This command is just a way to get out of the batcher modes which are defined as the Preview Memo, Delete Memo, Categorize Memo, Privatize Memo, Beam Memo, and Print Memo commands.

Go to Memo

This is the same as the Go to Memo menu command in EditView's Record #1 Menu.

This pops up a dialog where you can enter either the index or some text of a memo you want to open.

Go to Memo

NOTE. If you are in the expertMode, then this dialog will not show up at all except for its title, although you can enter your commands as usual.

It also has more options than you will ever need.

You can use the following shortcuts.

NOTE. When using the "Begin Search at Current Memo" option, then the actual search starts right after the current memo.

NOTE. The memo text search can be interrupted by tapping, or by typing ".", or by a page up/down or 5-way up/down press, depending on the particular Palm Powered handheld.

NOTE. Masked secret memos are never found by text matching unless no password has been assigned. Otherwise, this would be a security breach.

NOTE. Many of the options have been disabled in peditLight.

NOTE. This command can also be invoked via the upButtonSlided "New" button in ListView's buttonPanel.

NOTE. This command has expert mode.

The Batcher Modes

Preview Memo, Delete Memo, Categorize Memo, Privatize Memo, Beam Memo, and Print Memo commands share the same underlying interface.

Namely, they all look like the regular ListView on the surface, but when you are in one of the batcher modes and if you hit the title of the memo then you are placed into a special dialog where on one hand you can preview the current memo and perform certain operations, and on the other hand, you can navigate between memos via the arrows and/or the page up|down key and/or via keyboard action.

Please look at the tips in the dialogs which can be invoked via the "i" button in the upper right corner of the screen or by entering one of the letters "h", "H", "?", "i", and "I".

For your convenience, the title of the batcher dialogs shows the size of the current memo.

Navigation in the Batchers

The "<=" button = "p" or "P" or "SPACE" characters = left or up arrow keys on keyboard = scroll up hard key = preview previous memo in current category

The "=>" button = "n" or "N" or "BACKSPACE" characters = right or down arrow keys on keyboard = scroll down hard key = preview next memo in current category

Typing ENTER results in the same action applied to the currently selected memo as if tapping on a memo title.

NOTE. When privatizing or printing then "p" and "P" are used for [de]privatizing or printing so that use "b" and "B" instead for switching to the previous memo.

Preview Memo

In this mode, tapping on the title of the memo pops up the memo previewer dialog from which you can easily decide which memo to open up.

Delete Memo

In this mode, tapping on the title of the memo pops up the memo deleter dialog where you can decide whether or not to delete the selected memo and its sister segments as well.

When deleting memos, the save archive copy on PC option will store deleted memos in an archive file on your DeskTop at the next HotSync operation.

NOTE. In pedit32 archiving of records is not implemented and it is not necessary since there is no DeskTop conduit associated with it.

Categorize Memo

Strictly speaking, this is not a batcher operation since there is no batcher dialog associated with it. Nevertheless, it also allows a batch job on changing the categories of your memos. When in this mode, then tapping on the title of the memo makes the category list drop down, and thereby you can do quick change of category without the need of opening up the memo whose category is being changed.

Move Memo to Top

This is not a formal batcher operation either. In this mode, tapping on the title of the memo puts moves to the top in its own category. Of course, this works only if the memo sort order is manual [see the manual sort option in the ListView Preference Panel].

Privatize Memo

In this mode, tapping on the title of the memo pops up the memo privatizer dialog where one can decide whether or not to change the private property of the selected memo and its sister segments as well.

NOTE. A private memo can be seen and edited only when your Palm is set to show private records. The latter can be set from the Security item in ListView's Options menu, or via Palm's built-in Security application.

NOTE. If your Palm's OS is at least 3.5, then you have a third option. Namely, in addition to hiding and showing private records, you can also mask them so that they will show up in ListView but you will not be able to peek at them unless you enter your Palm password.

NOTE. The concept of private records is useful only if your Palm's password has been assigned. The latter can be set from the Password item in ListView's Options menu, or via Palm's built-in "Security" application.

NOTE. I should point it out to you that Palm's security is not something I would count on. I will probably not break news if I tell you that any hacker worth her salt would find any of your hidden records in a jiffy as long as your Palm is turned on and is unlocked. Depending on the circumstances, you can think of this as good news since forgetting your password is no big deal as long as you do not lock your Palm when you turn it off.

Beam Memo

In this mode, tapping on the title of the memo pops up the memo beamer dialog where one can decide whether or not to beam the selected memo and its sister segments as well.

NOTE. All beaming operations require that both the beaming and the beamee Palm have the same type of pedit installed.

Of course, if you want to beam a 4k memo, you can always use Palm's built-in Memo Pad.

Print Memo

If you have Stevens Creek Software's PalmPrint, or TealPoint's TealPrint installed in your Palm, then pedit provides a number of customizable ways of printing your memos and/or parts of it to any device which is supported by your print software.

In the Print Memo mode tapping on the title of the memo pops up the memo print dialog where one can decide whether or not to print the selected memo and its sister segments as well.

You can also decide whether the headers of segmented memos should be printed.

In addition, the number of copies to be printed can be determined by entering any number between 1 and 9. You can enter the number either via Graffiti or an external keyboard, but not by using the built-in virtual keyboard.

Beam Category

As opposed to Beam Memo, this command allows you to beam an entire category of memos to another Palm in one fell swoop. When selected then all memos in ListView's currently visible category get beamed. If ListView shows all categories, then all memos get beamed.

NOTE. All beaming operations require that both the beamer and the beamee Palm have the same type of pedit installed.

Export Category

Exporting provides a means to communicate between your pedit and its sister pedit. You can move memos back and forth with minimal effort.

The analogous Export Memo command in EditView's Record #1 menu also allows to export your memos to DOC files.

Although the Export Category command is pretty much self explanatory, it is worthwhile to summarize it.

First, this command allows exporting either all memos which are in ListView's currently displayed category or all your memos in one fell swoop from one pedit to its sister pedit.

There are only two exceptions to this rule.

Well, there are two more exceptions. Namely, the sister pedit's memo database must be installed, and sufficient free RAM real estate must be available for performing the export operation.

NOTE. If a pedit32 memo is segmented but it consists of one single segment only, then you can delete its segment header so that it would become exportable from pedit32 to pedit. However, you will loose the information which was kept in the segment header.

In order to be able to manage both pedit and pedit32 simultaneously, and in order to keep pedit32 memos apart from pedit04 memos, please keep the export segmented memos only box checked all the time when exporting from pedit to pedit32. This way your regular pedit04 memos will never end up in pedit32.

If you choose to delete exported memos and if you are in pedit04, then the $ave archive copy on your PC option will store deleted memos in an archive file on your DeskTop at the next HotSync operation.

Exporting is as smart as it [or, should I say, yours truly] could be. In particular, it will place the exported memo in the same category where it resided originally. If that category name does not yet exists in the sister pedit and if the will clone category names too box is checked, then it will create one. If the sister pedit has no vacancies for new category names, then the exported memo will go into the Unfiled category.

If a memo is segmented, then exporting it from pedit to pedit32 will assemble your memo and its sister segments into one pedit32 memo.

A pedit32 memo will turn into a segmented memo in pedit04 after an export operation unless your memo is less than 4K and you check the no segmenting if less than 4K box.

Each segment will fill up only 75% of pedit's 4K capacity so that you will have plenty of capacity available for changes and further additions.

NOTE. I should point out that the exported memos get deleted from pedit only after the export operation went flawlessly so that your precious data are as safe as possible.

Here is a neat hint for you. If you want that all of your memos show up in your DeskTop Palm application, then do an export job of all of your pedit32 memos, then HotSync, then work on your memos on your DeskTop, then HotSync again, then export all your segmented memos from pedit04 back to pedit32. Just make sure that you always choose to delete your exported memos. Otherwise, you may end up with multiple copies.

NOTE. The "Please create MemoDB/Memo32DB first..." message means that you have never been in the pedit04/pedit32 mode yet. Go to ListView and use the Switch command in the Navigate menu or tap in the left 1/8th of the title bar, to the left from the small pixel visible just under the title bar.

Import Doc File

Importing DOC files provides a means to move your pedit memos from the DeskTop to pedit with minimal effort. Using DOC files is especially recommended if your pedit memo, together with its sister segments, is longer than 4K so that using the standard route via your DeskTop Palm application becomes cumbersome since it was not designed the handle large memos.

The command Export Memo in EditView's Record #1 menu allows you to export your memos to DOC files.

Although the Import Doc File command is pretty much self explanatory, it is worthwhile to summarize it.

Invoking Import Doc File takes you to magiPad where all your installed DOC [including TealDoc] files are listed.

Once you familiarize yourself with EditView, you will be able to navigate here using all the powerful tools in it.

The list tells you the title of your DOC files [with the memory card number and the uncompressed size listed as well].

You can think of a card as a hard drive. We can all foresee the near future when we will have dozens of cards sitting in our Palm computing devices providing zillions of bytes of available memory. Although no two different Palm files sitting on the same card can have the same name, files on different cards do not need to have uniquely defined names. Therefore, it is essential to know which card is the host of your file to be able to identify it uniquely.

It is interesting to note that many Palm aplications ignore this fact and, unlike pedit, they are hardcoded to use card #0 no matter what. As of July 11, 2000, all Palms have one built-in card only.

If you see an exclamation mark "!" before the title of a DOC file, it means that the file is read-only and it cannot be deleted after you complete the import operation.

Tapping on the title of a DOC file pops up the pedit import dialog which is also self-explanatory except perhaps for the no segmenting if fits one memo check box.

If you choose the no segmenting if fits one memo option then your pedit will try to place the DOC file into one memo. Otherwise, it will break the file up into segments where each segment will occupy roughly speaking 75% of the maximum available memo size. This way you will have plenty of real estate left for editing your memos.

If you choose the no segmenting if fits one memo option, then you can also decide if you want to forgo adding a segment header to the imported DOC file by setting the add no header if fits one memo check box.

After you initiate the import operation you can sit back and relax. Depending on the size of your DOC file, the operation may take longer than you wish it did. For instance, a 1Mb DOC file import job on my Palm Vx takes about 60 secs.

Depending on your DOC file, you may end up being confronted by another dialog starting with "Hmm...". If you ever see it, I have no doubts that you will know what to do.

In case you end up never seeing this dialog, here is what it says: I believe that this file uses a unix [DOS] style end-of-line notation. Would you like me to convert it to the one used by the Palm OS?

ListView's Options Menu

Font

This command allows you to change the display font in ListView.

If Hands High Software's FontBucket is installed, then pedit automatically lists all your FontBucket fonts. Please see FontBucket's web page for a large collection of fonts.

Batch Processor

This command is the same as the Batch Processor command in EditView's Opt[ions] menu. Please see here for the details.

Security

This command allows you to Show and Hide your private memos on the fly. If you use OS 3.5+ then you will also have yet another option which allows you to mask off your private records without removing them from ListView.

Palm's built-in Security application can also accomplish the same task.

Use the editPanel while entering your Palm password.

Password

This command allows you to change and/or delete your Palm password on the fly provided that you are a registered user of pedit and you know your pedit password.

Use the editPanel while entering your passwords.

Clear History

If you edited any of your memos with a program other than this particular pedit, whether on the Palm or on the DeskTop, it may be a good idea to clear the history of recently visited memos since pedit keeps track of information which may have been altered by the other programs such as cursor position and so forth. If you fail to clear your pedit's history, you may face unpredictable consequences such as incorrectly selected text or even a crash now and then.

If you experience a crash which you think may be related to your pedit's history file, and if you are unable to start up pedit after the crash then use peditFixer which can do the same Clear History job and more...

For the technically inclined, the history of pedit04 and pedit32 memos is kept in the Palm database called MemoHIST and Memo32HIST, respectively.

Clear Preferences

If you edited any of your memos with a program other than this particular pedit, whether on the Palm or on the DeskTop, it may be a good idea to clear pedit's preferences since they keep track of information which may have been altered by the other programs such as cursor position and so forth. If you fail clear your pedit's preferences, you may face unpredictable consequences such as incorrectly selected text or even a crash now and then.

If you experience a crash which you think may be related to your pedit's preferences, and if you are unable to start up pedit after the crash then use peditFixer which can do the same Clear Preferences job and more...

Clear Deleted Records

Regarding this command I note that you want to use it only if you do not use a DeskTop conduit for your pedit04 memos. If you do then the conduit takes care of removing the footprints of your deleted pedit04 memos.

Otherwise, these footprints keep accumulating in your database, and it is a good spring house-cleaning practice to remove them periodically.

Please note that Clear Deleted Records has no effect on pedit32 memos since there is no DeskTop conduit associated with them, and, therefore, whenever you delete a pedit32 memo, it's gone for good.

Total Cleaner Upper

This command operates on peditPro only it performs duties similar to peditFixer [see troubleshooting].

Tuner Upper

This command bring us the pedit tuner upper dialog which is an invaluable aid for serious users of pScripts and REGEXP.

If you are unfamiliar with these two notions, then you probably will never need to use this command.

First, this command allows you to customize the key-event-queue-size which, of course, can also be achieved by the appropriate pFunction.

If you want to increase the current key-event-queue-size, then use the Boost KeyEventQueue Size button, which adds to the current key-event-queue-size the number which you entered into the text field next to the button.

The number you see next to the Boost KeyEventQueue Size button is the difference between the current and the default values of the key-event-queue-size. The default value is usually 55.

If you want to go back to the default key-event-queue-size, then you can either use the Set Default KeyEventQueue Size button, or just use the Soft Reset - Reboot button, which does a paper clip reset on your Palm.

A soft reset is considered a safe procedure which should not harm your data at all [as opposed to a hard-reset which wipes out the contents of all your RAM]. I recommend doing a soft reset on a regular basis, say, once a week.

NOTE. You need to use the Boost KeyEventQueue Size button after every soft, warm, and hard reset of your Palm, since all such operations reset the key-event-queue-size to its default value.

NOTE. Palm OS 5+ no longer supports the "Boost KeyEventQueue Size" command since the Palm OS function "EvtSetKeyQueuePtr()" stopped being supported.

Similarly, if you want to increase the current stack, then use the Boost Stack Size button, which adds to the current stack size the number which you entered into the text field next to the button.

The number you see next to the Boost Stack Size button is the difference between the current and the default values of the stack size. The default value is 8192 [0x2000] plus a couple of hundred of overhead.

NOTE. Just to be on the safe side, pedit will not allow you to set the stack size to anything greater than 32768 [0x8000] although, in principle, the stack size could be almost twice as large. If you pick a larger number, then the stack size will be set to 32768. In addition, the stack size must be an even number, but you don't need to worry about it since pedit will evenate [sic!] your number anyway.

If you are an expert, then you can examine [and edit?] the 'pref' #0 resource in pedit using RsrcEdit which contains the default stack size value. Read here for the details of what a 'pref' #0 resource is.

WARNING. As the most recent POSE reveals, RsrcEdit 1.017b is full of memory leaks [bugs] which may cause serious problems. Hence, it is prudent to use utmost care when playing with RsrcEdit.

If you want to go back to the default stack size, then you can use the Set Default Stack Size button.

NOTE. If you change the stack size, then your pedit will be relaunched so that the new stack size could take effect immediately.

WARNING. If you change the stack size, then your pedit application gets modified. Therefore, you will need to change the stack size every time you install a new version of pedit. In addition, you should set your stack size prior to moving pedit into a read-only memory such as the flash ROM or a CompactFlash card.

NOTE. There is no built-in keyboard support in the pedit tuner upper dialog. This was a deliberate design choice. If you use this dialog so frequently that you miss the keyboard support, then you must be doing something I could not have foreseen.

QUESTION. Why would I want to change the key-event-queue-size?

ANSWER. Because your pScripts are longer than the built-in 55 character limit.

QUESTION. Why would I want to change the stack size?

ANSWER. Because your REGEXPs tend to be long and/or complicated, and you have experienced either a crash or an unexpected termination while searching text.

QUESTION. What is a stack anyway?

ANSWER. Excellent question. First, "officially" it is called "application stack space". Second, you could start, for instance, with the manual of TealMemBrain, and then move to here or here. In short, it is a small portion of your regular RAM where many of the peditorial computations take place. As it turns out, pedit does a great memory optimization job with the exception of possibly two cases. Namely, when working with long and/or complicated REGEXPs, or when importing very-very-very long DOC files. In fact, these DOC files need to be so long that you would not even have enough memory to store them anyway so that we can ignore the latter. The Encyclopedia Britannica would be a good candidate for crashing pedit when importing it into a memo.

QUESTION. What are the absolutely-positively-definitely safe ranges for the key-event-queue-size and the stack size?

ANSWER. This is another excellent question. In short, I don't know. It depends on several factors such as your hardware, your OS, and the stuff on your Palm. I would say that adding a couple of hundred to the key-event-queue-size may not hurt. Some peditors and LapTopHackers have even used low 4 digit boosts. As far as the stack size goes, this has not been explored yet. You may want to try a couple of thousands first before moving to the very low 5 digits. You may want to read portions of the manual of TealMemBrain which can help you too when making these quintessential decisions.

QUESTION. SOS! After I changed the stack size, something must have gone wrong since I can't launch pedit anymore. What should I do?

ANSWER. Just re-install a fresh copy of [the latest version of] pedit.

System Info

This command does precisely what it promises. Among others, it gives the exact time and yields quintessential information about the battery status.

The battery info may be refreshed by entering the letter "r". With enough patience, one can watch the voltage tank go from full to empty. With a rechargeable Palm device, one can also play with the cradle and refreshing the display after each movement.

I will spare the reader from the details of the game.

Preferences

This command brings up the pedit preferences dialog. Please see here for the details.

About pedit

This command is explained here.

ListView's Navigate Menu

Visit Top

This is self-explanatory, isn't it? It takes you to the top of ListView.

Jump to

This command allows you to jump to memos very quckly in ListView. You enter a number between 0 and 99, and upon activating the OK button, you will be taken to that area of ListView which corresponds the entered number interpreted as a percentage of the total number of currently displayed memos.

You can use the following shortcuts.

. = the ".Cancel" button

g = G = ENTER = the "Go" button

f = first memo

l = last memo

page up key = up arrow = increase the index

page down key = down arrow = decrease the index

Visit Bottom

This is self-explanatory, isn't it? It takes you to the bottom of ListView.

Script

Please see the section about pScripting pedit for details on this command.

As a convenient shortcut, "ESC Z" turns globalMacroMode on and then invokes a silent version of this command.

Find

This command pops up Palm's built-in SilkScreen "FIND" dialog.

I provided this command for keyboard users.

scriptPad

This command is described here.

magiPad

This command is described here.

Recent

This command takes you to magiPad where all your recently visited files are listed in reverse chronological order.

Once you familiarize yourself with EditView, you will be able to navigate here using all the powerful tools in it.

This command is the same as the Memo Switcher [">"] button in EditView's buttonPanel.

pedit keeps track of the last 30 or so memos you have visited since you last cleared pedit's history.

Tapping on any of the memo titles, pedit transfers you to the selected memo instantaneously.

Please see the Memo Switcher for more details.

The Memo Switcher can also be activated by "ESC 0" [zero] or by "ESC >" from EditView and by "ESC r" [lower case "r"] or by "ESC >" from ListView.

As a related and very convenient shortcut, if you enter "ESC }" in ListView then you are immediately taken to the memo which you visited most recently.

Switch

This command is functional on peditPro only. It switches between pedit04 memos and pedit32 memos.

Please note that there is an even easier way to invoke Switch. Namely, tap in the left 1/8th of ListView's title bar, to the left from the small pixel visible just under the title bar.

ListView's buttonPanel

ListViewButtons

The "New" Button

You start a new memo by tapping on the New button.

This command is the same as the New Memo command in ListView's Record #1 menu.

You can also start a new memo by simply entering any printable letter which becomes the first letter of your new memo.

The upButtonSlided "New" Button

This command is the same as the Go to Memo menu command in ListView's Record #1 Menu.

The "myNotes" Button

In addition, ListView displays the myNotes button which takes you immediately to a memo called 000.myNotes. If such a memo doesn't exist yet, then it will be created upon tapping on the myNotes button. Once inside 000.myNotes", you can add quick notes to it.

Please keep in mind that peditPro has two modes, and the those two modes operate independently of each other. Therefore, you have two separate 000.myNotes". One in pedit04 mode and one in pedit32 mode.

The variety of uses of myNotes is limited only by the peditor's imagination. I use it for making quick reminders on how to improve pedit, for jotting down some really deep thoughts which come to my mind, and for keeping track of important world events such as how many Ann Landers messages deal with the quintessential toilet tissue in or out problem.

A great feature of myNotes is an optional date'n'time stamp which can be configured through the myNotes Preference Panel. The actual formatting of the date'n'time stamp uses the preferences set in the "Formats" Preference Panel.

You can also decide in the myNotes Preference Panel whether you want your new entry added to the top or to the bottom of your 000.myNotes".

If your 000.myNotes gets filled up, simply rename it, say 001.myNotes, and then the game starts all over again.

NOTE. If you have an optional user defined startup pScript of the form "{.myNotesrc::whatever}", then it gets executed every time you enter 000.myNotes via the myNotes button.

EXAMPLE. If you put "{.myNotesrc::Paul Nevai is the coolest Palm guru...}" into your scriptPad then every time you hit the 000.myNotes button, you will end up with a true [but space-challenged] statement.

You can find many more albeit perhaps less truthful [but more useful] examples at the peditors Forum [see here].

WARNING. Do not even think of "{.myNotesrc::Paul Nevai is a pain in the butt...}" since pedit has been programmed to recognize such derogatory statements in a variety of languages, and then you may end up loosing your pedit license for life.

EXAMPLE. If you disable myNotes's optional date'n'time stamp, and if you put "{.myNotesrc::[/ED, /xs /dM///dD///dY]/0x0A}" into your scriptPad, then can you guess what you will have every time you visit myNotes?

HINT. Try it.

NOTE The startup pScripts are disabled when you enter 000.myNotes via the myNotes button.

NOTE You can activate myNotes with "ESC N" and not with "ESC m" since the latter is reserved for magiPad.

NOTE myNotes is the same as EditView's "N" button.

The "Export" Button

This button is the same as the Export Category command in ListView's Record menu. Another way of accessing it is via the "ESC e" command.

The "Docs" Button

This button is the same as the Import Doc File command in ListView's Record menu. Another way of accessing it is via the "ESC i" command.

The directionally buttonSlided "Docs" Button

upButtonSliding it is the same as the magiPad command in ListView's Navigate menu.

The "Recent" Button

This button is the same as the Recent command in ListView's Navigate menu.

This command can also be activated by "ESC 0" [zero] or by "ESC >" from EditView and by "ESC r" [lower case "r"] or by "ESC >" from ListView.

The directionally buttonSlided "Recent" Button

This button can be leftButtonSlided and upButtonSlided resulting in two different but closely related commands.

leftButtonSliding it is the same as the Script command in ListView's Navigate menu.

upButtonSliding it is the same as the scriptPad command in ListView's Navigate menu.

EditView

When entering a memo from ListView, you will notice that the cursor is located at the beginning of your memo so that it is visible as opposed to Memo Pad where it is always blinking at the end, and, therefore, it is invisible much of the time.

I have removed Memo Pad's "feature" that the page up and page down buttons move to the previous and the next memo, respectively. I personally found this "feature" quite annoying but who am I to judge? Whether this was annoying or not, the issue is moot since these buttons have been assigned new roles which is explained here and here.

I have also added a useful feature that the characteristics of a particular memo such as cursor position, text selection, and scroll bar position are preserved when switching back and forth between pedit and other applications [why didn't they think of this?].

As soon as you enter EditView, please visit the Preferences dialog which is located in the Opt[ions] menu.

instantHelp

Let us discuss a new concept which I named instantHelp [© copyright Paul Nevai 1999-2002 & all rights reserved].

Use EditView's ? button or "ESC ?" to invoke instantHelp.

instantHelp

Once instantHelp is active, tap any button for an explanation of its function. Tapping "ESC ?" again terminates instantHelp and you are back to regular EditView.

Tapping anywhere while an instantHelp message is displayed, terminates the message. Therefore, you don't need to wait until the countdown in the title bar reaches 0.

I hope the concept of instantHelp will become standard in all Palm applications. Any interested party should contact me regarding licensing questions and the instantHelp SDK.

Navigating EditView

Here is a short summary of the appropriate navigation commands in EditView

page up = ESC up arrow = ESC backspace = page up

buttonShifted page up = ESC left arrow = one line up

page down = ESC down arrow = ESC space = page down

buttonShifted page down = ESC right arrow = one line down

and within your memo use these shortcuts

jump to the beginning of current word = "ESC j b w" = "ESC s w left arrow" = "ESC W left arrow"

jump to the end of current word = "ESC j f w" = "ESC s w right arrow" = "ESC W right arrow"

jump to the beginning of current sentence = "ESC j b z" = "ESC s z left arrow"

jump to the end of current sentence = "ESC j f z" = "ESC s z right arrow"

jump to the beginning of current screenLine = "ESC A" = "ESC j b s"

jump to the end of current screenLine = "ESC E" = "ESC j f S"

jump to the beginning of current line = "ESC j b l" = "ESC s l left arrow"

jump to the end of current line = "ESC j f l" = "ESC s l right arrow"

jump to the beginning of current paragraph = "ESC j b l" = "ESC s l left arrow"

jump to the end of current paragraph = "ESC j b p" = "ESC s p right arrow"

Please look up in your Graffiti reference how to enter the left arrow and right arrow characters. Basically, they consist of a left-right or a right-left job.

Please note that buttonShifted page up and buttonShifted page down are sticky, that is, until the next buttonShift, they do not change their currently assigned behavior unless you quit EditView. Isn't this cool?

For other methods of jumping from one place to another, please see the Jump to command in EditView's Navigate menu or the "J" button in EditView's buttonPanel.

In addition, you can find some useful navigational macros here too.

buttonShifts

Let me speak for a moment of a revolutionary concept which I named buttonShift [© copyright Paul Nevai 1999-2002 & all rights reserved]. Using buttonShifts, some of the buttons in the buttonPanel can perform double duty roles. The way it works is as follows.

The bottom right corner area of the EditView screen, where the Graffiti shift indicator resides, just right to the buttonPanel, is the sweet spot for initiating a buttonShift.

NOTE. If your Palm OS supports the Graffiti 2 engine, then the above "sweet spot" is relocated just to the right of the "H" button so that it would not interfere with the Graffiti 2 enabler little bluish square.

Once you tap there, a black rectangle shows up for a short period of time, and then a 2*2 pixel sized tiny black square indicates that buttonShift is on. You will see that a number of buttons will get inverted and remain inverted for approximately 2.5 seconds. Congratulations. You have just performed a buttonShift.

buttonShift

If you don't press a button for which the buttonShift is functional for 2.5 seconds or you perform an unrelated action, then the buttonShift gets deactivated until you activate it again. However, if you do press a buttonShift friendly button, then, as explained at the appropriate button descriptions, the action associated with that particular button will correspond to the shifted state.

Please note that once buttonShifted, the page up and page down hard keys are sticky.

I hope the concept of buttonShifts will become standard in all Palm applications. Any interested party should contact me regarding licensing questions and the buttonShift SDK.

buttonSlides

The peditorial buttonShifts received a new interface in LapTopHack via buttonSlides.

I wish I could say that I am the inventor of this powerful idea, but, alas, I am not. In fact, I stole it from Jean Ichbiah of the ADA programming language fame [with his kind permission] who uses a similar but not identical concept in his Fitaly family of virtual keyboards.

buttonSlides are nothing but pen strokes generating a ctlExitEvent which is a rather rarely used event in the Palm universe.

In laymans terms, you create a buttonSlide by

  1. Press a button with your stylus so that it gets selected.
  2. Without lifting up your stylus move it outside the boundaries of the button.
  3. Now lift up your stylus.
  4. Congratulations, you just slided the button.

EXAMPLE. The "K" and "M" buttons in EditView's buttonPanel are slidable.

Once you mastered the concept of buttonSlides, the next step is to learn about directional buttonSlides, such as leftButtonSlides, rightButtonSlides, upButtonSlides, and downButtonSlides.

For instance, you create a leftButtonSlide by

  1. Press a button with your stylus so that it gets selected.
  2. Without lifting up your stylus move it to the outside of the button by going to the left by at least 5 pixels from the left boundary of the button.
  3. Now lift up your stylus.
  4. Congratulations, you just left-slided the button.

EXAMPLE. The "C" button in EditView's buttonPanel is left-slidable, right-slidable, and up-slidable.

I hope the concept of buttonSlides will become standard in all Palm applications. Any interested party should contact me regarding licensing questions and the buttonSlide SDK.

doubleTaps

The pedit preferences dialog allows you to activate doubleTaps and to determine the time period during which the doubleTap indicator remains activated after the first leg of a doubleTap [100 ticks are equal to 1 second].

If doubleTaps are allowed, then, after each tap on a portion of the text, a small indicator shows up right above the scroll bar, and, while this indicator is active, a second tap activates the Select command in EditView's Opt[ions] menu with the location of the taps properly filled in.

If you have MagicText installed in your Palm, then you can avoid undesired tap conflicts by performing the second tap sufficiently far away from the first one so that MagicText would not process it, and, therefore, pedit can take care of the double tap. In the latter case, you should study the ins and outs of MagicText so that you would know precisely if and when MagicText hijacks doubleTaps.

The Titlebar Statistics

The displayable statistics is a summary of the state of your memo's capacity, the total number of bytes, the current cursor location, the coordinates of the current selection, if any, and the location of the cursor within the current line. The stats are displayed in EditView's title bar.

Here is an example:

Stats

means that 8% of your memo's capacity is filled, there are 346 bytes in your memo, the text between bytes 104 and 109 is selected, and the cursor is at position 4 in the current line.

As long as you have enabled the statistics by checking the enable statistics in title bar box in the pedit preferences dialog, the statistics can be toggled via the Stats on|off command in EditView's Opt[ions] menu, or, even better, by tapping in the left 1/8th of the title bar [to the left from the small pixel visible just under the title bar].

While in magiPad, the statistics are always displayed, and, therefore, the above described pixel is invisible.

If there are more than 10,000 bytes in your memo [which only happens in pedit32] then pedit is running out of real estate in the title bar, and, therefore, the capacity information is omitted.

Maybe I should explain that if there is no current text selection, then both the beginning and the end of the selection are defined as the coordinate of the current cursor position.

If the statistics are hidden, then pedit looks like the good old Memo Pad so that, for instance, the current memo's category can be changed directly via the category trigger in the title bar [in addition to EditView's "D" button].

By the way, pedit is 100% MenuHack friendly. MenuHack users should tap the title area to the right from the above mentioned pixel. The same goes for the built-in MenuHack support in OS 3.5 and up.

As an experienced Palm operator, you know that both MenuHack and OS 3.5+ allow you to access the menu bar by tapping on the title of your memo, don't you?

Startup pScripts

If you have an optional user defined startup pScript of the form "{.peditrc::whatever}", then it gets executed every time whenever either an already existing regular memo is opened up directly from ListView or when launching pedit and it goes directly into EditView.

In addition, if you have an optional user defined startup pScript of the form "{.peditrc04::whatever 04}", then it also gets executed after "{.peditrc::whatever}" if the latter exists and if you are in the pedit04 mode. If "{.peditrc::whatever}" does not exist, then "{.peditrc04::whatever 04}" gets executed instead of the former.

The user defined optional startup pScript of the form "{.peditrc32::whatever 32}" works similarly to "{.peditrc04::whatever 04}" in the pedit32 mode.

Please see here about pedit04 versus pedit32.

EXAMPLE. In addition to the messages, this also moves the cursor to the end of the opened memo for 32K memos. Here "/GZ" turns on the macro mode and "/xz" turns it off. This eliminates the animation of the "J" [jump] dialog.
{.peditrc::/&mess@[@@I am .peditrc@@]}
{.pedit04rc::/&mess@[@@I am .pedit04rc@@]}
{.pedit32rc::/&mess@[@@I am .pedit32rc@@] /GZ /xEpro je /xz }

Segmented Memos

Whether you use 4K memos or 32K memos, eventually you will find out that they fall short of your expectations of being able to edit [or write] "War and Peace" on your Palm.

Unfortunately, as of September 25, 2000, the Palm operating system allows no larger than 32K text fields, and, to make matters worse, [a little less than] 64K is the size of the largest record you can create.

In terms of a memo and in terms of a "newbie's" terminology, this means that the largest memo you could create can have no more than 64K characters in it, and even if you have such a huge memo, you can only view it. In order to be able to edit it, your memo must have no more than 32K characters.

Even if you managed to create a large memo, after a HotSync job, your Palm DeskTop application would butcher [truncate] the poor soul.

There are several options to circumvent this limitation.

One solution is to create "virtual" memos. Such memos are, in fact, a collection of a number of memos which appear to be one from certain, but not all, points of view. This is the approach taken by all the DOC editors. This works but, alas, all the current DOC editors are low on both features and speed, and they all fall short of [my admittedly not low] minimal expectations.

EXAMPLE. Open up a large DOC file with either a DOC editor or a DOC reader, and try to select the entire text. Did you succeed?

Enter pedit. Just like DOC editors, pedit can create "virtual" memos of practically arbitrary size, but, unlike DOC editors, pedit does not completely hide the technical details of such memos from the user.

I call such "virtual" memos segmented memos, and I refer to the memos making up a segmented memo as sister segments.

Another way of conceptualizing such "virtual" memos is to think of them as a book with individual chapters, or sections, or pages.

A segmented memo is called multi-segmented if it has at least two sister segments.

Timeout: Segments vs Chapters

Even though from the purely technical point of view segments and chapters of a memo refer exactly to the very same concept, I will still use both words in conjunction with segmented memos.

NOTE. Once you learn pedit's export/import [see also here] business, and you start to examine your segmented memos, you will realize that, effective with version 5.07, the files have been split up at logical pauses in the text such as paragraphs, new lines [carriage returns], or spaces [in this order of priority].

Such operations allow you to move your memos between pedits, and between your Palm and the DeskTop.

I will refer to such memos as segmented memos.

On the other hand, when you write your great Aborigine novel, and you decide to start a new section or chapter, then you will use the New Chapter command in EditView's Edit+ menu. This will place you into a new memo which is a logical continuation of your previous memo, and which will be treated as such by many of pedit's functions.

When you are sitting on an important presentation, and you are taking notes with SkyIsLimit engaged, then your memos will be split up when you type a space or add a line.

The resulting segments are more structured. You could say that you started a new page.

In order to not confuse the situation even further, I will refer to the latter type of memos as consisting of segments.

End of Timeout

Just like chapters in a book have headers, so do segmented memos.

A Segmented Memo

Some peditors will view this as an annoyance, and some even asked me to hide such details from the user. Let me explain [some would say "rationalize"] my approach.

Just like with the entire Palm OS, one of pedit's underlying philosophy is that speed and efficiency are essential. Very few peditors will read "War and Peace" patiently while their Palm and pedit are processing their precious memos.

Therefore, pedit takes the approach that the segment information is kept with the memo itself in form of a segment header. This allows to minimize time spent on bookkeeping.

For instance, when starting up pedit, there is practically no time spent on searching various sister files where bookkeeping information is kept, and there is no need to update such information.

NOTE. There are two exceptions. First, pedit's preferences are loaded every time pedit is started. Second, pedit keeps track of the last 25 memos you have visited since you last cleared pedit's history [see the Recent command in ListView's Navigate menu].

Of course, if pedit gave up Memo Pad compatibility, then each memo could easily store extra information hidden from the user right with the memo itself. However, the rules of the game are set by Memo Pad and new rules can be defined only in accompanying sister files such as MemoHIST for pedit and Memo32HIST for pedit32.

The structure of a segment header is as follows.


123456... #segment.0020#
2000/04/08 11:54:42 00DB2152
Title: [and here come the first 64 letters of the first line of your memo].
Category: [here is the category of your memo]
!DO NOT TOUCH THIS LINE OR ABOVE!

Here "123456" are the first 6 letters of your segmented memo, the four digit non-negative integer "0020" is the segment index, and "2000/04/08 11:54:42 00DB2152" is the timestamp which shows the creation date, time, and the unique ID number of the first member of your segmented memo.

Note. The segment index must be a four digit non-negative integer. For instance "0000", "0001", and "1776" are valid, whereas "999" is invalid.

pedit relies on the correctness of the information stored in the segment header. Therefore, I beg you that under no circumstances change anything in it.

However, if you are a technically oriented peditor, then I tell you that you could change the title and the category in the header as long as you don't exceed the length limitations. If you do, then please keep in mind that in most operations pedit uses the title and category as defined in the very first segment of a segmented memo.

Note. As of Palm OS 3.5, Palm file names can have no more than 31 characters, whereas Palm category names can have no more than 15 characters [plus a null terminator].

You can also change the first 6 letters ["123456" in the above example] but if you do then you better change it in all the sister segments to the same.

The following diagram, created by Paolo, is a visual representation of the structure of a segmented memo.

   ___________
  | <header1> |
  |           |
  | sister #1 |
  | ......... |
  | ..text... |
  |___________|

   ___________
  | <header2> |
  |           |
  | sister #2 |
  | ......... |
  | ..text... |
  |___________|
        .
        .
        .
   ___________
  | <headerN> |
  |           |
  | sister #N |
  | ......... |
  | ..text... |
  |___________|

Tip. If you have a segmented memo and you want to disassociate one or more of its sister segments from the memo, just change the header a little bit. For instance, you could change "00DB2152" to "tmp 00DB2152" in the above example.

Tip. If you have a segmented memo and you want to re-segment it [in order to even out the segment sizes], the easiest way to do it via exporting it and its sister segments to a DOC file, and then re-importing it.

Tip. If you want to combine several of your pedit04 memos into one pedit32 memo, or several memos into one DOC file, then please read here.

Tip. If you want to combine existing memos by adding segment links to them, then please read here.

Tip. For the most convenient way to transport your segmented memo from pedit to your DeskTop and vice versa, please read here.

Among others, segmented memos are used in exporting pedit32 memos to pedit04 memos [see the Export Category command in ListView's Record menu, and the Export Memo command in EditView's Record #1 menu], in importation [see ListView's Record menu] of DOC files to pedit, and in the SkyIsLimit command in EditView's Edit+ menu.

NOTE. peditLight does not create and handle segmented memos. If you used another pedit to create segmented memos, then peditLight, just like any other memo editing Palm application, is very much capable of messing them up. Please be careful not to destroy your segmented memos.

magiPad

The "M" button in EditView's buttonPanel is a story on its own. Hence, I will discuss them separately from the general description of EditView's buttonPanel.

It allows you to enter magiPad [© copyright Paul Nevai 1999-2002 & all rights reserved].

magiPad separator asciiPad

Think of magiPad as a gigantic scratch pad which can save up to 32K [= 32767 or 2^15 - 1] characters. You can keep anything you wish in magiPad. It is always at your fingertips, and it allows you to paste anything from it back to your current memo. The way it works is as simple as possible.

Here are the details.

If you are in EditView, then you can enter [and leave] magiPad using the magiPad in|out command in the Navigate menu. You can also enter magiPad using the "M" button in EditView's buttonPanel.

If you are in ListView, then you can enter magiPad using the magiPad command in the Navigate menu. You can also enter magiPad by upButtonSliding the Docs button in ListView's buttonPanel.

NOTE. In peditLight the Docs button is renamed to "Jump".

NOTE. pedit remembers your magiPad vitals, and upon subsequent re-entries the state of the previous magiPad visit will be restored.

Once in magiPad, you can select any text, and then tap the Qopy'n'Paste button ["ESC Q"]. You will be instantaneously transferred back to your current memo, your selected text will be pasted into your memo, and, depending on the choice you made with the Qopy'n'Paste Selects on|off menu command, either the newly pasted text will be shown highlighted, or the cursor will be placed right after the pasted text.

If, prior to entering magiPad, you already selected some text, then upon returning via a Qopy'n'Paste job from magiPad, your selected text gets replaced by the new newly pasted item.

NOTE. If you entered magiPad via the "ASCII Table" command, that is, you have an ASCII table, then the Qopy'n'Paste button operates even if you have no current text selection in magiPad. Namely, hitting the Qopy'n'Paste button automatically selects the character in front of your cursor before you are transfered back to your current memo for a pasting job.

NOTE. When doing a Qopy'n'Paste job, the usual 1000 character limit of the Palm OS on the size of copying to the ClipBoard does not apply, and you can copy and paste as much as the size of your current memo allows.

NOTE. Right after a Qopy'n'Paste job, the Undo command in EditView's Edit menu and its sister "U" button in EditView's buttonPanel are not functional.

NOTE. If you change your mind after having accomplished a Qopy'n'Paste job, you can always undo it by using the Restore Memo command in EditView's Record #1 menu.

Of course, you should keep your favorite phrases in magiPad so that they are always available for instant pasting into your memos.

For instance, you could keep a short dictionary in it, or a thesaurus, or your publication list, or your CV, and so forth. The opportunities are limitless, up to 2^15-1.

Some peditors go even further. For instance, Margret has a magiPad category in her pedit which allows her to have the functionality of multiple magiPads.

The "OK" button enables you to leave magiPad without any further action except saving its current contents.

The ".C" [.Cancel] button, if you see it, enables you to leave magiPad without any further action and without saving its contents.

scriptPad

If you are in EditView, then you can enter [and leave] scriptPad using the scriptPad in|out command in the Navigate menu. You can also enter scriptPad by upButtonSliding the "M" button in EditView's buttonPanel.

If you are in ListView, then you can enter scriptPad using the scriptPad command in the Navigate menu. You can also enter scriptPad by upButtonSliding the Recent button in ListView's buttonPanel.

scriptPad looks like, smells like, and acts like magiPad so that it is de facto a secondary magiPad.

However, there is a difference between scriptPad and magiPad.

Namely, scriptPad is the place to keep your pedit pScripts.

Apart from this difference, magiPad and scriptPad are the same.

NOTE. pedit remembers your scriptPad vitals, and upon subsequent re-entries the state of the previous scriptPad visit will be restored.

NOTE. If you use peditLight, then you can't use pedit pScripts. Nevertheless, you can use scriptPad as a fully qualified secondary magiPad.

NOTE. All pedits prior to version 5.33 used magiPad to store pedit pScripts. Please do not forget to move them to scriptPad.

EditView's Fonts

The PopUp Font Trigger in the bottom right corner of EditView's screen and the Font, command in EditView's Options menu allow you to change the display font in EditView.

NOTE. You can switching between the last two display fonts in EditView [even while in an editable magiPad] via the buttonShifted "U" button in EditView's buttonPanel or by "ESC U" [upper case "U"].

Thanks to Rick Bram, Steve C. Gilardi, Carl Osterwald, Ken Hancock, Harry Konstas, Greg Parker, Michael J. Rider, and Andrew Welch who allowed me to use their fonts and/or font utilities, pedit [except peditLight] has a number of custom fonts.

fonts separator more fonts

NOTE. The high resolution fonts appear on your font lists only if the OS version of your Palm Powered handheld is at least 5.0.

I strongly recommend using the mono-spaced fonts for regular text editing.

The only [some would say fatal] flaw of the original Profont family of mono-spaced fonts is that they are almost completely screwed up when it comes to non-standard characters, including the international characters [ASCII 128 and up, and even some between 1 and 31].

The reason for this defect is that that they were designed originally for the Macintosh, and then they were converted to the Palm as an afterthought. So, if you have a pre-4.09 version of pedit, please do not blame the creators of Profont.

As of September 10, 2000, and as of version 4.09, I have great news for all Profont lover peditors. Michael J. Rider got fed up with the above described situation, and, with the generous permission of Steve C. Gilardi and Carl Osterwald, he fixed all of them.

Hence, the Profont family in all current pedits is as perfect as the other mono-spaced fonts, that is, Monaco, Courier, and TinyFont [aka HKFont] are.

I am not in the font designing business. Therefore, please do not expect me to create new fonts for pedit.

On the other hand, you are more than welcome to volunteer your services to the peditor community...

NOTE. The leftButtonSlided PopUp Font Trigger touches the current memo, that is, it pretends as if the memo were edited.

Finding and Replacing Text

pedit includes the Find'n'Replace and Select'n'Search technologies. In addition, I put a twist on the search process via Palm's built-in FIND SilkScreen button. The latter is discussed here.

All find functions in pedit are unrestricted as opposed to Palm's built-in SilkScreen "FIND" which matches the beginnings of words only.

One enters the Find'n'Replace dialog either via the Find command in EditView's Navigate menu or by tapping the "F" button in EditView's buttonPanel.

Find'n'Replace which has two text fields.

Find'n'Replace

The top one displays Please enter search string... or, if your memo in EditView has a text selection, then it displays that particular text, or, if a search string has already been defined, then it displays that search string.

For pedit's purposes, a string is any combination of characters in the 256 character ASCII table [excluding the '\0' character], including carriage returns and so forth (see magiPad).

Once you are Find'n'Replace, you can create an arbitrary search string of length not exceeding 255.

First, I tell you how to use the Find component or Find'n'Replace.

Once you finished composing your search string, and, optionally, your replacement string, and after all the check boxes such as Ign[ore] Case, Top Start[er], Wrap, and so forth, have been set appropriately, hit the FindIt button.

NOTE. The "<= above: find" and "=> below: repl" buttons allow you to recycle up to 128 of your old search and replacement strings, respectively.

NOTE. Use the menu command in the "Options" menu to manage your recent strings. You can sort them, delete them one-by-one, or delete all of them.

If the second text field in Find'n'Replace was left untouched or it is empty, then Find'n'Replace assumes that you initiated a search only operation and no automated replacement will take place.

Thus you will be transported back to your memo in EditView, and then Find finds the first occurrence of the search string in your memo.

Then use either the Find More command in EditView's Navigate menu or the "G" button in EditView's buttonPanel to find more occurrences of the same search string.

Please note that Find works in context in the sense that the found string always shows up in the middle of the text field. GNU aficionados will see the similarity between this and "grep --context".

In case [no pun intended] you did not figure it out yet, the Ign[ore] Case check box allows you to decide whether or not the search process should be case sensitive. For the benefit of non-native [broken] English speaking peditors, "case" refers to lower and/or upper case such as "pedit" as opposed to "pEdIt".

"ESC i" [lower case] = toggle the Ign[ore] Case box

"ESC I" [upper case] = check the Ign[ore] Case box [a pScript friendly operation]

The Top Start[er] check box allows you to decide whether to start the search at the beginning [top] of your memo, or at the current cursor position.

"ESC t" [lower case] = toggle the Top Start[er] box

"ESC T" [upper case] = check the Top Start[er] box [a pScript friendly operation]

Similarly, Wrap means that all text search and/or replace operations continue at the beginning [top] once they reached the end [bottom] except for the "All R" [Replace All] command which stops at the end.

"ESC w" [lower case] = toggle the Wrap box

"ESC W" [upper case] = check the Wrap box [a pScript friendly operation]

Selecting the All Segs check box means that if your memo is segmented, then the search and replacement process extend to all the sister segments as well. In addition, in this case, the segment headers are excluded from both the search and replacement operations.

"ESC a" [lower case] = toggle the All Segs box

"ESC A" [upper case] = check the All Segs box [a pScript friendly operation]

NOTE. For your convenience, the upButtonSlided G button toggles the All Segs variable.

NOTE. If the All Segs option is on and your memo is segmented, then the replacement operation is not a pScript friendly operation since it generates events which interfere with pScripting.

NOTE. If the All Segs option is on, then the search and replacement operations will be slightly slower since there is additonal overhead involved in keeping track of the sister segments [whether or not they actually exist]. However, it is quite possible that you will need an accurate stopwatch to be able to see the actual difference in speed.

Regular Expressions. As of version 5.77, all pedits, with the exception of peditLight, include support for a peditorial flavor of regular expressions [REGEXP].

If you are not yet familiar with REGEXPs, then this may be a good place to start although there is a practically unlimited amount of free literature available as well.

NOTE. Both "REGEXP" and "REGEX" are accepted abbreviations of the term "regular expression".

If you check the RegEx box, then your search strings are interpreted as a regular expressions.

"ESC r" [lower case] = toggle the RegEx box

"ESC R" [upper case] = check the RegEx box [a pScript friendly operation]

NOTE. For your convenience, the downButtonSlided G button toggles the RegEx variable.

Currently supported standard REGEXP symbols [metacharacters] are as follows.

The peditorial implementation of REGEXP is line oriented. Hence, "^" refers to the beginning of a line, whereas "$" to the end of it.

For the purposes of REGEXP, the very last line of a memo is considered as a full line even if it does not end with a linefeed character.

NOTE. If you want to use the above symbols in their literal sense, then you need to escape them using "\" [backward-slash], such as "\^", "\.", "\*", and "\$".

NOTE. In pedit, "\" [backward-slash] always literalizes [sic] as opposed to other implementations of REGEXP where "\" plays a dual duty role which I think is not a good idea. For instance, "\t" may mean a TAB elsewhere, whereas in pedit it is simply a plain "t".

NOTE. Unlike in some flavors of REGEXP, in the peditorial implementation "^" and "$" are always metacharacters no matter where they are located in your REGEXP. Hence, you always need to escape them with "\" [backward-slash] if you want to use them in their literal sense.

NOTE. In the peditorial REGEXP error checking, the group alternative symbol "|" is almost always perceived as a metacharacter no matter where it is located in your REGEXP. Hence, to be on the safe side, you should always escape it as in "\|" if you want to use it in its literal sense.

EXAMPLE. The REGEXP "\$x$y*z*" will match the string "$x".

NOTE. If you are Japanese, then I am sure you know that the "backward-slash" sign shows up as a "yen" sign on your screen and on your keyboard.

For a literal backward-slash use "\\".

NOTE. Among others, the following constructs are illegal.

NOTE. Naturally, as the peditorial implementation of REGEXP gets more mature, the number of illegal constructions grows steadily. Hence, the above list should not be viewed as complete. However, pedit has a number of error checking and error announcing mechanisms built in.

NOTE. The peditorial REGEXP has two different error checking mechanisms. First, your REGEXP is checked for some obvious errors such as two consecutive quantifiers as in "**". Second, pedit also does an on-the-fly error checking. However, the latter may never get performed if there was a no-match situation before pedit has a chance to check the local syntax. For instance, "a[:MicroSoft:]" is an illegal REGEXP but if your text consists of "bbb", then you get a no-match message before pedit ever has a chance to process "[:MicroSoft:]".

NOTE. The peditorial implementation of REGEXP reads and processes all regular expressions from left to right ["first come first served"] so that literal characters are never viewed out of context. For instance, "\\*" does not yield a literal "*" as opposed to "\\\*".

NOTE. It is perfectly safe and legitimate [although it may be unnecessary] to escape any character using "\". For instance, "\a" is the same as "a.

HOMEWORK. What do "\\a" and "\\\a" mean?

Options in peditorial Regular Expressions. Each REGEXP may contain some options which could also be called switches or flags. The syntax is as follows. If a REGEXP starts with "-[...]", then all the letters between "[" and "]" are considered options, and the actual REGEXP starts right after closing bracket "]".

EXAMPLE. "-[v]ped.tPro", "-[n]a*", and "-[nv5]a*".

Currently the following options are supported.

Null-matches. A null-match is a match of length 0 [zero]. For instance, if your text is "bbb" and your REGEXP is "a*", then every position in your text yields a match of length zero, since there are "zero or more" copies of the letter "a" at every position. Usually you would consider null-matches a nuisance and you would prefer ignoring them. By default, pedit ignores null-matches unless you explicitly request them using the "n" option.

NOTE. pedit will skip the "obvious" null-match which is at the end of the current text selection and/or cursor position. This practice is in agreement with the current implementation of most text editors although there is no such a thing as a set of generally accepted rules carved into stone.

NOTE. Not even professional [Macintosh] DeskTop editors such as BBEdit and CodeWarrior, just to mention a few, are perfect in implementing REGEXP. If you must find all null-matches, then please use the verbose option such as "-[nv]a*" which will announce all the null-matches correctly.

NOTE. It is legitimate to have the same option listed several times as in "-[vvvvicicicicici]test" although it may be difficult to justify the need for that except with the "lx" option. By the way, this is the same as "-[vi]test".

NOTE. If you want your REGEXP to start as "-[..." but you don't want it to be interpreted as an option, then start it as "\-[..." which turns the hypen "-" into a literal character.

Intervals. This is pretty much standard stuff except that the peditorial implementation is a little more user friendly than the ones I am familiar with since it allows to add any number of whitespaces [except linefeeds] inside the braces which may make it more readable.

As usual, "{min,max}" means that you want to match at least "min" but no more than "max" times the "stuff" just prior to "{min,max}".

EXAMPLE. "pedit{3,5}" matches "pedittt", "peditttt", and "pedittttt", but not "pedit" or "peditttttt".

Here is some useful information.

NOTE. You need to write "{min,max}" and not "\{min,max\}" as some flavors of REGEXP require.

Character Classes. This is pretty much standard stuff, and, as far as I know, there are no more than a couple of dozens of different interpretations of it [seriously]. Hence, I was free to follow whatever rules I wanted to. I chose the easy path which leads to the least amount of unexpected surprises. Hence, I just need to point out some nuances which are illustrated by the examples below.

The peditorial character classes use "[" [opening left bracket], "^" [do not match the elements of the character class], "-" [range definer dash operator], and "]" [closing right bracket] pretty much the same way as every other implementation does it except that there are some variations in the "non-trivial" cases.

I suggest that you study the ASCII table for understanding how the range definer dash operator "-" works in Palm OS specific character classes [see here too].

The character class operations also include a limited but essential subset of POSIX compliant character classes. Namely, the following POSIX expressions are supported: ":alnum:", ":alpha:", ":blank:", ":cntrl:", ":delim:" [this is not part of POSIX, and it the same as ":punct:" or ":space:"], ":digit:", ":graph:", ":lower:", ":print:", ":punct:", ":space:", ":upper:", and ":xdigit:". See here for more details.

In addition, you can also negate all the above POSIX expressions by adding the caret "^" right after the first colon ":" as in :^alnum:", :^punct:", and so forth. This is probably a well-known perl extension. However, it took me hours to find a reference for it. For instance, the most recent BBEdit uses this feature [version 6.5 and up].

WARNING. In true POSIX, you need to add extra brackets such as "[abc[:blank:]xyz]" whereas in the peditorial implementation the additional brackets should not be added so that you need to replace the previous example by "[abc:blank:xyz]".

QUESTION. Why is it necessary to use "[[:blank:]]" in true POSIX? If you know the answer, please let me know. I may have missed some finer points, and I may have to fix up the peditorial implementation of POSIX compliant character classes.

Character Class Specials. The character class operations also include a few peditorial specials of the form "@...@". The syntax is as follows.

EXAMPLE. "[:digit::lower:]" matches digits and lower case letters, including those non-standard lower case letters which appear in many languages such as "ö". By the way, in "normal" POSIX, you would have to write "[[:digit:][:lower:]]".

EXAMPLE. The expression "[]]" matches "]" because "]" is in the first position of the character class so that it is not viewed as the closing right bracket metacharacter. Similarly, the expression "[^]]" matches everything but "]".

EXAMPLE. The expression "[-]" matches "-" because "-" is in the first position of the character class so that it is not viewed as range defining metacharacter. Similarly, the expression "[^-]" matches everything but "-".

EXAMPLE. The expression "[a-]" matches "a" and "-" since "-" is followed by a character class closing right bracket metacharacter "]".

HOMEWORK. How does one match a range of characters from, say "A" to "]", or from "[" to "]"?

EXAMPLE. The expression "a-e-h" is a legitimate range of characters which is the same as "a-ee-h", that is, "a-h".

EXAMPLE. The expression "z-a" is a legitimate range of characters which happens to be empty so that nothing matches it since nothing is between "z" and "a".

EXAMPLE. The expression "[a]]" matches "a]" because the first right bracket is a metacharacter which closes the character class, and the second right bracket is already a regular literal character.

More Specials. The peditorial REGEXP has a few more specials of the form "@." both inside and outside character classes. They behave very much like in many other implementations of REGEXP except that pedit uses the "@" [at-sign] metacharacter as opposed to the usual "\" [backward-slash]. The syntax is as follows.

NOTE. The pToken "@" is used both for REGEXP specials and text capturing. When a given REGEXP can be interpreted both ways, then the latter takes precedence over the former. For instance, "(@A:x)" could be interpreted both as matching ":x" at the beginning of the text or as capturing "(x)" to the variable "\A", and the actual meaning is the latter.

Groups. This is also pretty much standard stuff. Hence, I just need to point out some nuances.

Since the peditorial implementation of REGEXP reads and processes all regular expressions from left to right ["first come first served"], this may have a drastic effect on how groups are matched and gives a new meaning to the words "greedy" and "lazy", especially when the groups contain alternative subREGEXPs and quantifiers.

Many times you will be puzzled when your REGEXP full of alternatives and quantifiers matches contrary to your expectations, and it will take a great deal of reflection to realize that pedit is right and your expectations were wrong. Frequently it will help you to solve the puzzle if you turn on the "n" ["null"] option. However, sometimes you may indeed find a bug. If you do, then please contact me with a full description of the example demonstrating the bug. The example should be as concise as possible.

As of version 5.87, the REGEXP groups support all quantifiers such as "(...){min,max}..." and "unlimited" nesting such as "(...(...)...)*..." as well.

NOTE. The peditorial implementation of REGEXP groups was a formidable challenge for an amateur programmer such as I am, especially since I did this without "cheating", that is, without dissecting and/or reverse engineering the publicly available source codes of programs which employ REGEXPs such as [gn]?awk, ed, emacs, grep, joe, perl, sed, just to name a few. I have no doubts that all peditors will agree that there is more fun in creating a REGEXP engine as opposed to copying one. One of the primary disadvantages of this method is that I don't have decades of the REGEXP community's experience behind me. In particular, I was happy to be able to accomplish things, and optimization was out of the question on many occasions.

NOTE. One sure way to slow down your Palm is to use nested groups with quantifiers.

EXAMPLE. The expression "(peditPro|LapTopHack) sucks*" matches "peditPro sucks" and "LapTopHack sucks".

EXAMPLE. The expression "pedit(|Pro|32|Light) sucks*" matches "pedit sucks", "peditPro sucks", "pedit32 sucks", and "peditLight sucks", but not "peditProPlus sucks".

HOMEWORK. Why is "pedit sucks" matched by "pedit(|Pro|32|Light) sucks*"?

HOMEWORK. What is matched by "(peditPro|LapTopHack){1,2} sucks*"? Is "peditPro LapTopHack suck" matched by it? If not, then why not and how to modify the REGEXP so that there would be a match?

NOTE. You need to write "(...|...)" and not "\(...|...\)" or "\(...\|...\)" or "(...\|...)" as some flavors of REGEXP require.

Capturing Text. In principle, this is also pretty much standard stuff. However, in practice, the peditorial implementation is different. Some could say that to some extent the peditorial captures are superior to some other flavors of REGEXP.

The rules and the syntax are as follows.

NOTE. The peditorial captures work only in replacement strings (see the "Find/Repl" component of the Find'n'Replace operations) and cannot be used for "backtracking" in search strings [whatever that may mean].

NOTE. As mentioned already, the pToken "@" is used both for REGEXP specials and text capturing. When a given REGEXP can be interpreted both ways, then the latter takes precedence over the former. For instance, "(@A:x)" could be interpreted both as matching ":x" at the beginning of the text or as capturing "(x)" to the variable "\A", and the actual meaning is the latter.

REGEXP Replacement Strings. This is also pretty much standard stuff with just a few caveats.

The current rules and the syntax are as follows.

NOTE. The original peditorial implementation of REGEXP had its roots in grep.c taken from The Practice of Programming (a great book) by Brian W. Kernighan and Rob Pike. Subsequently, it went through a series of transformations so that the current implementation no longer resembles the original one. It is somewhat recursive in nature, and it is not completely clear to me how the memory management of the Palm OS reacts to recursive functions in the long run. It is a fact of life that using REGEXP is slower than pedit's normal search procedures. On the other hand, you will experience the slow down only when you search very large segmented memos such as Les Miserables. Therefore, I advise to use REGEXP only when you actually need it unless you don't care whether it takes a full tenth of a second to find your match when you could have done the same job in less than one twentieth of a second. Alas, if you use many quantified groups, then the above mentioned "tenth of a second" may turn into minutes or perhaps even hours.

HOMEWORK. Find'n'time with a stopwatch both "ejaculated Cosette" and "((ejac)*ul(ate){1}).*Cosette" in Les Miserables starting from the top. For the second one, be prepared to wait patiently a very long time.

NOTE. If you ever experience either a crash or an unexpected termination while doing a search job using a long and/or complicated REGEXP, then use the Tuner Upper command in ListView's Options menu to increase the stack. That should solve the problem.

NOTE. The peditorial implementation of REGEXP is

The opposite of "greedy" is "lazy" or "minimal matching" [see, for instance, here for more details]. As you saw above, pedit can do "lazy" matching both globally and, in the spirit of perl, locally as well.

NOTE. Although you practically never need to be aware how the REGEXP search mechanism works under the hood when it is case insensitive, there are occasions when it will not hurt you to know some details. In short, when the search is case insensitive, then pedit coverts all characters which are about to be compared to lower case prior to the comparison, and then tries to see if there is a match. Examples, when it is good to be aware of this are character classes such as a REGEXP containing "[A-^]" or "[A-z]" or "[0-Z]" or something similar which drastically differ from their case sensitive versions. As I said already, I suggest that you study the ASCII table for understanding how the range definer dash operator "-" works in Palm OS specific character classes [see here too].

NOTE. At this point please do not contact me with suggestions of new REGEXP features. On the other hand, if you find bugs in the current implementation [which I am sure abound], then please do contact me with a full description of the problem. The complete example demonstrating the bug should be as concise as possible.

NOTE. I will be very much surprised if you can use the peditorial implementation of REGEXP on Palms with exotic OSs such as Chinese, Hebrew, Japanese, or Russian. Nevertheless, for the time being, I decided not to disable it on such Palms since it may turn out to be better than 100% useless. However, for the record, all the REGEXP routines assume that the Palm operates in a "single-byte" mode, that is, all characters are assumed to use exactly 8-bits, as opposed to the regular search routines which are supposed to be working whether your Palm's OS is "single-byte" or "multi-byte". If I recall correctly, Palm itself supports only one "multi-byte" system currently, namely, the Japanese one, but this may change as the Palm gains popularity.

NOTE. If you are a Japanese peditor using REGEXP, then please post your impressions to the peditors Forum.

QUESTION. DFA or NFA?

ANSWER. Excellent question. Alas, I don't have the faintest idea. I don't even know what these words really mean. Probably neither. According to [Friedl, p. 160], it is not NFA since it passes the "=XX========================" test with flying colors [which doesn't necessarily mean that it is good or bad]. On the other hand, according to [Aalto] it is not DFA, since it acts exactly as NFA under certain circumstances [see here].

Do you want to learn more about REGEXP? I recommend Jeffrey E. F. Friedl's Mastering Regular Expressions [see also here] as an excellent place to start [and to finish]. If you just want a plain vanilla quickie overview, then GNU's grep may help you. This is also excellent, and so is BBEdit's manual.

SHORTCUT. If the RegEx variable is set to false, then there is also a straightforward plain-vanilla way to search without entering the Find'n'Replace window, namely via the double duty Select'n'Search Find More command in EditView's Navigate menu or the "G" button in EditView's buttonPanel

Just select a string and invoke Find More or hit the "G" button. This action will find the first occurrence of the same string in your memo located after the selected string. This can be repeated as many times as one wishes. When the end of your memo is reached, the search starts at the beginning of your memo again unless the Wrap option has been deselected.

NOTE. I repeat that this fast search works only if the RegEx option is set to false, that is, the RegEx box in the Find'n'Replace dialog is left unchecked.

If the RegEx option has been selected, then using the Find More menu command or the "G" button will find the next match of your regular expression provided that there is already one defined. If you do not have a currently defined regular expression, then both the Find More menu command and the "G" button will take you to the Find'n'Replace dialog.

Please note that both Ign[ore] Case and Wrap can be controlled from both EditView's Opt[ions] menu (see Case yes|no and Wrap yes|no) and from Find'n'Replace as well.

So far I explained the case when the second text field in Find'n'Replace was left untouched or was empty so that you searched your memo only.

On the other hand, if you entered a replacement string into this second text field, then Find'n'Replace assumes that you want to conduct a full featured Find'n'Replace operation, that is, a "global search and replace" operation in professional lingo, and, assuming that there is at least one proper match, it takes you to the Find'n'Replace View form where a row of buttons on the bottom gives you full freedom whether to find [Find], replace [Peplace], replace and find [R & F], or replace all [All R].

WARNING. Prior to version 6.59, if the RegEx box is checked, and if the REGEXP "n" ["null"] option is on, then you should take extra precautions prior to using the All R button. Otherwise, you may unintentionally create a vicious circle. However, you can always interrupt it by tapping anywhere either on the screen, or the Graffiti input area of your Palm, or by typing ".", or by using the page Up/Down or 5-way up/down keys, and then, the Restore Memo command in EditView's Record #1 menu may save the day for you. As of version 6.59, such vicious circles have been eliminated.

NOTE. I strongly urge you to experiment with the above scenario. It is both educational and fun to watch. For instance, create a memo with text "pedit", and then replace "-[n]x*" with "LapTopHack" in it. Sit back and enjoy the show.

Find'n'Replace

The "H" button is there for help.

Just hit the Done button when you are finished to get back to your memo in EditView.

If your search string has no match in your memo, then, instead of Find'n'Replace View, you are taken back immediately to your memo in EditView.

In addition, the bottom row of buttons, Find'n'Replace View also displays the usual stats on the top, and gives you a summary of the search [F:] and replacement [R:] strings right above the buttons at the bottom.

NOTE. If you initiated a replace all [All R] operation, you can always interrupt it by tapping anywhere either on the screen, or the Graffiti input area of your Palm, or by typing ".", or by using the page up/down or 5-way up/down keys. As a side effect, sometimes such an operation gets self-interrupted on certain Palms since the system itself may occasionally generate events which pedit interprets as if they were taps. However, this is very unlikely to happen if your pedit is at least of version 5.72.

NOTE. If the replacement string is defined as "\x" [delete], then the matched string will be deleted from the memo.

Here is a neat trick which works if the RegEx variable is set to false. First copy a string, say "replace with" with the "C" button. Then select another string, say "replace me". Now use the "G" button to find occurrences of "replace me" and then hit the "P" button to replace it with "replace with". This can be repeated as many times as one wishes. The "G" button keeps searching for "replace me" and the "P" button keeps replacing it with "replace with".

If the RegEx variable is set to true, the an analogous procedure works as long as you have a currently defined REGEXP.

However, the same can be accomplished in a more professional way via the "F" button.

HINT. If the Ign[ore] Case option is turned off, then the "F" button is displayed in bold font. Similarly, if Wrap is turned off, then the "H" button is displayed in bold font, if All Segs is turned on, then the "G" button is displayed in bold font, and if RegEx is turned on, then the "Q" button is displayed in bold font.

NOTE. peditorial pScripts allow automating your Find'n'Replace operations. Please see here for examples.

NOTE. If you are in the expertMode, then the pedit Find'n'Replace dialog will not show up at all, although you can enter your commands as usual. On the other hand, if you are in the advancedMode, then you will experience a slight speed improvement compared to the normalMode. If you are in the globalMacroMode, then the pedit Find'n'Replace dialog remains invisible. Enjoy...

Moving Text

As of version 5.13, I added the ability to move blocks of text around your memo. This feature can be invoked by directional buttonSlides as described below and also either by entering "ESC X" [upper case "X"] or by upButtonSliding the "X" button in EditView's buttonPanel. The directional buttonSlides bring up specialized text mover dialogs such as,

char mover

whereas latter two bring up the general text mover dialog.

text mover

Some of the text moving commands could be better described as transpositions, but I decided to stick to the more general terminology of moving [a block of] text.

NOTE. In the following discussion "|" indicates the cursor.

EXAMPLE. If you typed "thsi" accidentally, then you can correct it by putting the cursor between "s" and "i" so that it looks like "ths|i", and then rightButtonSliding the "C" button in EditView's buttonPanel. This will result in "ths|i" changing to "this|".

Congratulations, you just performed a right-move of a character.

EXAMPLE. If you typed "thsi" accidentally, then you can correct it by putting the cursor between "s" and "i" so that it looks like "ths|i", and then leftButtonSliding the "C" button in EditView's buttonPanel. This will result in "ths|i" changing to "th|is".

Congratulations, you just performed a left-move of a character.

Can you see the subtle difference in the two examples above? In the first, you moved the letter "s" to the right and the cursor stayed ahead of "s". In the second, you moved "i" to the left, and the cursor stayed to the left of "i".

NOTE. "C" stands for "character" so that leftButtonSliding the "C" button moves the character just after the cursor to the left, and rightButtonSliding the "C" button moves the character before the cursor to the right. The cursor travels with the character. This should be easy to remember.

However, this is only the beginning of the story.

You can select a block of text in your memo, and then leftButtonSliding the "C" button moves the text selection by one character to the left.

Similarly, you can select a block of text in your memo, and then rightButtonSliding the "C" button moves the text selection by one character to the right.

The formal rules governing leftButtonSlides of the "C" button in EditView's buttonPanel are as follows.

The rules governing rightButtonSlides of the "C" button in EditView's buttonPanel are analogous except that they result in forward movements of characters.

QUESTION. How do I move a text selection by 37 characters to the left?

ANSWER #1. Repeat 37 times the above desribed procedure.

ANSWER #2. First, activate the char mover dialog by upButtonSliding the "C" button [see the picture below], then enter "37" into the Repeat # field, and, finally, hit the "B <=" button, or enter "b" or "B".

char mover

NOTE. If there is no text selection in your memo, you can transpose the two letters surrounding your cursor and leaving the cursor in its current position by entering "0" into the Repeat # field of the char mover dialog [upButtonSlided "C" button].

Now let us discuss how to move words around your memo. Please see, for instance, here regarding the rules which define words. The definition depends on the Forth word setting which you can adjust both via the "S" and "J" buttons in EditView's buttonPanel.

The title of your dialog tells you what the current Forth word setting is. If you see "!FW" in it, then the variable Forth word is set to false. Otherwise, you will see "&FW" in the title.

If you are either in the general text mover dialog or in the specialized word mover dialog, then you can also use these shortcuts.

"o" [lower case "oh"] = the Forth word variable is set to false [a pScript friendly operation]

"O" [upper case "Oh"] = the Forth word variable is set to true [a pScript friendly operation]

Let me summarize the rules governing leftButtonSlides of the "WC" button in EditView's buttonPanel.

NOTE. At first try, some of these rules [and some of the rules described below] may be somewhat counterintuitive. However, after a little reflection, you will understand that the rules are logical.

NOTE. Do you wonder what I mean by leaving the text selection essentially unchanged [above and in some of the rules described below]? Please experiment and you will see that if the original selection started or ended in between words, then it needs to be truncated to create a proper fit. Before you panic, I tell you that only the [visually displayed] selection is truncated and not the characters themselves covered by the selection.

SUMMARY. If the cursor is inside a word or you have parts of words selected, then moving word[s] backward will move only the word[s] effected by the cursor or the selection. However, if the cursor or text selection is fully in between words then the word beyond the cursor or text selection is moved only.

The rules governing rightButtonSlides of the "WC" button in EditView's buttonPanel are analogous except that they result in forward movements of words.

If you want to move your words by more than just one word at a time, then [surprise - surprise] you should upButtonSlide the "WC" button which reveals the word mover dialog, and then use the Repeat # field.

NOTE. If there is no text selection in your memo and your cursor is in between two words, then you can transpose the two words surrounding your cursor and leaving the cursor in between them by entering "0" into the Repeat # field of the word mover dialog [upButtonSlided "WC" button].

Next, let us discuss how to move sentences around your memo. Here is a summary of the rules governing leftButtonSlides of the "S" button in EditView's buttonPanel.

The rules governing rightButtonSlides of the "S" button in EditView's buttonPanel are analogous except that they result in forward movements of sentences.

If you want to move your sentences by more than just one sentence at a time, then you should upButtonSlide the "S" button which reveals the sentence mover dialog, and then use the Repeat # field.

NOTE. If there is no text selection in your memo and your cursor is in between two sentences, then you can transpose the two sentences surrounding your cursor and leaving the cursor in between them by entering "0" into the Repeat # field of the sentence mover dialog.

NOTE. The very last sentence in your memo may not end with an end-of-sentence mark, that is, with one of "." [period], "!" [exclamation mark], or "?" [question mark], so that when you move it, then you may end up with a missing end-of-sentence mark. If this happens, then please don't forget to add the appropriate missing end-of-sentence mark.

Next, let us discuss how to move screenLines around your memo.

NOTE. I beg you to read very carefully my comments here and here about screenLines. In particular, please always keep in mind that they are nothing but a figment of your Palm's imagination.

Since moving screenLines may result in somewhat unexpected results, the following general principles apply.

Here is a summary of the rules governing leftButtonSlides of the "K" button in EditView's buttonPanel.

The rules governing rightButtonSlides of the "K" button in EditView's buttonPanel are analogous except that they result in forward movements of screenLines.

If you want to move your screenLines by more than just one screenLine at a time, then you should upButtonSlide the "K" button which reveals the screenLine mover dialog, and then use the Repeat # field.

NOTE. If there is no text selection in your memo and your cursor is in between two screenLines, then you can transpose the two screenLines surrounding your cursor and leaving the cursor in between them by entering "0" into the Repeat # field of the screenLine mover dialog [upButtonSlided "K" button].

Next, let us discuss how to move lines around your memo. Here is a summary of the rules governing leftButtonSlides of the "L" button in EditView's buttonPanel.

The rules governing rightButtonSlides of the "L" button in EditView's buttonPanel are analogous except that they result in forward movements of lines.

If you want to move your lines by more than just one line at a time, then you should upButtonSlide the "L" button which reveals the line mover dialog, and then use the Repeat # field.

NOTE. If there is no text selection in your memo and your cursor is in between two lines, then you can transpose the two lines surrounding your cursor and leaving the cursor in between them by entering "0" into the Repeat # field of the line mover dialog [upButtonSlided "L" button].

Next, let us discuss how to move paragraphs around your memo. Here is a summary of the rules governing leftButtonSlides of the "P" button in EditView's buttonPanel.

The rules governing rightButtonSlides of the "P" button in EditView's buttonPanel are analogous except that they result in forward movements of paragraphs.

If you want to move your paragraphs by more than just one paragraph at a time, then you should upButtonSlide the "P" button which reveals the paragraph mover dialog, and then use the Repeat # field.

NOTE. If there is no text selection in your memo and your cursor is in between two paragraphs, then you can transpose the two paragraphs surrounding your cursor and leaving the cursor in between them by entering "0" into the Repeat # field of the paragraph mover dialog [upButtonSlided "P" button].

NOTE. If you leave the Repeat # field blank in any of the text mover dialogs, then you are going to be moving your text to the beginning or to the end of your memo depending which direction you are moving.

NOTE. If your memo is segmented, then the segment header is excluded from the text moving procedure.

NOTE. Since the text selection is kept unchanged relative to the block of text moved, under rare circumstances you may end up with unexpected text selections.

NOTE. At first reading, the above rules may appear somewhat complicated but once you start moving text, you will see that they are quite logical.

NOTE. Activating buttons via keyboard an/or Graffiti input in the text mover dialogs such as the one pictured below is according to the standard peditorial rules.

text mover

In particular, typing the first letter of any of the regular buttons or push buttons [in either lower or upper case] activates them, typing linefeed [carriage return] activates the default button "F =>" [forward], whereas entering SPACE or TAB rotates the selection among the push buttons.

NOTE. If you feel that the manual is not sufficiently clear and explicit regarding the text movement rules, please let me know.

NOTE. If you are in the expertMode, then the text mover dialog will not show up at all, although you can enter your commands as usual, including the "repeat" number which may have no more than five digits. On the other hand, if you are in the advancedMode then an abbreviated version of the text mover dialog appears in place of the original one which works exactly the same way as the full dialog. In both modes, the title of the dialog will tell you what type of text you are about to move. If you are in the globalMacroMode, then the text mover dialog remains invisible. Enjoy...

Sorting Text

As of version 5.14, I added the ability to sort blocks of text in your memo. This feature can be invoked by either by entering "ESC Y" [upper case "Y"] or by downButtonSliding the "X" button in EditView's buttonPanel. This pops up the text sorter dialog.

text sort

Although currently text sorting is limited to line sorting, I may eventually implement other text sorting commands such as word and paragraph sorting as well.

PRINCIPLE #1. Before any sorting procedure, pedit backs up your memo so that if anything goes wrong during the process such as your Palm runs out of memory [which is unlikely], then your memo will be restored to its original state.

PRINCIPLE #2. If you have some text selected in your memo then all the text sorting functions operate on the text selection, more precisely on a logical extension of your text selection, that is, on all the lines which contain parts of your original text selection. Otherwise, the entire memo gets sorted.

PRINCIPLE #3. After the text sort is completed, the entire sorted text will get selected so that you will have a visual feedback of what happened.

NOTE. If you don't like the results of the sorting then you can restore your current memo to its last saved state with the Restore Memo command EditView's Record #1 menu. However, please keep in mind that the last saved state of your memo may not be the same as the state of your memo just prior to sorting. Therefore, you may want to use the Save Memo command EditView's Record #1 if you plan a complicated text sorting job such as sorting the fifth chapter of Les Miserables in reverse alphabetical order while skipping the first 4 words of each line.

NOTE. Before you ever contemplate sorting lines, please read the about the essential differences between lines and screenLines. Otherwise, I guarantee you that you will be deeply shocked and disappointed after your first line sorting job.

Once you made your text selection in your memo and you invoked your text sorter dialog, you need to set the sorting parameters.

In pedit whitespaces are defined as SPACE, TAB, LINEFEED [carriage return], and a few more similar characters.

In pedit, fields defined as a collection of characters not containing whitespaces, and they are separated from each other by whitespaces.

NOTE. The careful peditor will observe that fields are the same as Forth words, and that my definition of whitespaces and fields is pretty standard except that some more sophisticated systems such as awk and gawk allow you to redefine these notions according to your individual needs.

In pedit, a column is the same as a character [with perhaps a few very rare exceptions].

Enter "0" in the # of skipped fields: text field if you don't want to skip any field. Otherwise, enter the number of fields you want to skip when comparing lines.

Enter "0" in the + # of skipped columns: text field if you want to compare your lines right after the skipped fields. Otherwise, enter the number of columns you want to skip after the skipped fields when comparing lines.

Enter "0" in the # of compared columns: text field if you want all columns to be used in the line comparison after the skipped columns. Otherwise, enter the number of columns you want to use in the line comparison right after the last skipped column.

Check the ignore case box if you want the text sorting to be case-blind.

Check the skip lead blanks box if you want to ignore leading whitespaces after the skipped fields right before the skipped columns.

You can sort your text both alphabetically or numerically in both forward [normal] and reverse directions.

NOTE. If your memo is segmented, then the segment header is excluded from the text sorting procedure.

NOTE. While pedit sorts your lines, you may [or may not] see a progress window showing you the number of comparisons made.

NOTE. When you sort text the very first time, the parameters which you see in your text sorter dialog will most likely be junk. Once you set them, pedit will always remember the latest settings.

NOTE. Probably 99% of all peditors will use only "0" parameters in all their sorting jobs.

NOTE. Activating buttons via keyboard an/or Graffiti input in the text sorter dialog is according to the standard peditorial rules. In particular, typing the first letter of any of the regular buttons, push buttons, or check boxes [in either lower or upper case] activates them, typing linefeed [carriage return] activates the default button "Forward", whereas entering SPACE or TAB rotates the selection among the push buttons. You can also rotate the focus between the text fields using the page up or page down buttons on your Palm, and by entering up arrow or down arrow via your keyboard.

NOTE. The "Reverse" button can also be activated by "b" and "B" [backward].

NOTE. If you feel that the manual is not sufficiently clear and explicit regarding the text sorting rules, please let me know.

NOTE. According to pedit's beta testers, sorting text is very easy and very natural even for "newbie" peditors.

NOTE. The top message on your screen shows the number of comparisons performed while sorting your lines [in increments of hundreds]. I strongly suggest that you take an example with very many, say, a few hundred line breaks, and then watch the show. If you have peditPro, then you could even sort a memo with a few thousand line breaks. It is really educational.

NOTE. You can interrupt [cancel] the sorting process according to the following rules.

NOTE. Neither the expertMode nor the advancedMode have an effect on the text sorter dialog except that you will experience a slight speed improvement compared to the normalMode. However, if you are in the globalMacroMode, then the text sorter dialog remains invisible.

EditView's Record #1 Menu

Since menubar real-estate is a precious commodity, this menu appears as "R1" in the menubar.

New Memo

This command saves your current memo, and then it creates a new one.

Delete Memo

This command allows you to delete your current memo and its sister segments. It is the non-batch version of the Delete Memo command in ListView's Record menu. Please see Delete Memo for further details.

NOTE. This command can also be invoked via the upButtonSlided "D" button in EditView's buttonPanel.

Go to Memo

This is the same as the Go to Memo menu command in ListView's Record Menu.

NOTE. This command can also be invoked via the upButtonSlided "OK" button in EditView's buttonPanel.

Beam Memo

This command allows you to beam your current memo to another Palm. Even if your memo is segmented, it will beam only the currently displayed segment of your memo.

For a more sophisticated beaming operation of individual memos, whether segmented or not, please see the Beam Memo command in ListView's Record menu for further details.

The Beam Category command in ListView's Record menu is also related to this operation.

Print Memo

This is the non-batch version of the Print Memo command in ListView's Record menu.

Print Selection

If you have Stevens Creek Software's PalmPrint, or TealPoint's TealPrint installed in your Palm, then this command prints out the currently selected text of your memo.

It is related to the Print Memo command in EditView's Record #1 menu and the Print Memo command in ListView's Record menu.

Export Memo

This command operates similarly to Export Category command in ListView's Record menu except that (i) it exports memos individually, (ii) it also exports to DOC format, and (iii) it allows you to create an export header.

For the latter, please see the Add a Header command in EditView's Edit+ menu.

When you see this dialog

Export to pedit

then you are in the pedit export mode. Please see the Export Category command in ListView's Record menu for a detailed discussion.

When you see this dialog

Export to doc

then you are in the doc export mode. This mode is the inverse of the Import Doc File command in ListView's Record menu.

First, select a title [file name] for your DOC file.

Second, decide if you want to delete your memo and its sister segments after the export operation has completed.

Third, if your memo is a pedit memo, then decide if you want to have an archival copy left on your PC.

Once you have made these decisions, hit the export memo + all its segments button and pedit takes care of the rest.

For your convenience, pedit is smart enough to pick a proposed DOC file name. If the memo originated from a DOC file, then the original name is shown. If the memo is segmented, then the header title is picked. If there is a current text selection, then it is used as the basis of a proposed name. Otherwise, the memo title is used. In each case, the proposed file name is subject to truncation since they can have no more than 31 letters. In addition, at the proposed file name stops at the first linefeed, if any.

QUESTION. Why can't I export my memo into a compressed DOC file?

ANSWER. Quoting one of the US presidents, it is the speed, stupid. Simply put, crunching your memo into a compressed DOC file would take too much time.

HINT. If you want to combine several of your pedit04 memos into one pedit32 memo, or several memos into one DOC file then proceed as follows.

First, open up the intended first segment of your memo in pedit.

Second, create an [export] header using either the create export header button in this Export Memo command, or the Add a Header command in EditView's Edit+ menu.

Third, copy this header into those memos which you want to export to as one single memo. Adjust the segment number 0010 appropriately.

Finally, export one of them to pedit32 or a DOC file.

NOTE. Entering a linefeed [carriage return] activates the exporter button.

NOTE. I should point out that the exported memo gets deleted from pedit only after the export operation went flawlessly so that your precious data are as safe as possible.

NOTE. The "Please create MemoDB/Memo32DB first..." message means that you have never been in the pedit04/pedit32 mode yet. Go to ListView and use the Switch command in the Navigate menu or tap in the left 1/8th of the title bar, to the left from the small pixel visible just under the title bar.

Insert Memo

This command allows you to insert into your current memo text from any other pedit04 or pedit32 memo or a selection thereof.

The way it works is as follows.

First, place your cursor in your current memo to the position where you want to insert text from another memo.

NOTE. If you wish, you can also select text in your current memo and then the inserted text will overwrite your selection.

Second, invoke the Insert Memo command [aka "ESC <"].

This will place you into ListView where you can see p04Insert... or p32Insert... depending on what pedit you are currently running.

Third, go to the memo you want to insert into your current memo. You can use any of the navigational tools, including the Switch command in ListView's Navigate menu which allows you to visit memos in the sister pedit.

Fourth, either hit the Insert Memo button [aka "ESC i"], or make a text selection, and then hit the Insert Selec'n button [again aka "ESC i"].

NOTE. In addition, to the Insert Memo or Insert Selec'n buttons, the title bar also reminds you that you are in the midst of an insertion operation.

That's all. You will be taken back to you original memo where the insertion operations gets autoMagically completed right in front of your eyes.

NOTE. pedit makes sure that you do not overstep the size limits of your current memo, and depending on the circumstances, it will warn you if you decide to insert too much text.

NOTE. If you change your mind and you want to abort the insertion operation at any time, just go to ListView, and hit the bottom button labelled .Return to the Open Memo Mode, or pick any of the batcher commands in ListView's Record menu with the exception of the Preview Memo command which can assist you in finding the memo you want to insert into your current memo.

NOTE. If you change you mind after the facts, then you can always use the Restore Memo command in EditView's Record #1 menu to alleviate the situation.

Script Memo

Please see the section about pScripting pedit for details on this command.

As a convenient shortcut, "ESC Z" turns globalMacroMode on and then invokes a silent version of this command.

Back Up Memo

This command backs up either the current memo or, if there is a text selection, the selected text in the current memo [as long as it is not too long], and puts a generic date'n'time stamp on the backed up copy.

Backed up memo

Most users will never experience a situation that their memo is too long to be backed up, but, if they do, then a clever dialog will pop up which explains why the operation cannot be accomplished.

If I may suggest, use the "}" button [aka quickSwitcher] after a back up job to return to your original memo.

Save Memo

When you open up your current memo, a copy of it is saved automatically in a temporary file. That temporary file contains what I call last saved state of your memo.

Such a saving takes place every time you open your current memo, that is, it also includes the times when you return from magiPad or you switch to your memo [see the Memo Switcher (aka ">") command in EditView's buttonPanel].

As you edit your memo, there is absolutely no need whatsoever to use this command to save your memo, since when you quit pedit, or switch to ListView, or open up another memo, your current memo is automatically saved.

This is different from DeskTop applications where you must make decisions whether or not to save your files.

However, it happens occasionally that you want to save your current memo after a few editing steps so that later on you could restore it to its last saved state.

You can restore your current memo to its last saved state with the Restore Memo command EditView's Record #1 menu.

This command is related to the Back Up Memo command EditView's Record #1 menu.

Restore Memo

This command restores your current memo to its last saved state.

Please see the Save Memo command EditView's Record #1 menu for further details.

This command is the same as the leftButtonSlided "X" button in EditView's buttonPanel.

Lock|Unlock Memo

A memo is called readOnlyMemo, if it is locked so that it cannot be edited. Otherwise, it is read'n'WriteMemo.

If a memo is in a readOnlyCategory then it is automatically a readOnlyMemo.

This command allows you to switch the state of your memo between readOnlyMemo and read'n'WriteMemo.

Being able to make your memo a readOnlyMemo is essential if you use your memo as a reference and you want to make sure that you will not change it accidentally. Programmers are especially keen on locking down their files.

Because programmers are very finicky [read: pain-in-the-butt] people, I had to find a way which will satisfy the seemingly impossible conditions such as Memo Pad compatibility and various restraints imposed by different programming languages. I am very happy that I found the ideal solution which will most likely please every peditor, whether a programmer or just a regular normal person.

Here are the rather complex rules.

DEFINITION. A category is a readOnlyCategory if and only if the ! starts read only categories box has been checked via the ListView Preference Panel and if the name of the category starts with "!" [exclamation mark].

DEFINITION. A memo is a readOnlyMemo if and only if either the first 256 characters of the memo contain the word $READ_ONLY$ [dollar signs included] or it is in a readOnlyCategory.

That wasn't difficult, was it? The way it works out is as follows. When pedit loads a readOnlyMemo, it turns off all the text editing functions, and, in addition, it also displays the "R" button in EditView's buttonPanel in bold font which gives you a visual reminder that your memo is locked.

QUESTION. How do I unlock a readOnlyMemo?

ANSWER. Use the Lock|Unlock Memo menu command which unlocks your memo so that it becomes temporarily a read'n'WriteMemo. In addition, it will also highlight [the first occurrence of] the word $READ_ONLY$ so that with the strike of a pen [stylus] you can permanently unlock it.

QUESTION. How do I lock a read'n'WriteMemo the very first time?

ANSWER. Use the Lock|Unlock Memo menu command. It will place the word $READ_ONLY$ at the current cursor [or the beginning of your text selection] if it fits within the first 256 characters of your memo. If your cursor is farther from the beginning of your memo, then the word $READ_ONLY$ will be placed at the very beginning of your memo. Once this has been done, pedit locks your memo.

QUESTION. What happens if I change the category of my memo to or from a readOnlyCategory?

ANSWER. pedit will automatically lock or unlock your memo as necessary.

NOTE. You can also manually place the word $READ_ONLY$ in your memo as long as it is within the first 256 characters, and then the Lock|Unlock Memo menu command simply locks your memo without adding the word $READ_ONLY$ to it.

NOTE. In order to help you to identify readOnlyMemos, their titles are marked [prepended] with "!" [exclamation mark] in ListView. Since "!" takes up hardly any space at all, the visible portion of the titles of your memos will not be effected at all.

NOTE. Although it doesn't seem to make much sense, pedit allows to lock blank memos as well. There are two reasons for this. First, I checked other DeskTop software such as BBEdit, and they also allow to do it. Second, it was easier to make the whole concept of locking and unlocking memos to work smoothly and to be as free of bugs as possible.

NOTE. The dollar signs in $READ_ONLY$ are not meant to imply that pedit gives preference to peditors whose countries use dollars in their monetary system. Instead, it is a small pToken [pun intended] of appreciation of my infinite admiration towards anything that resides in /bin and ends with sh, that is, matches ^/bin/[^/]*sh$.

HOMEWORK. Can you find a readOnlyMemo or a readOnlyCategory bug? If yes, then please let me know.

EditView's Record #2 Menu

Since menubar real-estate is a precious commodity, this menu appears as "R2" in the menubar.

Encrypt/Decrypt Memo

pEncryptTool

Please use the "Help" button for the "i-Tips" help file regarding this command.

In particular...

NOTE. A clear text memo can be encrypted if it has a title ending with a RETURN character, followed by a non-blank body. The title itself is allowed to be blank. Only the body gets encrypted.

NOTE. Once a memo has been encrypted, you can freely add new text and/or delete text before and after the encrypted text. pEncryptTool will recognize the encrypted portion and it will decrypt it when asked to do so.

NOTE. Although pEncryptTool tries hard, it can't accurately predict in advance if the encrypted text is going to be too long for the given text field so that it may abort during the encryption process.

NOTE. Encrypted text is appr. 25% longer than its unencrypted source.

NOTE. pEncryptTool has an extensive but not at all fool-proof user error detection mechanism built into it.

NOTE. pEncryptTool's encryption is based on the encryption mechanism supplied with the Palm OS. Google "EncDES", "DES", "DES3", and "3DES".

NOTE. If, in the future, the makers of the Palm OS decide to change the encryption function "EncDES()", then it will no longer be possible to decrypt text which originally was encrypted on Palms using the current "EncDES()".

WARNING. Although pCryptTool's encryption mechanism is not unbreakable, there is no way for you or for me to recover your text if you supply the wrong password[s] (unless you find a relentless encryption wizard).

This command is the same as the upButtonSlided "H" button in EditView's buttonPanel.

EditView's Edit Menu

Undo

This is Palm's built-in undo operation. It undoes [reverts] some of your most recent editing operations such as typing some letters, or entering backspaces, or deleting text, and the Paste, or Cut operations.

NOTE. Palm's undo capabilities are rather limited. As of October 22, 2000, when 3.5.2 is the latest version of the Palm OS, the undo buffer still holds no more than 100 characters.

NOTE. When undo doesn't work, sometimes you can save the situation by using the Restore Memo command in EditView's Record #1 menu.

This command is the same as the "U" button in EditView's buttonPanel.

Cut

This is Palm's built-in cut operation. It copies the current selection to the text ClipBoard, and deletes the selection from the field.

This command is the same as the "X" button in EditView's buttonPanel.

Copy

This is Palm's built-in copy operation. It copies the current selection to the text ClipBoard.

NOTE. The usual 1000 character limit of the Palm OS on the size of copying to the ClipBoard has been removed.

This command is the same as the "C" button in EditView's buttonPanel.

ClipBoard Appender

If your Palm OS is at least 3.3, then this command complements Palm's built-in copy operation. It appends the current selection to the text ClipBoard.

Of course, appending is just that. Nothing more and nothing less. Do not expect the old text and the new text to be separated in any meaningful way.

NOTE. If your Palm OS is at most 3.1, then you cannot append to the ClipBoard.

Paste

This is Palm's built-in paste operation. It replaces the current selection in the text, if any, with the contents of the text ClipBoard.

This command is the same as the "P" button in EditView's buttonPanel.

Select All

This command selects the entire text in your memo.

Select

As of October 11, 2000, this has replaced the original Select command [aka "ESC s"] in EditView's Edit menu.

Text Selector

It has been my experience that it is usually the sophisticated peditor [as opposed to "newbies"] who uses this command. Therefore, many of the text selector commands are quite sophisticated themselves in nature. If you are willing to invest a little extra time to get acquainted with them, they will provide for you an easy way to select text within your memo very fast and very efficiently.

It may be a good idea to study carefully the description of the various text selector commands since not all of them operate in a completely self-evident fashion.

I also recommend that you study the Select and Jump to commands [see EditView's Navigate menu] simultaneously since they share many features.

Please do not forget to read this either. It explains how to repeat the last text selection.

First, let us discuss the top line in the pedit ... selector dialog.

When you start up the pedit ... selector dialog, you will see two numbers displayed in the vrom [from] and to fields. They represent the location of the first and last characters of the text which was selected [highlighted] just before entering the pedit ... selector dialog. If no text was selected, then these numbers coincide with the current cursor location.

NOTE. Please do not forget to read about doubleTaps which help you to fill in the vrom and to fields fast and efficiently.

Pressing the Select button ["ESC s"] takes you back to EditView and selects a range of characters in your memo starting with the value of the vrom field, and ending with the value of the to field.

The vrom [from] field allows you to enter a non-negative integer which will be used as the location of the first character of the text selection to be performed when pressing the Select button.

You may also pick the value of vrom field by pressing the vrom button [lower case "v"] which takes you back to EditView. Now you can either place your cursor anywhere in your memo, or make a text selection manually. Upon getting back into the pedit ... selector dialog again via the normal invocation of the dialog, the vrom field will be changed to the current location of your cursor in the former case, whereas in the latter case the value of the vrom field will be the beginning of the text selection you made in your memo.

NOTE. This may sound more complicated than it is. Just go ahead and try it. I am pretty sure that after the first experiment it will become rather self-evident.

HOMEWORK. Why did I spell from as vrom?

Hint. Enter "f" and watch carefully.

Similarly, the to field allows you to enter a non-negative integer which will be used as the location of the last character of the text selection to be performed when pressing the Select button.

Again, you may also pick the value of to field by pressing the to button ["lower case "t"] which takes you back to EditView. Now you can either place your cursor anywhere in your memo, or make a text selection manually. Upon getting back into the pedit ... selector dialog again via the normal invocation of the dialog, the vrom field will be changed to the current location of your cursor in the former case, whereas in the latter case the value of the vrom field will be the end of the text selection you made in your memo.

NOTE. The current values shown in the vrom and to fields are used by the various commands in the pedit ... selector dialog as the values of the start and the end of the current text selection in your memo.

NOTE. Although you can enter any [at most 5 digit] non-negative integer in the vrom and to fields, pedit is smart enough to recognize when the number in the vrom field is greater than the number in the to field. If the latter happens, then, prior to any action, the to numbers are switched. In addition, pedit also recognizes if these numbers are greater than the size of your memo. If this is the case, then again, prior to any action, the numbers are reduced to the size of your memo. In other words, in what follows, we may assume without loss of generality that the number in the vrom field is no greater than the number in the to field, and that the number in the to field is at most the size of your memo.

EXAMPLE. When you learn to use the Home button, you will see that the selection in your memo will end at the current value of the to field instead of the last highlighted character which was selected just prior to entering the pedit ... selector dialog. Of course, if you did not change the number in the to field, then the latter two values are the same.

Next, let us discuss the second line in the pedit ... selector dialog.

The Repeat # field allows you to enter a non-negative integer which will be used as the number of times the selected command will be performed.

NOTE. Just to make your pedit experiences more pleasant, entering "V", "T", or "R" [upper case "V", "T", and "R"] always selects the number displayed in the vrom, to, or Repeat # fields, respectively, and makes that field focused. In addition, have fun using the following shortcuts.

page up = up arrow = increases the number in the field which is focused

page down = down arrow = decreases the number in the field which is focused

NOTE. Just to make your pedit experiences even more rewarding, entering SPACE or TAB will rotate the focus between the three number fields.

EXAMPLE. For instance, if the Repeat # field contains the number "5" and the abs => push button is highlighted, and then you select the Word button, then the fifth word of your memo will be selected counting from the home position, that is, from top of your memo.

EXAMPLE. For instance, if the Repeat # field contains the number "5", and you select the bWord button, then you will end up selecting the range of characters as defined by vrom and to fields, and, in addition, five more words will be selected backward counting from the character whose position is equal to the number in the vrom field.

This may sound somewhat complicated and intimidating. However, just a few taps will convince you that it is easy and natural.

NOTE. If you are an experienced peditor, then it is self-evident to you that the ESC key version of the above two examples are

ESC s R 5 a w

and

ESC s R 5 b w

respectively.

HOMEWORK. What should and will happen if you enter

ESC s f V 0 T 10 R 5 w

as an ESC key shortcut?

NOTE. When wanting to use the ESC key mechanism, please keep in mind that there is no need for an ESC key within the pedit ... selector dialog since there is no text field in it accepting alphabetical input [see here].

Now I will discuss the Home and End buttons.

The Home button selects all the text between the top [beginning] of your memo and the end of the current text selection as defined by the to field.

ESC s h = selects from the beginning of your memo to the end of the current text selection

ESC s T NUMBER h = selects from the beginning of your memo to the character whose location is "NUMBER"

ESC s ST ST NUMBER h = selects from the beginning of your memo to the character whose location is "NUMBER"

where ST stands either for a SPACE or TAB character.

NOTE. In this case the value in the vrom field is irrelevant.

EXAMPLE. "ESC s T 13 h" selects the first 13 characters of your memo.

The End button selects all the text from the start of the current text selection, as defined by the vrom field, to the bottom [end] of your memo.

ESC s e = selects from the start of the current text selection to the end of your memo

ESC s V NUMBER e = selects from the character whose location is "NUMBER" to the end of your memo

ESC s ST NUMBER e = selects from the character whose location is "NUMBER" to the end of your memo

where ST stands either for a SPACE or TAB character.

NOTE. In this case the value in the to field is irrelevant.

EXAMPLE. "ESC s V 13 e" selects from the 13th character to the end of your memo.

Next, let us discuss the groups of triplet buttons in the pedit ... selector dialog.

Looking at the pedit ... selector screen, you can see three columns of five buttons each with labels bP%, P%, and fP%.

In each of the rows the button labels are very similar, except that the buttons in left column start with the letter "b" [backward], and in the right column they start with the letter "f" [forward].

In fact, typing the letter "b" once, puts you into a backward mode, whereas typing the same letter "b"again, takes you out of the backward mode and places you back to the default symmetric mode.

Similarly, typing the letter "f" once, puts you into a forward mode, whereas typing the same letter "f" again, takes you out of the forward mode and places you back to the default symmetric mode.

In addition, there are two push buttons in the bottom right corner of the pedit ... selector screen called abs => and x <=>.

Pushing abs => or typing "a" puts you into the absolute mode, whereas pushing x <=> or typing "x" puts you into the symmetric mode.

Another way of changing modes is by typing "b", "f", or "a" [absolute], or "x" [symmetric] in any order you wish.

The title bar of the pedit ... jumper screen always tells you which mode you are in.

NOTE. If you use your stylus to tap buttons on the screen then you don't need to be concerned about the above described backward and forward modes although you still need to be able to differentiate between the absolute and symmetric modes. For the latter, just use the abs => and x <=> push buttons.

If you are in the symmetric mode, then the middle column allows you to perform various text selections in a symmetric direction, that is, both left and right, starting from the current text selection, as defined by the vrom and to fields. This is what I define as a text selection in symmetric mode.

If you are in the absolute mode, then the middle column allows you to perform various text selections starting from the home position, that is, from top of your memo. This is what I define as a text selection in absolute mode.

NOTE. The home position of your memo is always the beginning [top] of your memo and the end is the very end of it [bottom].

The left column allows you to to perform various text selections backward starting from the current text selection, as defined by the vrom and to fields. This is what I define as a a text selection in backward mode.

The right column allows you to to perform various text selections forward starting from the current text selection, as defined by the vrom and to fields. This is what I define as a a text selection in forward mode.

Notation. In the following discussion and tables "#" stands for the number which you entered in the Repeat # field. If the Repeat # field is empty or contains the number "0", then, depending on the function of the selected button, you may get a warning dialog reminding you to enter a number into that field.

Notation. In addition, I also use the notation "x" and "y" for the values of the vrom and to fields, respectively.

Now let us discuss the buttons themselves.

The three "Character" buttons bChar, Character, and fChar allow you to select "#" characters counting from the current text selection, as defined by the vrom and to fields. The details are as follows.

The bChar button selects the range of characters as defined by vrom and to fields, and, in addition, "#" characters backward counting from the character whose position is equal to the number in the vrom field.

If you are in the default symmetric mode, then the Character button selects the range of characters as defined by vrom and to fields, and in addition, "#" characters are selected backward and forward counting from the characters whose positions are equal to the the numbers in the vrom and to fields, respectively.

If you are in the absolute mode, then the Character button selects "#" characters counting from the beginning of your memo.

NOTE. In this case the values in the vrom and to fields are irrelevant.

The fChar button selects the range of characters as defined by vrom and to fields, and, in addition, "#" characters forward counting from the character whose position is equal to the number in the to field.

ESC s NUMBER b c = selects from "x - NUMBER" to "y"

ESC s NUMBER c = ESC s NUMBER x c = selects from "x - NUMBER" to "y + NUMBER"

ESC s NUMBER a c = selects from the beginning of your memo to the character whose location is "NUMBER"

ESC s NUMBER f c = selects from "x" to "y + NUMBER"

where "x" and "y" are defined here.

The three "Word" buttons bWord, Word, and fWord allow you to select "#" words counting from the current text selection, as defined by the vrom and to fields. The details are as follows.

The bWord button selects the range of characters as defined by vrom and to fields, and, in addition, "#" words backward counting from the character whose position is equal to the number in the vrom field.

If you are in the default symmetric mode, then the Word button selects the range of characters as defined by vrom and to fields, and in addition, "#" words are selected backward and forward counting from the characters whose positions are equal to the the numbers in the vrom and to fields, respectively.

If you are in the absolute mode, then the Word button selects "#" words counting from the beginning of your memo.

NOTE. In this case the values in the vrom and to fields are irrelevant.

The fWord button selects the range of characters as defined by vrom and to fields, and, in addition, "#" words forward counting from the character whose position is equal to the number in the to field.

NOTE. If the repeat number "#" is equal to "0" and you select word backward [bWord], then you will end up selecting from the beginning of the current word to the end of the current selection. Similarly, if the repeat number "#" is equal to "0" and you select word forward [fWord], then you will end up selecting from the beginning of the current selection to the end of the current word.

EXAMPLE. If there is no current text selection in your memo, that is, "x" = "y" [see here] then

ESC s 0 f w = selects at most one [partial] word from the current cursor to the end of the current word

NOTE. However, there is a [useful] exception to the above rule when the repeat number "#" is equal to "0". Namely, if both the beginning and the end of the selected text happen to be inside the very same word gap, then that particular word gap is selected. This can be used to delete word gaps, that is, to join words.

NOTE. If the repeat number "#" is equal to "0" then the Word button is not functional.

NOTE. See also here for the effects of the status of the Smart [select] check box.

ESC s NUMBER b w = selects from "x" to "y" and "NUMBER" words backward from "x"

ESC s NUMBER w = ESC s NUMBER x w = selects from "x" to "y" and "NUMBER" words backward from "x" and "NUMBER" words forward from "y"

ESC s NUMBER a w = selects "NUMBER" words from the beginning of your memo

ESC s NUMBER f w = selects from "x" to "y" and "NUMBER" words forward from "x"

ESC s 0 b w = selects selects from "x" to "y" and at most one word backward from "x" [the last word is the selection may be partial]

ESC s 0 f w = selects selects from "x" to "y" and at most one word forward from "y" [the first word is the selection may be partial]

where "x" and "y" are defined here.

NOTE. Typing the number "NUMBER" above is optional. If you leave it out then its default value "1" is used as the "NUMBER".

The three "Sentence" buttons bZent, Zentence, and fZent allow you to select "#" sentences counting from the current text selection, as defined by the vrom and to fields. The details are as follows.

The bZent button selects the range of characters as defined by vrom and to fields, and, in addition, "#" sentences backward counting from the character whose position is equal to the number in the vrom field.

If you are in the default symmetric mode, then the Zentence button selects the range of characters as defined by vrom and to fields, and in addition, "#" sentences are selected backward and forward counting from the characters whose positions are equal to the the numbers in the vrom and to fields, respectively.

If you are in the absolute mode, then the Zentence button selects "#" sentences counting from the beginning of your memo.

NOTE. In this case the values in the vrom and to fields are irrelevant.

The fZent button selects the range of characters as defined by vrom and to fields, and, in addition, "#" sentences forward counting from the character whose position is equal to the number in the to field.

NOTE. If the repeat number "#" is equal to "0" and you select sentence backward [bZent], then you will end up selecting from the beginning of the current sentence to the end of the current selection. Similarly, if the repeat number "#" is equal to "0" and you select sentence forward [fZent], then you will end up selecting from the beginning of the current selection to the end of the current sentence.

EXAMPLE. If there is no current text selection in your memo, that is, "x" = "y" [see here] then

ESC s 0 f z = selects at most one [partial] sentence from the current cursor to the end of the current sentence

NOTE. If the repeat number "#" is equal to "0" then the Zentence button is not functional.

NOTE. See also here for the effects of the status of the Smart [select] check box.

ESC s NUMBER b z = selects from "x" to "y" and "NUMBER" sentences backward from "x"

ESC s NUMBER z = ESC s NUMBER x z = selects from "x" to "y" and "NUMBER" sentences backward from "x" and "NUMBER" sentences forward from "y"

ESC s NUMBER a z = selects "NUMBER" sentences from the beginning of your memo

ESC s NUMBER f z = selects from "x" to "y" and "NUMBER" sentences forward from "y"

ESC s 0 b z = selects selects from "x" to "y" and at most one sentence backward from "x" [the last sentence is the selection may be partial]

ESC s 0 f z = selects selects from "x" to "y" and at most one sentence forward from "y" [the first sentence is the selection may be partial]

where "x" and "y" are defined here.

NOTE. Typing the "NUMBER" above is optional. If you leave it out then its default value "1" is used as the "NUMBER".

NOTE. I am sure you know that "Sentence" is spelled as "Zentence" above because "z" is the activator letter.

The three "LineFeed" buttons bLine, LineFeed, and fLine allow you to select "#" lines counting from the current text selection, as defined by the vrom and to fields. The details are as follows.

The bLine button selects the range of characters as defined by vrom and to fields, and, in addition, "#" lines backward counting from the character whose position is equal to the number in the vrom field.

If you are in the default symmetric mode, then the LineFeed button selects the range of characters as defined by vrom and to fields, and in addition, "#" lines are selected backward and forward counting from the characters whose positions are equal to the the numbers in the vrom and to fields, respectively.

If you are in the absolute mode, then the LineFeed button selects "#" lines counting from the beginning of your memo.

NOTE. In this case the values in the vrom and to fields are irrelevant.

The fLine button selects the range of characters as defined by vrom and to fields, and, in addition, "#" lines forward counting from the character whose position is equal to the number in the to field.

NOTE. If the repeat number "#" is equal to "0" and you select line backward [bLine], then you will end up selecting from the beginning of the current line to the end of the current selection. Similarly, if the repeat number "#" is equal to "0" and you select line forward [fLine], then you will end up selecting from the beginning of the current selection to the end of the current line.

NOTE. See also here for the effects of the status of the incl[ude] EOL check box.

EXAMPLE. If there is no current text selection in your memo, that is, "x" = "y" [see here] then

ESC s 0 f l = selects at most one [partial] line from the current cursor to the end of the current line

NOTE. If the repeat number "#" is equal to "0" then the LineFeed button is not functional.

ESC s NUMBER b l = selects from "x" to "y" and "NUMBER" lines backward from "x"

ESC s NUMBER l = ESC s NUMBER x l = selects from "x" to "y" and "NUMBER" lines backward from "x" and "NUMBER" lines forward from "y"

ESC s NUMBER a l = selects "NUMBER" lines from the beginning of your memo

ESC s NUMBER f l = selects from "x" to "y" and "NUMBER" lines forward from "y"

ESC s 0 b l = selects selects from "x" to "y" and at most one line backward from "x" [the last line is the selection may be partial]

ESC s 0 f l = selects selects from "x" to "y" and at most one lines forward from "y" [the first line is the selection may be partial]

where "x" and "y" are defined here.

NOTE. Typing the "NUMBER" above is optional. If you leave it out then its default value "1" is used as the "NUMBER".

NOTE. Please do not forget that lines and screenLines are not the same objects.

The three "Paragraph" buttons bPar, Paragraph, and fPar allow you to select "#" paragraphs counting from the current text selection, as defined by the vrom and to fields. The details are as follows.

The bPar button selects the range of characters as defined by vrom and to fields, and, in addition, "#" paragraphs backward counting from the character whose position is equal to the number in the vrom field.

If you are in the default symmetric mode, then the Paragraph button selects the range of characters as defined by vrom and to fields, and in addition, "#" paragraphs are selected backward and forward counting from the characters whose positions are equal to the the numbers in the vrom and to fields, respectively.

If you are in the absolute mode, then the Paragraph button selects "#" paragraphs counting from the beginning of your memo.

NOTE. In this case the values in the vrom and to fields are irrelevant.

The fPar button selects the range of characters as defined by vrom and to fields, and, in addition, "#" paragraphs forward counting from the character whose position is equal to the number in the to field.

NOTE. If the repeat number "#" is equal to "0" and you select paragraph backward [bPar], then you will end up selecting from the beginning of the current paragraph to the end of the current selection. Similarly, if the repeat number "#" is equal to "0" and you select paragraph forward [fPar], then you will end up selecting from the beginning of the current selection to the end of the current paragraph.

EXAMPLE. If there is no current text selection in your memo, that is, "x" = "y" [see here] then

ESC s 0 f p = selects at most one [partial] paragraph from the current cursor to the end of the current paragraph

NOTE. However, there is a [useful] exception to the above rule when the repeat number "#" is equal to "0". Namely, if both the beginning and the end of the selected text happen to be inside the very same paragraph trailer, then that particular trailer is selected. If EOLs are not included then the first linefeed is deselected. This can be used to delete trailer, that is, to join paragraphs, with or without joining lines.

NOTE. If the repeat number "#" is equal to "0" then the Paragraph button is not functional.

NOTE. See also here for the effects of the status of the incl[ude] EOL check box.

ESC s NUMBER b p = selects from "x" to "y" and "NUMBER" paragraphs backward from "x"

ESC s NUMBER p = ESC s NUMBER x p = selects from "x" to "y" and "NUMBER" paragraphs backward from "x" and "NUMBER" paragraphs forward from "y"

ESC s NUMBER a p = selects "NUMBER" paragraphs from the beginning of your memo

ESC s NUMBER f p = selects from "x" to "y" and "NUMBER" paragraphs forward from "y"

ESC s 0 b p = selects selects from "x" to "y" and at most one paragraph backward from "x" [the last paragraph is the selection may be partial]

ESC s 0 f p = selects selects from "x" to "y" and at most one paragraphs forward from "y" [the first paragraph is the selection may be partial]

where "x" and "y" are defined here.

NOTE. Typing the "NUMBER" above is optional. If you leave it out then its default value "1" is used as the "NUMBER".

NOTE. Please do not forget to check what paragraphs really are.

If the Smart [select] box [upper case "S"] is checked, and you are selecting words or sentences, then all trailing whitespaces are also included in the selection. A whitespace is defined as a regular SPACE, TAB, or LINEFEED [carriage return] character, and a few additional exotic space-like characters which may depend on the particular Palm operating system.

"S" [upper case] = toggle the Smart [select] box

"M" [upper case] = check the Smart [select] box [a pScript friendly operation]

If the Forth w[ord] box [upper case "F"] is checked then, by definition, words are separated from each other by whitespaces only unlike in regular spoken languages where punctuation signs also separate words. For instance, if Forth rules, then this sentence contains ten words only.

"F" [upper case] = toggle the Forth w[ord] box

"O" [upper case "oh"] = check the Forth w[ord] box [a pScript friendly operation]

If the incl[ude] EOL [EOL means "end-of-line"] box [lower case "i"] is checked, and you are selecting lines, then the text selection will also include the nearest trailing carriage return characters. This is useful when selecting text which extends over several lines.

If the incl[ude] EOL box [lower case "i"] is checked, and you are selecting paragraphs, then the text selection will also include the nearest paragraphs trailers. This is useful when selecting text which extends over several paragraphs.

NOTE. What the heck is a paragraphs trailer? It refers to the stuff you cannot see between paragraphs. It consists of SPACE, TAB characters squeezed between linefeeds [carriage returns].

"i" [lower case] = toggle the incl[ude] EOL box

"I" [upper case] = check the incl[ude] EOL box [a pScript friendly operation]

The .Cncl [.Cancel] button ["ESC s." - but why] aborts the text selection operation and takes you back to EditView.

The Marker button ["ESC sm"] selects text in your memo depending on the current text selection, as defined by the vrom and to fields, and the marker [see the Set Marker command in EditView's Navigate menu].

The rules are as follows.

If there is no text selection in your memo, that is, both the vrom and to fields have the same value, then tapping the Marker button selects text between the marker and the current cursor location as defined by the vrom field.

EXAMPLE. If both the vrom and to fields contain the number 1918 and the marker is located at position 1939, and you enter "ESC sm" then the text selection will contain all the characters from 1918 to 1939.

HOMEWORK. What will happen if you enter "ESC sV1945T1945m" instead of "ESC sm" in the above example?

When there is a text selection in your memo then the situation is a little more complicated.

If the marker position is outside the range of the selected text, as defined by the vrom and to fields, then tapping the Marker button extends the selection of the text to the marker.

EXAMPLE. If the vrom field contains the number 1914 and the to field contains the number 1918 and the marker is located at position 1939, and you enter "ESC sm" then the text selection will contain all the characters from 1914 to 1939.

HOMEWORK. What will happen if you enter "ESC sV1945T1956m" instead of "ESC sm" in the above example?

If the marker position is inside the range of the selected text, as defined by the vrom and to fields, then tapping the Marker button has no effect.

If you have a better idea what should happen in the latter case, please let me know.

EXAMPLE. If the vrom field contains the number 1914 and the to field contains the number 1945 and the marker is located at position 1939, and you enter "ESC sm" then the text selection will contain all the characters from 1914 to 1945.

NOTE. All the text selection commands are sticky in the sense that the last text selection command can be repeated by simply either doing a buttonShifted "S" job in EditView's buttonPanel, or by entering "ESC S" [upper case "S"]. Of course, once you quit your memo or magiPad, the last text selection becomes history.

NOTE. If you are in the expertMode, then the pedit ... selector dialog will not show up at all, although you can enter your commands as usual, including the "vrom", "to", and "repeat" numbers which may have no more than five digits. On the other hand, if you are in the advancedMode, then an abbreviated version of the pedit ... selector dialog appears in place of the original one which works exactly the same way as the full dialog. If you are in the globalMacroMode, then the pedit ... selector dialog remains invisible. Enjoy...

The original version of "Select..."

As of October 11, 2000, this has been replaced by the brand new Select command in EditView's Edit menu.

I kept the old version of "Select..." in this manual for two reason. First, there are many peditors who are somewhat slow in upgrading their pedits. Second, this gives a chance to see pedit in progress.

This command pops up the text selector window which allows a myriad customizable text selections.

Text Selector

All buttons and check boxes can be activated by entering the first letters of their labels. Switching between the number fields can be achieved by entering SPACE or TAB.

Here is a neat example. Perform a doubleTap with the consecutive component taps in two different areas of your text. This pops up the text selector window where you hit the Word button. Voila, the words containing the two taps and, in addition, all the words between the two taps become selected.

If the smart select box is checked then all trailing strict spaces are also included in the selection. A strict space is defined as a regular space or tab character and a few exotic space-like characters which may depend on the particular Palm operating system.

If the Forth word box is checked then, by definition, words are separated from each other by whitespaces only unlike in regular spoken languages where punctuation signs also separate words.

If the include EOL [EOL means "end-of-line"] box is checked then the text selection will also include the nearest trailing carriage return character. This is useful when selecting text which extends over several lines.

As a convenient shortcut, in EditView "ESC S" selects all text in the memo just like the Select All command in EditView's Edit menu so that there is no need to open up the text selector window for this operation [which, by the way, responds to "ESC s"].

Another time saving shortcut in EditView is "ESC W" which selects the word surrounding the cursor.

Move

This command pops up the text mover dialog which allows you to move blocks of text around your memo. Please see here for more details.

This command is the same as the upButtonSlided "X" button in EditView's buttonPanel.

NOTE. This command has expert && advanced modes.

Sort

This command pops up the text sorter dialog which allows you to sort blocks of text in your memo. Please see here for more details.

This command is the same as the downButtonSlided "X" button in EditView's buttonPanel.

Keyboard

This command pops up Palm's built-in virtual keyboard so that you can edit your memo while pretending that you are in fact typing.

Graffiti Help

This command pops up the Graffiti Reference Dialog.

Help

This command opens the help dialog which is mostly [but not always] context sensitive.

EditView's Edit+ Menu

Since menubar real-estate is a precious commodity, this menu appears as "Ed+" in the menubar.

Insert Char

This command gives you an ASCII table in the form of a scrollable list.

It provides an elegant way to insert an arbitrary ASCII character into your text at the current cursor location [or replace the current text selection].

It pops up an ASCII list which shows both decimal and hexadecimal values of the ASCII characters.

If you tap on a character, then it will be inserted into your current text at the current cursor position. If instead of a blinking cursor you have some text selected, then it will be replaced by the picked character.

NOTE. Unlike with magiPad's Qopy'n'Paste command which selects the inserted text, the Insert Char command places the cursor right after the character which was inserted into your text.

NOTE. Only the character gets inserted. The additional numbers such as "[065 0x41] A" are given for informational purposes only.

Please see here for help on navigating the ASCII list.

This command is the same as the upButtonSlided "U" button.

The characters on the list are the same as given by the "ASCII Table" command. However, the user interface is completely different.

ASCII Table

This command gives you an ASCII table. It is described in details where magiPad is discussed.

You can get another ASCII table in the form of a scrollable list via the Insert Char command which is the same as downButtonSlided "U" button.

This command is the same as the downButtonSlided "U" button.

NOTE. If you are in magiPad, then this command is the same as the Insert Char command.

Auto Indent

This command pops up the Automatic Indentation list.

Auto Indent

Auto indenting allows your Palm to be used as a serious program source code and text editing tool. The opportunities outside the scope of programming are limited by your imagination only.

If you are a programmer or a writer, then you don't need any explanation whatsoever. If you aren't, then let me just say that after you adjusted your preferences using items "9" ans "0" in the list, and if you enabled automatic indentation using items "2" through "8", then every new line inherits the indentation [the whitespace characters] of the previous line as long as neither Palm's built-in virtual keyboard nor pasting is used for entering text.

Since it is much easier to explain this on an example, here is one.

For instance, typing

# comment

the next line will have an autoMagic "# " ["#" and "SPACE"] in the beginning of it as long as you activated either the auto indent ON w SPACE & EX or the auto indent ON w ALL item on the list and you picked "#" using the change EXTRA char... item.

If you enter a carriage return after the word "comment" and then you enter "pedit" then you will have

# comment
# pedit

Did you get it? If not, please try it.

We will define the collection of characters which get reproduced by entering a carriage return to be the line indentation header.

In the example above the line indentation header consists of "SPACE" and "#".

If items "2" through "8" are activated then automatic indentation in enabled.

QUESTION. How do I know if I enabled automatic indentation?

ANSWER. Look for the small 2*2 pixel sized black square just above EditView's scroll bar.

The more EXTRAS... item allows you to define up to 16 additional whitespace characters which are used by automatic indentation.

Use the turn more EXTRAS ON/OFF to activate/deactivate the additional whitespace characters.

For instance, if you define the letters in "pedit" as additional extra characters, then you can produce text such as

#pedit# blahblah one...
#pedit# blahblah two...
#pedit# blahblah three...

automatically.

NOTE. I bet you already figured it out that defining the letters in "peditblah" as additional extra characters, makes the above example even easier to produce.

NOTE. You can use space, backspace, arrows, the 5-way navigator, the numbers/letters in front of the list items to navigate the list. Use ENTER to activate the highlighted item, and "." [period] to cancel the list. Please see here for full help on navigating the Automatic Indentation list.

NOTE. Not only EditView, but also each and every magiPad/scriptPad remembers its own automatic indentation preferences.

Block Shift

This command pops up the Block Shift list.

Block Shift

This command is related to what many programmers and professional writers would call block indentation or block shifting.

I recommend that you use one of the mono-spaced fonts while shifting so that you would have a perfect visual feedback of what you have accomplished.

Please keep in mind that a line is not necessarily what you think a line is. Please check out the definition of lines here.

Use the change EXTRA char... item to define an additional character which can be used in conjunction with SPACE and TAB to perform block shifts.

Use the change => SHIFT SIZE... and change <= SHIFT SIZE... items to define the number of shift characters which are added/deleted when performing block shifts.

NOTE. When shifting to the right, blank lines are left unchanged if the right-shift character is either SPACE or TAB.

NOTE. In order to make block shifting a little more user friendly, I deviated from the widely accepted standards of block shifting in the sense that if only one single line is shifted, then the cursor is placed at the end of the shifted line instead of selecting the entire line.

NOTE. In view of the combination of the above two notes, if you right-shift more than one line and all but one are blank, then the cursor may end up at the end of a blank line instead of the end of the non-blank line. I hope you can live with this minor inconvenience.

NOTE. You can use space, backspace, arrows, the 5-way navigator, the numbers/letters in front of the list items to navigate the list. Use ENTER to activate the highlighted item, and "." [period] to cancel the list. Please see here for full help on navigating the Block Shift list.

NOTE. Not only EditView, but also each and every magiPad/scriptPad remembers its own block shifting preferences.

NOTE. This command can be also be invoked using the buttonShifted "T" [aka "[]"] button.

EXAMPLE. Right-shifting

pedit
LapTopHack
pToolSet

with the extra character "#" [item 3] yields

###pedit
###LapTopHack
###pToolSet

if the ...=> SHIFT SIZE... is set to 3.

Shift Left

This command is a shortcut for the last left shift command made while using the Block Shift command in EditView's Edit+ menu.

NOTE. This command can be also be invoked using the buttonShifted "L" [aka "["] button.

The analogous right shifts are performed by invoking the Shift Right command in EditView's Edit+ menu.

Shift Right

This command is a shortcut for the last right shift command made while using the Block Shift command in EditView's Edit+ menu.

NOTE. This command can be also be invoked using the buttonShifted "K" [aka "]"] button.

The analogous left shifts are performed by invoking the Shift Left command in EditView's Edit+ menu.

SkyIsLimit on|off

If SkyIsLimit is on then a "*" [sky => star] appears right next to the "H" button in EditView's Button Panel.

SkyIsLimit allows you to create 4Mb and 32Mb virtual memos in pedit and pedit32, respectively. Please note that I am referring to "Mb" and not "Kb". Of course, as most of you will find out, 32Mb is rarely reachable unless your sister works for one of those companies which make Palm clones.

This feature was primarily created for those peditors who hook up their Palm to an external keyboard [or the other way around, depending one's outlook on life], and then they pretend that they have a full featured laptop computer. Boy, they are right!

With SkyIsLimit you can take notes at meetings lasting hours and hours and/or you can write the great American [or any other nation's] novel right on your Palm.

The way this works is as follows.

If you are typing into a memo [except for the built-in virtual keyboard], and (i) if your cursor is located at the very end of your text [where it should be unless you are editing an existing memo], and (ii) if you filled up 75% of your current memo's capacity, and (iii) if and you type a space or newline character or if you are at the very and of your memo's capacity, then a new memo

A Segmented Memo

is created autoMagically which starts like


123456... #segment.0020#
2000/04/08 11:54:42 00DB2152
Title: [and here come the first 64 letters of the first line of your memo].
Category: [here is the category of your memo]
!DO NOT TOUCH THIS LINE OR ABOVE!

and then you can continue typing where the cursor is.

Here "123456" are the first 6 letters of your memo.

When you fill up segment.0020, then segment.0030 is created, and so forth. It is easier to experience this than to describe it, so please go ahead and play with it.

Since each of your memos is filled up to 75% of its maximum capacity, you have plenty of real estate for additions, corrections, editing, and so forth.

QUESTION. How do I know if my 75% limit is approaching?

ANSWER. Turn on the displayable statistics.

When you do a HotSync job, you can join your segments on your DeskTop any way you want it.

Of course, you can also export your segmented memo and its sister segments into a DOC file using the Export Memo command in EditView's Record #1 menu, and then, by the time it hits your DeskTop, it will be a single DOC file.

Needless to say, this process is reversible.

I can almost guarantee you that you will love SkyIsLimit. Here is a tip. If you don't care for it, then don't use it.

NOTE. When in myNotes [see also EditView's "N" button], or, more generally, when the memo starts with "xxx.myNotes" followed by a blank line, then SkyIsLimit is temporarily disabled which prevents the current "myNotes" and allso all archived "myNotes" from being split up.

New Chapter

We use the word chapter and segment interchangably. If you are writing a novel, then chapter is the right word. If you take notes, then segment [or even page] is perhaps more appropriate.

There is a subtle difference between chapters and segments. Usually, but not always, chapters are broken at logical interruptions, whereas segments may be broken anytime whenever pedit decides that it is time to start a new segment.

Please see here for a more detalied discussion of segments vs chapters.

With this command, whether or not SkyIsLimit is active, you can always force the creation of a new segment whose segment index will be right after the segment index of your current memo.

After invoking this command, you will see a dialog which allows you to decide whether you want a brand new blank [text free] chapter or you want to split up your current memo and you want to move the text which is located after the cursor in your memo to the new chapter. If you have some text selected, then it is assumed that the cursor is at the very start of the selection.

If your current memo is not yet segmented then it will be given a header prior to placing you into a new segment.

Whenever you use this command, the segment indices of your memo and its sister segments get automatically readjusted so that if you added some segments manually to your memo then the new segment indices will be again in multiples of ten.

NOTE. If your cursor happens to be either at the start of your memo or inside the header of your memo, then it doesn't make much sense at all to move the text after the cursor to a new chapter so that the operation will abort if you requested pedit to move text too.

Go to Prev Chap

If your current memo is segmented and the current segment is not the first one, then this command takes you to the bottom of the previous segment of your memo.

If you are at the top of your memo then hitting the page up button has the same effect as this command.

NOTE. If the previous segment was already visited and it is invoked via the segmentSwitcher ["$"] button in EditView's buttonPanel, then the previous memo vitals are restored.

Go to Next Chap

If your current memo is segmented and the current segment is not the last one, then this command takes you to the top of the next segment of your memo.

If you are at the bottom of your memo then hitting the page down button has the same effect as this command.

NOTE. If the next segment was already visited and it is invoked via the segmentSwitcher ["$"] button in EditView's buttonPanel, then the previous memo vitals are restored.

Reindex Chaps

With this command, if your current memo is segmented, then the segment indices of your memo and its sister segments get automatically readjusted so that if you added some segments manually to your memo then the new segment indices will be again in multiples of ten.

Add a Header

A memo header

A Header

contains all the essential information regarding your memo which is used both in the SkyIsLimit feature and in exporting several memos into one pedit32 memo or DOC file. The details are explained here.

QUESTION. Why do I need to create header?

ANSWER. So that you can create segments manually which can be combined into one pedit32 memo or DOC file via an export job.

Once you have a header, you can use it as a template to paste it to the top of other memos so that they would create one family of segmented memos.

Please make sure that you adjust the segment number appropriately in each of the segments so that they would be ordered exactly the way you want it. Any (exactly) 4 digit number can be used such as 0002 and 1976.

Edit Selection

This command allows you to edit the current text selection separately in a setting similar to magiPad. Once you finished editing your text, you can use the Qopy'n'Paste button or "ESC Q" [upper case "Q"] to paste your text back into your current memo.

Once you finished editing your text in magiPad you can either select some text in it and then hit the Qopy'n'Paste button ["ESC Q"] or just have a blinking cursor while you do a Qopy'n'Paste job.

If you have text selection then the Qopy'n'Paste button acts normally and pastes the current text selection back to your current memo.

If you have a blinking cursor, then you will have a dialog coming up which will allow you to select the entire text and then paste it back to your current memo.

NOTE. If there is no current text selection in your current memo then you are still taken to a blank copy of magiPad where you can create new text and then later you can use the Qopy'n'Paste button or "ESC Q" to paste it back at your current cursor position in your current memo.

EditView's Options Menu

Since menubar real-estate is a precious commodity, this menu appears as "Opt" in the menubar.

Font

This command yields another way of changing fonts in EditView. Please see EditView's Fonts for more details.

Add a DateStamp

This command inserts a date'n'time stamp of the form

2000/04/08 11:54:42

into your memo at the current cursor location if there is no current text selection in your memo, and replaces the latter by a date'n'time stamp if there is one. The actual formatting uses the preferences set in the "Formats" Preference Panel.

Batch Processor

This command is the same as the Batch Processor command in ListView's Options menu. Please see here for the details.

Visibilator

This button invokes the visibilator command. It can also be invoked via "ESC !".

Have you ever wondered if that gap thing right there in your text is two spaces, or three spaces, or, maybe, is it a tab or a combination thereof? Worry no longer! Just invoke the visibilator and it shows you the spaces and tabs by replacing them with "·" [middle dot] and "»" [right pointing double angle quotation mark, similar to ">>"], respectively.

The Visibilator

NOTE. As of version 6.46, the visibilator acts on the selected range of text only unless there is no text selection at all. In the latter case, the entire text gets acted upon.

Feel free to edit your invisible characters as you wish. Then use the visibilator again, and you are back to "normal".

If you want to see the carriage returns [linefeeds] too then please set the linefeed is viewed as invisible check box in the pedit preferences dialog and you are all set.

The next time you invoke the visibilator, all your carriage returns will show up as [the pilcrow or paragraph sign, similar to the mirror image of "P"].

QUESTION. When my invisible characters were shown, I edited my memo, and now I have a mixture of spaces, tabs, linefeeds, and their visibilator equivalents in my memo. What a mess. How can I get my memo back to normal?

ANSWER. Just make sure that there is no text selection in your memo and then use the visibilator twice. That should fix your memo.

Case yes|no

This is just a handy shortcut to toggling the Ign[ore] Case check box in the Find'n'Replace dialog which is explained here where the Find command in EditView's Navigate menu is discussed.

In a nutshell, this controls whether all find and search operations are case sensitive.

Wrap yes|no

This is just a handy shortcut to toggling the Wrap check box in the Find'n'Replace dialog which is explained here where the Find command in EditView's Navigate menu is discussed.

In a nutshell, this controls whether all search and replace operations are going to stop once they reach the end of your memo, or else, they will go back to the start of your memo and continue what they are engaged in. The only exception is that "All R" [Replace All] command which stops at the end.

Stats on|off

This command toggles the statistics displayed in the title bar.

Buttons on|off

This command allows you to toggle EditView's buttonPanel on and off.

When it is off, that is, when you are in the full screen edit mode, then the text editing field is slightly larger which seems to please many pedit aficionados.

I personally love the buttonPanel and would never turn it off.

This selection is sticky in the sense that it survives visits to ListView and to other applications.

NOTE. If you happen to have an empty memo in a readOnlyCategory while turning the buttons on or off, then you will be transported to ListView which is the sensible thing to do since there is no point in ending up with a blank memo in a readOnlyCategory.

Phone Lookup

This command calls Palm's built-in Address Book application to lookup a phone number.

If there is some selected text in your memo and if there is a match, then the selected text will be replaced with the phone number.

If there is no selected text and there is a match, then the phone number is placed to the current cursor location.

If there is no match, the function displays the Address Book short list.

Preferences

This command brings up the pedit preferences dialog. Please see here for the details.

About pedit

This command is explained here.

EditView's Navigate Menu

Since menubar real-estate is a precious commodity, this menu appears as "Nav" in the menubar.

Visit Top

This command allows you to examine the beginning of your memo. The location of the cursor remains unchanged. If you want to move your cursor as well, then please use the Jump to command in EditView's Navigate menu.

Jump to

As of September 11, 2000, this has replaced the original Jump to command in EditView's Opt[ions] menu.

Jumper

It has been my experience that it is usually the sophisticated peditor [as opposed to "newbies"] who uses this command. Therefore, many of the jumper commands are quite sophisticated themselves in nature. If you are willing to invest a little extra time to get acquainted with them, they will provide for you an easy way to navigate within your memo very fast and very efficiently.

It may be a good idea to study carefully the description of the various jumper commands since not all of them operate in a completely self-evident fashion.

I also recommend that you study the Select [see EditView's Opt[ions] menu] and Jump to commands simultaneously since they share many features.

Please do not forget to read this either. It explains how to repeat the last jump.

The Repeat # field allows you to enter a non-negative integer which will be used as the number of times the selected command will be performed.

NOTE. Just to make your pedit experiences more pleasant, entering "r" always selects the number displayed in the Repeat # field. In addition, please don't hesitate to use the following shortcuts.

page up = up arrow = increases the number in the Repeat # field

page down = down arrow = decreases the number in the Repeat # field

For instance, if the Repeat # field contains the number "5", and you select the Word button, then your cursor will jump to the fifth word of your memo counting from the home position, that is, from top of your memo.

If the Forth w[ord] box [upper case "F"] is checked then, by definition, words are separated from each other by whitespaces only unlike in regular spoken languages where punctuation signs also separate words. For instance,if Forth rules, then this sentence contains ten words only.

"F" [upper case] = toggle the Forth w[ord] box

"O" [upper case "oh"] = check the Forth w[ord] box [a pScript friendly operation]

Looking at the pedit ... jumper screen, you can see three columns of six buttons each and another set of three buttons under them with labels bP%, P%, and fP%.

In each of the rows the button labels are very similar, except that the buttons in left column start with the letter "b" [backward], and in the right column they start with the letter "f" [forward].

In fact, typing the letter "b" once, puts you into a backward mode, whereas typing the same letter "b"again, takes you out of the backward mode and places you back to the default absolute mode.

Similarly, typing the letter "f" once, puts you into a forward mode, whereas typing the same letter "f" again, takes you out of the forward mode and places you back to the default absolute mode.

Another way of changing modes is by typing "b", "f", or "a" [absolute] in any order you wish.

The title bar of the pedit ... jumper screen always tells you which mode you are in.

NOTE. If you use your stylus to tap buttons on the screen then you don't need to be concerned about the above described backward, forward, and absolute modes.

The middle column allows you to jump to various cursor positions starting from the home position, that is, from top of your memo. This is what I define as a jump in absolute mode.

NOTE. The home position of your memo is always the beginning [top] of your memo and the end is the very end of it [bottom] with the exception of screenLine jumps when home and end refer to the top and bottom of the currently visible screen on your Palm.

The left column allows you to jump backward to various cursor positions starting from the current position of your cursor. This is what I define as a jump in backward mode.

The right column allows you to jump forward to various cursor positions starting from the current position of your cursor. This is what I define as a jump in forward mode.

NOTE. If there is a text selection in your memo, then, in the context of jumping, the current cursor position depends on the direction of your jump. If you jump backward, then I define the current cursor position as the beginning of your text selection, whereas otherwise the current cursor position is defined as the end of your text selection.

NOTE. As of September 25, 2000, the only exception to this rule is when you perform screenLine jumps. As soon as I figure out a meaningful implementation of screenLine jumps with text selections, I will update this rule as well.

EXAMPLE. For instance, if the Repeat # field contains the number "5", and you select the bWord button, then your cursor will jump backward to the fifth word of your memo counting from the current cursor position.

EXAMPLE. For instance, if the Repeat # field contains the number "5", and you select the fWord [no pun intended whatsoever] button, then your cursor will jump forward to the fifth word of your memo counting from the current cursor position.

NOTE. If you are an experienced peditor, then it is self-evident to you that the ESC key version of the above two examples are

ESC j 5 b w

and

ESC j 5 f w

respectively.

HOMEWORK. What should and will happen if you enter

ESC j 5 w

as an ESC key shortcut?

NOTE. When wanting to use the ESC key mechanism, please keep in mind that there is no need for an ESC key within the pedit ... jumper dialog since there is no text field in it accepting alphabetical input [see here].

Notation. In the following discussion and tables "#" stands for the number which you entered in the Repeat # field. If the Repeat # field is empty or contains the number "0", then, depending on the function of the selected button, you may get a warning dialog reminding you to enter a number into that field.

Now let us discuss the buttons themselves.

The three "Character" buttons allow you to jump backward [bChar] or forward [fChar] exactly "#" characters from your current cursor position, or to jump to the "#th" character [Character] counting from the top of your current memo.

ESC j NUMBER b c = jump the cursor backward by "NUMBER" characters relative to the current cursor position

ESC j NUMBER c = jump the cursor forward by "NUMBER" characters counting from the top of your memo

ESC j NUMBER f c = jump the cursor forward by "NUMBER" characters relative to the current cursor position

The three "Word" buttons allow you to jump backward [bWord] or forward [fWord] exactly "#" words from your current cursor position, or to jump to the "#th" word [Word] counting from the top of your current memo.

ESC j NUMBER b w = jump the cursor backward by "NUMBER" words relative to the current cursor position

ESC j NUMBER w = jump the cursor forward by "NUMBER" words counting from the top of your memo

ESC j NUMBER f w = jump the cursor forward by "NUMBER" words relative to the current cursor position

NOTE. Typing the number "NUMBER" above is optional. If you leave it out then its default value "1" is used as the "NUMBER".

The three "Sentence" buttons allow you to jump backward [bZent] or forward [fZent] exactly "#" sentences from your current cursor position, or to jump to the "#th" sentence [Zentence] counting from the top of your current memo.

ESC j NUMBER b z = jump the cursor backward by "NUMBER" sentences relative to the current cursor position

ESC j NUMBER z = jump the cursor forward by "NUMBER" sentences counting from the top of your memo

ESC j NUMBER f z = jump the cursor forward by "NUMBER" sentences relative to the current cursor position

NOTE. I am sure you know that "Sentence" is spelled as "Zentence" above because "z" is the activator letter.

NOTE. Typing the number "NUMBER" above is optional. If you leave it out then its default value "1" is used as the "NUMBER".

The three screenLine buttons are perhaps the trickiest components of my beloved pedit.

NOTE. If you don't yet know what a screenLine is, please read about it here before you continue.

If you are brave enough to explore, you will be amazed to find out that, in fact, these three buttons hide no less [and no more] than six buttons. Namely, each of the three is spilt into two buttons.

The reason is simple. Each screenLine has two ends, namely, a left end and a right one. Since the Palm screen real-estate is at a premium, I had to do a splitter-upper job to be able to accommodate jumping to both the right and left ends of a screenLine.

ESC j NUMBER b s = jump the cursor to the beginning of the screenLine which is by "NUMBER" screenLines backward relative to the current screenLine

ESC j NUMBER s = jump the cursor to the beginning of screenLine number "NUMBER" relative to the top of the current screen.

ESC j NUMBER f s = jump the cursor to the beginning of the screenLine which is by "NUMBER" screenLines forward relative to the current screenLine

NOTE. Typing the number "NUMBER" above is optional. If you leave it out then its default value "1" is used as the "NUMBER".

Identical commands allow you to jump to the "end" of screenLines except that you have to replace the lower cased "s" by the upper cased "S". Namely,

ESC j NUMBER b S = jump the cursor to the end of the screenLine which is by "NUMBER" screenLines backward relative to the current screenLine

ESC j NUMBER S = jump the cursor to the end of screenLine number "NUMBER" relative to the top of the current screen.

ESC j NUMBER f S = jump the cursor to the end of the screenLine which is by "NUMBER" screenLines forward relative to the current screenLine

NOTE. Typing the number "NUMBER" above is optional. If you leave it out then its default value "1" is used as the "NUMBER".

QUESTION. How come that if the cursor is at the beginning of a screenLine and the previous screenLine does not end with a linefeed [carriage return], and I want to move to the end of the same screenLine, then I end up at the end of the previous screenLine instead of the current one? There is a similar problem if I use a repeat number "#" different from "1".

ANSWER. The Palm OS does not differentiate between the beginning of a screenLine and the end of the previous screenLine if the previous screenLine does not end with a linefeed [carriage return] so that the word wrapping mechanism decided to break the visual display of the line. All peditors can verify this by turning on the stats in the title bar, and then by going to the beginning of a screenLine and entering a left arrow-character or a BACKSPACE Graffiti character. You will see that, if the previous screenLine did not end with a linefeed, then the stats remain unchanged, that is, the cursor position remained the same.

SOLUTION. Move your cursor to the right, and then do the jump.

The three "Line" buttons allow you to jump backward [bLine] or forward [fLine] exactly "#" lines from your current cursor position, or to jump to the "#th" line [LineFeed] counting from the top of your current memo.

ESC j NUMBER bl = jump the cursor backward by "NUMBER" lines relative to the current cursor position

ESC j NUMBER l = jump the cursor forward by "NUMBER" lines counting from the top of your memo

ESC j NUMBER f l = jump the cursor forward by "NUMBER" lines relative to the current cursor position

NOTE. Typing the number "NUMBER" above is optional. If you leave it out then its default value "1" is used as the "NUMBER".

NOTE. Please do not forget that lines and screenLines are not the same animals.

The three "Paragraph" buttons allow you to jump backward [bPar] or forward [fPar] exactly "#" paragraphs in your memo starting from your current cursor position, or to jump to the "#th" paragraph in your memo [Paragraph] counting from the top of your current memo.

NOTE. Please do not forget to check what paragraphs really are.

NOTE. If the repeat number "#" is equal to "0" and you jump backward [bPar], then you will end up at the beginning of the current paragraph. Similarly, if the repeat number "#" is equal to "0" and you jump forward [fPar], then you will end up at the end of the current paragraph.

NOTE. If the repeat number "#" is equal to "0" and you are not inside a paragraph, then jumping backward [bPar] or forward [fPar] is not allowed.

NOTE. If the repeat number "#" is positive and you jump backward [bPar], then you will end up at the end of the chosen paragraph. Similarly, if the repeat number "#" is positive and you jump forward [fPar] or you are in the absolute mode [Paragraph], then you will end up at the beginning of the chosen paragraph.

ESC j NUMBER b p = jump the cursor backward by "NUMBER" paragraphs relative to the current cursor position

ESC j NUMBER p = jump the cursor forward by "NUMBER" paragraphs counting from the top of your memo

ESC j NUMBER f p = jump the cursor forward by "NUMBER" paragraphs relative to the current cursor position

NOTE. Typing the number "NUMBER" above is optional. If you leave it out then its default value "1" is used as the "NUMBER".

The three "Percent" buttons allow you to jump backward [b%] or forward [f%] exactly "#" percent of the total number of characters in your memo starting from your current cursor position, or to jump to the "#th" percent of the total number of characters in your memo [%] counting from the top of your current memo.

ESC j NUMBER b % = jump the cursor backward by "NUMBER" percent relative to the current cursor position

ESC j NUMBER % = jump the cursor forward by "NUMBER" percent counting from the top of your memo

ESC j NUMBER f % = jump the cursor forward by "NUMBER" percent relative to the current cursor position

The Home and End buttons ["ESC j h" and "ESC j e"] move the cursor to the top and the bottom of your current memo, respectively.

The .Cncl [.Cancel] button ["ESC j ." - but why] aborts the jumper operation and takes you back to EditView.

The Gursor [Cursor] button ["ESC j g"] makes you jump directly to the current location of the cursor. This is especially useful when you visited another part of your [huge] memo, and you wish to get back to your current editing position.

The TopLeft button ["ESC j t"] jumps the cursor to the top left corner of the currently visible screen.

The Marker button ["ESC j m"] jumps the cursor to the marker location [see the Set Marker command in EditView's Navigate menu].

In this case the marker will move to the current cursor, and the cursor moves to the original location of the marker. In other words, the marker and the cursor exchange their coordinates.

NOTE. When jumping, the cursor always ends up where one jumps to. This is in contrast to the Visit Top and Visit Bottom commands in EditView's Navigate menu which only visit the corresponding locations without actually moving the cursor there.

NOTE. Here are three convenient shortcuts [a la emacs] which can be used directly from EditView.

ESC A = jump the cursor to the beginning of the current screenLine

ESC E = jump the cursor to the end of the current screenLine

ESC { = jump the cursor to the top of the currently visible screen

NOTE. Whenever it is feasible, the jumper functions work in context in the sense that the cursor shows up in the middle of the text field.

NOTE. Please keep in mind that the enumeration starts with "1". Hence, for instance, if you wish to jump the cursor to the beginning of the second line on the currently visible screen then you need to enter "2" into the Repeat # field. The corresponding keyboard command is "ESC j2bs".

NOTE. All the jumper commands are sticky in the sense that the last jumper command can be repeated by simply either doing a buttonShifted "J" job in EditView's buttonPanel, or by entering "ESC J" [upper case "J"]. Of course, once you quit your memo or magiPad, the last jump becomes history.

NOTE. If you are in the expertMode, then the pedit ... jumper dialog will not show up at all, although you can enter your commands as usual, including the "repeat" number which may have no more than five digits. On the other hand, if you are in the advancedMode, then an abbreviated version of the pedit ... jumper dialog appears in place of the original one which works exactly the same way as the full dialog. If you are in the globalMacroMode, then the pedit ... jumper dialog remains invisible. Enjoy...

The original version of "Jump to..."

As of September 11, 2000, this has been replaced by the brand new Jump to command in EditView's Navigate menu.

I kept the old version of "Jump to..." in this manual for two reason. First, there are many peditors who are somewhat slow in upgrading their pedits. Second, this gives a chance to see pedit in progress.

This command needs no explanation, except that the myriad fields can be rotated by entering SPACE or TAB, and, in addition, a la Windows style, they can also be accessed directly by entering the underlined letters.

Jumper

When jumping, the cursor always ends up where one jumps to. This is in contrast to the Visit Top and Visit Bottom commands in EditView's Navigate menu which only visit the corresponding locations without actually moving the cursor there.

NOTE. A handy shortcut is "ESC {" which places the cursor to the top of the currently visible screen.

The cursor button makes you jump directly to the current location of the cursor. This is especially useful when you visited another part of your [huge] memo, and you wish to get back to your current editing position.

Visit Bottom

This command allows you to examine the end of your memo. The location of the cursor remains unchanged. If you want to move your cursor as well, then please use the Jump to command in EditView's Navigate menu.

Find

This command is the same as the "F" button in EditView's buttonPanel.

Please go to here for more details.

NOTE. This command has expert && advanced modes.

Find More

This command is the same as the "G" button in EditView's buttonPanel.

Please go to here for more details.

Set Marker

Use this command to set the marker at the current cursor position.

If you have some text selected while you use this command then the marker is set to the beginning of your selected text.

Once a marker is set, you can always jump back to it from an arbitrary location via a tap on the "J" button in EditView's buttonPanel, and then selecting the Marker button, or simply by entering "ESC jm".

In this case the marker will move to the current cursor, and the cursor moves to the original location of the marker. In other words, the marker and the cursor exchange their coordinates.

Once a marker is set, you can always select text from the marker by tapping the "S" button in EditView's buttonPanel, and then selecting the Marker button, or simply by entering "ESC sm".

Please see here in the description of the Select command in EditView's Opt[ions] menu for more details about selecting text from the marker.

NOTE. If the size of text of your memo which is located in front of the marker or the character sitting at the marker change, then the marker is deselected automatically, and, therefore, it becomes history.

NOTE. If you are in the normalMode, then pedit will occasionally give you some visual feedback regarding the marker situation.

Visit Marker

If you have already set the marker, then use this command to visit it. It takes you to the marker, blinks it for a couple of fractions of a second, and then takes you back to your current cursor location.

NOTE. This command is different from jumping to the marker [see the Set Marker command in EditView's Navigate menu].

"OK" button

If you are in EditView [but not in magiPad] then it takes you to ListView.

If you are in magiPad then it takes you to EditView.

This command is especially handy when EditView's buttonPanel was removed via the Buttons on|off command in EditView's Opt[ions] menu.

For you convenience, if you are in EditView, then "ESC ENTER" also activates this command.

In addition, if your current memo is empty, then "ESC ." [period] takes you to ListView as well.

".C" button

This command allows you to quit magiPad and scriptPads, and to return to EditView without saving the contents of magiPad.

This command is the same as the ".C" button in EditView's buttonPanel which is not always visible.

This command is especially handy when EditView's buttonPanel was removed via the Buttons on|off command in EditView's Opt[ions] menu.

EditView's Pad Menu

magiPad in|out

This command is the same as the "M" button in EditView's buttonPanel, and it is described in details where magiPad is discussed.

When you are in magiPad, then this command acts like the "OK" button in EditView's Navigate menu.

scriptPad in|out

This command is described here.

When you are in scriptPad, then this command acts like the "OK" button in EditView's Navigate menu.

The upButtonSlided "M" button in EditView's buttonPanel is closely related to this command.

magiPad Switcher

This command allows you to switch between magiPads.

This command is the same as the "^" button in EditView's buttonPanel.

If you are in magiPad, then this command is the same as the upButtonSlided Qopy'n'Paste button in EditView's buttonPanel.

scriptPad Switcher

This command allows you to switch between scriptPads.

This command is the same as the upButtonSlided "^" button in EditView's buttonPanel.

If you are in scriptPad, then this command is the same as the upButtonSlided Qopy'n'Paste button in EditView's buttonPanel.

This button is under construction...

Previous Pad

This command allows you to jump quickly back and forth between the current pad and the last pad of the same type you visited before the current one.

This command is not operational in the memo editing mode of EditView.

Enable/Disable Pad Stats

This command allows to enable and disable the stats in magiPad and scriptPad.

As long as you have enabled the stats, the stats can be toggled via the Stats on|off command in EditView's Opt[ions] menu, or, even better, by tapping in the left 1/8th of the title bar [to the left from the small pixel visible just under the title bar]. Please see here for the details.

NOTE. Each magiPad and each scriptPad has its own stats preferences.

This command is not operational in the memo editing mode of EditView.

Name of Current Pad

This command announces the full name of the current pad which might be longer than what you see in the titlebar.

If you are in magiPad or scriptPad, then this command is the same as the rightButtonSlided Qopy'n'Paste button in EditView's buttonPanel.

This command is not operational in the memo editing mode of EditView.

Rename Current Pad

This command allows you to rename the current pad.

This command is not operational in the memo editing mode of EditView.

Qopy'n'Paste Selects on|off

This command allows you to control whether the Qopy'n'Paste command will also select the pasted text in your memo or else it will just place the cursor after the pasted text.

EditView's buttonPanel

EditViewButtons

The "U" Button

This command is the same as the Undo command in EditView's Edit menu.

The upButtonSlided "U" Button

This command is the same as the Insert Char command in EditView's Edit+ menu.

Just like the downButtonSlided "U" button, it allows to insert an arbitrary ASCII character into your text at the current cursor location [or replace the current text selection].

Please see here for more details.

The downButtonSlided "U" Button

This command is the same as the ASCII Table command in EditView's Edit+ menu.

Just like the upButtonSlided "U" button, it allows to insert an arbitrary ASCII character into your text at the current cursor location [or replace the current text selection].

Please see here for more details.

The "X" Button

This command is the same as the Cut command in EditView's Edit menu.

The upButtonSlided, downButtonSlided, and leftButtonSlided "X" Button

upButtonSliding this button or entering "ESC X" [upper case "X"] pops up the text mover dialog which allows you to move blocks of text around your memo. Please see here for more details.

This command is the same as the Move command in EditView's Edit menu.

NOTE. This command has expert && advanced modes.

downButtonSliding this button or entering "ESC Y" [upper case "Y"] pops up the text sorter dialog which allows you to sort blocks of text in your memo. Please see here for more details.

This command is the same as the Sort command in EditView's Edit menu.

leftButtonSliding this button is the same as the Restore Memo command in EditView's Record #1 menu.

The "C" Button

This command is the same as the Copy command in EditView's Edit menu.

The directionally buttonSlided "C" Button

This button can be leftButtonSlided, rightButtonSlided, and upButtonSlided resulting in three different but closely related commands which allow you to move characters around your memo. Please see here in the section about moving text for more details.

The "P" Button

This command is the same as the Paste command in EditView's Edit menu.

The buttonShifted "P" Button

If you have Stand Alone's Clipper installed, then a buttonShifted tap on the "P" button sends Clipper into action.

NOTE. If Clipper is installed then the "P" button is displayed in bold to remind you that Clipper is at your disposal.

I am pretty sure that fans of Silkyboard will like that Clipper and Silkyboard can co-exist inside pedit. If you use Silkyboard, then please un-check the Enable Clipper Menu in Clipper.

By the way, normally you paste with "P" which also gets invoked by "ESC p", so that it should be easy to remember "ESC P" which is yet another way of activating Clipper.

NOTE. A word of caution. Some peditors reported a few sporadic and unreproducible crashes when Clipper was installed.

The directionally buttonSlided "P" Button

This button can be leftButtonSlided, rightButtonSlided, and upButtonSlided resulting in three different but closely related commands which allow you to move paragraphs around your memo. Please see here in the section about moving text for more details.

The "S" Button

This command is the same as the Select command in EditView's Edit menu.

NOTE. This command has expert && advanced modes.

The buttonShifted "S" [aka "s"] Button

This command is explained where the Set Marker command in EditView's Navigate menu is discussed.

The directionally buttonSlided "S" Button

This button can be leftButtonSlided, rightButtonSlided, and upButtonSlided resulting in three different but closely related commands which allow you to move sentences around your memo. Please see here in the section about moving text for more details.

The "J" Button

This command is the same as the Jump to command in EditView's Navigate menu.

NOTE. This command has expert && advanced modes.

The buttonShifted "J" [aka "j"] Button

This command repeats the last jump. It is explained here, where the Jump to command in EditView's Navigate menu is discussed.

The "F" Button

This command is the same as the Find command in EditView's Navigate menu.

Please go to here for more details.

NOTE. This command has expert && advanced modes.

The "G" Button

This command is the same as the Find More command in EditView's Navigate menu.

Please go to here for more details.

The buttonSlided "G" Button

The upButtonSlided "G" button toggles the All Segs variable.

The downButtonSlided "G" button toggles the RegEx variable.

The "Q" Button

I use this command for testing, debugging, and other goodies. Programmers will find it useful too.

Among others, it tells you all the characteristics of the first character which is either in a selected text or is right after the cursor.

You can also find out the serial number of your Palm if it exists, information about the sister segments of your memo, and so forth.

Amazingly, not all Palms have a serial number. Some clones do not have one. I wonder why.

The upButtonSlided and downButtonSlided "Q" Button

upButtonSliding this button brings up the customizable pScriptButtons form.

On the other hand, downButtonSliding this button is the same as the Script Memo command in EditView's Record #1 menu.

Please see the section about pScripting pedit for details on this command.

The "H" Button

"H" stands for Help which is mostly context sensitive. This command is the same as the Help command in EditView's Edit menu.

Please note that EditView's instantHelp, that is, the "?" button is related to the H button.

The upButtonSlided "H" Button

This command is the same as the Encrypt/Decrypt Memo command in EditView's Record #2 menu.

The "OK" Button

This command is the same as the "OK" button command in EditView's Navigate menu.

It allows you to quit EditView and to go to ListView.

The upButtonSlided "OK" Button

This command is the same as the Go to Memo menu command in EditView's Record #1 Menu.

The "D" Button

If you are in the regular EditView and not in magiPad, then this command serves three functions.

First, this command allows you to change the category of your current memo [see EditView's Category Changer].

Second, it allows you to privatize your current memo Please see the Privatize Memo command in ListView's Record menu for further details.

Third, it allows you to delete your current memo. Please see the Delete Memo command in ListView's Record menu for further details.

If you are in magiPad, then this button is either non-functional or it allows you the exit without saving its contents. In the latter case, it is labeled as ".C" [cancel], and can be invoked via "ESC ." [period].

The upButtonSlided "D" Button

This command is the same as the Delete Memo command in EditView's Record #1 menu.

The "WC" Button

NOTE. If your memo is segmented then this command provides information about the entire memo, including its sister segments.

This command pops up the word count dialog and it requires almost no explanation except for the definition of what characters, words, and lines are.

Word Count

The definition of characters is obvious except that it also includes carriage returns which are called linefeeds in the Palm universe. For the technically inclined, chrLineFeed = ^J = 10 = 012 = 0x0A.

The definition of words is also more or less obvious, except that the total of the words up to the cursor or selection PLUS the selected words PLUS the words from the cursor or selection may add up to more than the total number of words since the cursor or selection may split words.

For word counting purposes, a word is defined as a group of characters not containing word separators. The latter are the space character, the horizontal and vertical tabs, the linefeed, the formfeed, and the carriage return characters. In other words, words are defined as Forth words. The reason for this choice is that word counting is a time consuming procedure, especially on huge memos such as Les Miserables, and, therefore, I decided to go the fastest way. Incidentally, Les Miserables, happens to contain not a single "specifically" Forth style word.

EXAMPLE. pedit;memo is one word even if you suspect that there is a typo and you meant pedit; memo which is two words.

The definition of lines is also obvious except that it is somewhat different from the common sense definition, since it only counts linefeeds [carriage returns]. Hence, for instance, a line may be counted as zero lines if it does not end with a linefeed.

More precisely, using the REGEXP terminolgy, a line is defined as "^.*$".

It is a common misconception among inexperienced Palm users that a line is what you see as a line on your Palm's screen. Please keep in mind that what you think is a line is, in fact, only a "virtual" line which depends on factors such as what font is used to display your memo and how wide the text field is. We call such objects screenLines.

It may be better, although not entirely correct, if you think of a line as a paragraph. In the "virtual" sense this is closer to the truth than the above described screenLines.

The above seem to be in accordance with the generally accepted rules such as the ones used by unix wc (GNU or not).

As opposed to lines, I define screenLines as the "virtual" lines which are displayed across the screen of your Palm handheld device.

NOTE. In a very real sense of the word, screenLines are nothing but a figment of your and your Palm's imagination. Therefore, in many respects they may behave in somewhat unexpected ways. Please don't blame your Palm or pedit for this. Take, for instance, your [but definitely not my] beloved MS Word, and play around with it by cutting and pasting various screenLines. You will see that once you move a screenLine, it may no longer remain a screenLine. This is natural, since screenLines are determined by the word wrapping mechanism, and they are not hard coded into your document.

Since I talked about lines and screenLines, this is the right place to define paragraphs as well.

First I need to define whiteLines. A whiteLine is a line consisting of space, horizontal tab, and vertical tab characters only.

More precisely, using the REGEXP terminolgy, a whiteLine is defined as "^[\space\htab\vtab]*$".

As opposed to lines, I define paragraphs as collection of lines which does not contain whiteLines and which start either at the beginning of your memo or after a whiteLine, and which ends either at the end of your memo or before a whiteLine.

NOTE. If your memo is segmented, then the character, word, and line count excludes the segment headers.

NOTE. If your memo has more than 1 million words and/or lines [carriage returns], then the information displayed is incorrect even though the count is accurate. If you ever create a memo with so many words and/or lines, please contact me, and then I will fix the display.

NOTE. If your memo is segmented, then you can always interrupt the count by tapping anywhere either on the screen, or the Graffiti input area of your Palm, or by typing ".", or by using the page up/down or 5-way up/down keys.

WARNING. If your pedit is at least of version 5.72, then you may skip reading this warning. However, if your pedit is older than 5.72, and if your Palm goes into self-induced sleep while you are in the midst of a count operation, then it also interrupts the count so that the displayed statistics will be incorrect. As a result of this behavior, if you are counting very long memos such as the Les Miserables which, incidentally, consists of 3,263,756 characters, 567,643 words, and 70761 lines, then you may need to extend the "auto-power-off" time of your Palm by installing LapTopHack. By the way, it took about 2 minutes and 47 seconds on my TRGPro with OS 3.5.1 to do the above counting job. If you have a Palm with an "exotic" language such as Chinese or Russian, then the same counting may last up to three times longer.

UPDATE. On September 10, 2001, due to a number of optimizations in pedit 5.72, the same counting job on the same TRGPro with the same OS took only 1 minute and 58 seconds.

UPDATE. On September 25, 2003, my Tungsten C did the same counting job in 15 seconds. Wow!

I hope that you will like the myriad pieces of information it yields.

This button was named in honor of the venerable unix command wc.

The buttonShifted "WC" [aka "wc"] Button

This button is the same as the "WC" button, except that it generates information on the currently displayed memo only whether or not it is segmented.

If your memo is segmented, then, unlike the "WC" command, it does not exclude the segment header from the count.

NOTE. There is no "ESC" key equivalent for this command.

The directionally buttonSlided "WC" Button

This button can be leftButtonSlided, rightButtonSlided, and upButtonSlided resulting in three different but closely related commands which allow you to move words around your memo. Please see here in the section about moving text for more details.

The "R" Button

With this command EditView's ruler can be toggled on and off.

QUESTION. What is the ruler?

ANSWER. The ruler is what 99% of the non-experts would call underline. It looks like underline, it smells like underline, but it ain't no underline!

If you think about, you realize that nothing is underlined. The ruler simply gives a visual reference where the lines are separated from each other.

The ruler state is preserved until it is changed again. Try it. I prefer no underline [oops, I meant ruler] whatsoever but please feel free to make your own choice.

Please note that magiPad has its own ruler settings independently of EditView.

pedit and ClearHack are 99% compatible [after yours truly spent days to figure out how to do it].

The reason that I say 99% and not 100% is that a HackMaster extension is a HackMaster extension, and, no matter what, there can be no guarantees that a HackMaster extension will work under all circumstances whatsoever, especially since operating systems keep changing and many HackMaster extensions fall behind in their maintenance schedules as their authors' priorities change. This should be understood as a general statement and not as a claim specifically about ClearHack.

The "L" Button

This command changes the case of the selected text to lower case.

If there is no text selected, then the case of the character right after the current cursor position is changed to lower case.

The buttonShifted "L" [aka "["] Button

This command is the same as the Shift Left command in EditView's Edit+ menu.

The directionally buttonSlided "L" Button

This button can be leftButtonSlided, rightButtonSlided, and upButtonSlided resulting in three different but closely related commands which allow you to move lines around your memo. Please see here in the section about moving text for more details.

The "T" Button

This command changes the case of the selected text to title case.

Of course, the process of Title Casing is subject to heated debate, and not even the greatest minds amongst us seem to agree what constitutes a properly title-cased expression. For instance, how should Select'n'Search be title-cased?

As a time saving shortcut, if there is no text selected, then "T" upper-cases the first letter of the word surrounding the current cursor.

The buttonShifted "T" [aka "[]"] Button

This command is the same as the Block Shift command in EditView's Edit+ menu [see also the Shift Left and Shift Right commands there].

The directionally buttonSlided "T" Button

This button can be upButtonSlided and downButtonSlided resulting in two different actions.

If upButtonSliding, then it does the opposite of the "T" button, that is, it deTitle Cases the current text selection or the word surrounding the current cursor.

The "K" Button

This command changes the case of the selected text to upper case.

If there is no text selected, then the case of the character right after the current cursor position is changed to upper case.

Just think of this command as capitalization, that is KAPITALIZATION.

The buttonShifted "K" [aka "]"] Button

This command is the same as the Shift Right command in EditView's Edit+ menu.

The directionally buttonSlided "K" Button

This button can be leftButtonSlided, rightButtonSlided, and upButtonSlided resulting in three different but closely related commands which allow you to move screenLines around your memo. Please see here in the section about moving text for more details.

The "?" Button

This command brings up instantHelp.

Please note that EditView's H button is related to the ? button.

The "M" Button

This is described in details where magiPad is discussed.

The upButtonSlided "M" Button

This command is described here.

This command is related to the scriptPad in|out command in EditView's Pad menu.

The "^" Button

This is the magiPad switcher button.

This button is the same as the magiPad Switcher command in EditView's Pad menu.

The upButtonSlided "^" Button

This is the scriptPad switcher button.

This button is the same as the scriptPad Switcher command in EditView's Pad menu.

The "N" Button

This button is the same as ListView's myNotes button.

NOTE. Even if you are in myNotes already, it makes sense to use this button repeatedly since it keeps creating new entries in it.

The "}" Button

This command is the quickSwitcher which is a complement to the Memo Switcher [">"] button in EditView's buttonPanel.

This command takes you instantaneously back to your most recently visited memo.

The quickSwitcher can also be activated by "ESC }".

NOTE. If you are in MagiPad or scriptPad, then "ESC }" takes you to the most recently visited pad of the same type.

The ">" Button

This button is the same as the Recent command in ListView's Navigate menu.

This command activates the Memo Switcher which allows you to jump back to a large number of previously visited memos.

The Memo Switcher can also be activated by "ESC 0" [zero] or by "ESC >" from EditView and by "ESC r" [lower case "r"] or by "ESC >" from ListView.

The Memo Switcher restores the state of your previous visits such as cursor position, text selection, scroll position, and so forth.

pedit keeps track of the last 25 memos you have visited since you last cleared pedit's history.

This command takes you to magiPad where all your recently visited files are listed in reverse chronological order.

The Memo Switcher

Tapping on any of the memo titles, pedit transfers you to the selected memo instantaneously.

HINT. Use the "F" button in EditView's buttonPanel to locate your memo and then enter a carriage return [the return key on your keyboard]. It's a no-brainer.

NOTE. The Memo Switcher is inactive if you are in [the genuine] magiPad, or if you have not yet visited another memo prior to entering the current memo.

WARNING. If you edited any of your memos with a program other than this particular pedit, whether on the Palm or on the DeskTop, it may be a good idea to clear both the history of recently visited memos and pedit's preferences. For further details, please see the Clear History and Clear Preferences commands in ListView's Options menu.

NOTE. In peditPro the Memo Switcher can toggle between p04 and p32 memos by tapping in the left 1/8th of the title bar [to the left from the small pixel visible just under the title bar]. This feature works only if the escape character is box is checked in the General Preference Panel.

The buttonShifted ">" [aka "$"] Button

The buttonShifted ">" button activates the segmentSwitcher which allows you to survey all the sister segments of your current memo, and to jump to either of them.

The segmentSwitcher can also be activated by "ESC $".

This command takes you to magiPad where all sister segments of your current memo are listed.

The segmentSwitcher

The first line tells you the total size of your combined segments. This number does not include the size of the individual header files.

The number in front of the title tells you the segment index of the memo segment.

An exclamation mark "!" instead of a colon ":" after the segment index and the sign "<=" at the end of one of the line refers to your current memo.

A number at the end of a line indicates that that segment was already visited, and the number itself tells you how recently it was visited, where "01" refers the most recently visited segment.

Tapping on any of the segment titles transfers you to the selected segment instantaneously.

HINT. Use the "F" button in EditView's buttonPanel to locate your memo and then enter a carriage return [the return key on your keyboard]. It's a no-brainer.

NOTE. The segmentSwitcher is inactive if you are in [the genuine] magiPad, or if your current memo is not segmented.

Please see Segmented Memos for further details.

The "»" or ">>" Button

This command activates the Launcher which allows you to jump fast to "pedit friendly" applications.

Such applications include but are not limited to Arranger, Clipper, HackMaster, HotPaw Basic, LispMe, Magic Text, Memo Pad, Memo PLUS, NoteTaker!, OnBoardC, pedit, pedit32, PocketC, Quartus, RsrcEdit, Safe, Secure Memo Pad, and StartFavorites.

This command takes you to magiPad where all "pedit friendly" applications are listed.

Tapping on any of the application names, pedit transfers you to the selected application instantaneously.

HINT. Use the "F" button in EditView's buttonPanel to locate your application and then enter a carriage return [the return key on your keyboard]. It's a no-brainer.

I point out that if I define an application as "pedit friendly", it does not necessarily imply that the developers of that particular application have displayed a friendly attitude towards pedit. Although in the great majority of cases Palm application developers were cooperative and helpful, there were a few instances when I received a cold shoulder while trying to clarify some issues.

I consider an application "pedit friendly", if it has anything to do with text editing or with programming on the Palm, and if peditors requested that it be added to the list.

I hope that the developers of the above mentioned applications will return the favor by providing a similar feature in their products.

The Launcher can also be activated by "ESC 1".

The buttonShifted "»" or ">>" [aka "«" or "<<"] Button

If you have pToolSet's pLaunchTool (and pLaunchEngine1) installed, then a buttonShifted tap on the "»" button pops it up.

How does one know if pLaunchTool is installed? It's elementary, my dear peditor, and probably you have already guessed it: "»" is displayed in bold.

Otherwise, that is, if "»" is not displayed in bold, then a buttonShifted tap on the "»" button activates the quickLauncher.

The quickLauncher takes you to your most recently visited pedit friendly application [if there is such an application already].

pLaunchTool can also be invoked by "ESC 2".

The quickLauncher can also be invoked by "ESC 3".

Another way of activating quickLauncher really fast is by tapping the upper left corner of the title bar in EditView [a 5*5 pixel area].

The ".C" Button

This command is the same as the ".C" button command in EditView's Navigate menu.

It allows you to quit magiPad and scriptPads, and to return to EditView without saving the contents of magiPad.

NOTE. You can only see this button if you are not set to save the contents of magiPad [please see magiPad for more details].

The "Qopy'n'Paste" Button

This command is described in details where magiPad is discussed.

The upButtonSlided "Qopy'n'Paste" Button

If you are in magiPad, then this command is the same as the magiPad Switcher command in EditView's Pad menu.

If you are in scriptPad, then this command is the same as the scriptPad Switcher command in EditView's Pad menu.

The rightButtonSlided "Qopy'n'Paste" Button

This command is the same as the Name of Current Pad command in EditView's Pad menu.

EditView's Category Changer

This command allows you to change the category of your current memo.

In addition, you can also edit [add, rename, and delete] the names of your categories.

pedit Memos and Text Files on the DeskTop (for "newbies")

By the time you get to this section, there is an excellent chance that you will know of several ways of moving your pedit memos to your DeskTop computer and vice versa [see, for instance here and here].

Nevertheless, I have the example of at least one aspiring peditor who could not figure it out from the manual, and, therefore, he put together a cookbook style approach to the task. The rest of this section is based on Doug Boulter's and Frank Hellwig's advice. I am sure that many "newbies" will be grateful to them.

If you want to move your pedit memo to the DeskTop and the explanation here was insufficient, then please follow these steps.

Step #1. Open your memo in your pedit in EditView Open the pull down Record #1 menu. Select the Export Memo command. A shortcut for the latter is either using "ESC e" or the Palm command stroke and "e".

Step #2. Make sure the second line from the top in the pedit export... dialog says Export from pedit[32] to doc.

Export to doc

If it says Export from pedit32 to pedit or Export from pedit to pedit32

,

Export to pedit

tap the doc push button in the lower right corner to get the correct screen.

NOTE. pedit remembers the previous state of this screen. Thus, if you do not ever export to the sister pedit, you will never see that option screen again unless you select it.

Step #3. If you want to delete your memo after you export it, check the delete memos after exporting box. Enter the name you want the DOC file to have. You do not need to give it a ".pdb" extension. For example, this file could be called "00test".

NOTE. For your convenience, pedit is smart enough to pick a proposed DOC file name. If you have a current text selection in your memo then it is used as the basis of a proposed name.

Step #4. Once you have done all this, tap the export memo + all its segments button.

Step #5. Do a HotSync job between your Palm and the DeskTop. On the DeskTop, look in the backup folder under your user name. You will see the file 00test.pdb.

NOTE. On the Macintosh, this backup folder is called "Backup", in Windows it may be at "C:\Palm\USER\Backup" where "USER" is your user name, and under unix or linux it is probably "~/???" [but who cares anyway, since, if you use unix or linux, then you will never need to read this "newbie" tutorial in the first place].

Step #6. Use your "doc <=> text" converter (not included with pedit) to convert this DOC file to an ASCII text file. You may then word process it to your heart's delight.

NOTE. Doug's favorite "doc <=> text" converter is DocInOut. I use MakeDoc. Please see here for more suggestions.

If you happen to have WordSmith on your Palm Powered handheld, then, as Frank Hellwig kindly pointed it out, there is an even easier way of exporting pedit memos directly to Microsoft Word.

Step #1. Open up your memo in pedit and select the Export Memo command from the Record #1 menu.

Step #2. Tap the doc push button in the lower right corner. Enter the the DOC file name. For example, you could call it "01test". Then click the export memo + all its segments button.

Step #3. Start up WordSmith, open up your exported memo, open the Details dialog, and check the "Sync" box.

Step #4. Do a HotSync job between your Palm and the DeskTop.

Step #5. Start Microsoft Word on your DeskTop and select the "Open..." command from the "WordSmith" menu [this menu was added by the WordSmith installer].

NOTE. After Steps #2 or #3, you can also use WordSmith to spell check the document and/or to add rich text formatting.

NOTE. This process (i) does not require any manipulation or copying of files at the filesystem level, that is, using Windows Explorer or invoking DeskTop filters, and (ii) it uses pedit for its strength at editing files and WordSmith for its seamless Microsoft Word integration.

If you want to move a text file from the DeskTop to pedit and the explanation here was insufficient, then please follow these steps.

Step #1. Using your "doc <=> text" converter, convert your ASCII text file to a Palm DOC file with a ".pdb" extension. Make sure that you remember the name of your .pdb file.

Step #2a. If you are a Windows user then from the DeskTop, select this ".pdb" file for installation. Click the install button, then click the add button to select the file. When you have added all the ".pdb" files you want, click "Done". If you are using DocInOut, you can skip this step by clicking the box that says "Install After" which will then perform this step automatically.

Step #2b. If you are a Macintosh, unix, or linux user then simply follow the usual Palm rules of installing ".pdb" files. I have not yet met a Macintosh, unix, or linux user who did not know how to do this. If you are one of those, then please let me know, and then I will provide detailed instructions.

Step #3. Perform a HotSync job. This will load the .pdb file to your Palm handheld.

Step #4. Open your pedit. Go to ListView.

ListView

A trick here is to choose the correct memo category (located in the upper right corner of the screen) into which you want the freshly loaded DOC file to go. That saves you the step of categorizing the new memo which you are about to import. Tap the Docs button in ListView's buttonPanel. A shortcut for the latter is either using "ESC d", "ESC i", or the Palm command stroke and "i". This tap takes you to magiPad and presents you with a list of DOC files which you can import to pedit.

Step #5. Tap the file you want to import from the list that comes up in magiPad. If the DOC file is writable, that is, it is not in the flash ROM, then decide whether you want to delete it after you have imported it to pedit. If yes, then check the delete doc file after importing box. Decide whether you want no segmenting if the doc file fits one memo. If yes, then check the no segmenting if fits one memo box. Then tap import this doc file button.

Step #6. Now your DOC file has been transformed to a memo, and you can put it in a memo category and/or [p]edit it to your heart's delight.

NOTE. Please read about segmented memos in general, and about segment headers in particular, if you are curious about those odd lines

A Segmented Memo

which appear at the beginning of your memo. If your memo consists of one single segment, then you can delete the segment header if you don't want it with no ill effects in pedit except that subsequent exportation back to DOC files will be much simpler if you leave it alone.

pScripting pedit, pToolSet, and LapTopHack (for soon-to-be "experts")

As of April 12, 2001, I started a new project which [eventually] will make most pedit operations fully pScriptable [scriptable]. As of May 21, 2001, LapTopHack joined the club and it started to share pedit's pScriptability. Subsequently, pToolSet became pScriptable as well. In case you have not fully understood the implications of this historic event, and since I am so proud of this, let me say it clear and loud...

As of May 21, 2001, all your Palm handheld devices became pScriptable.

NOTE. The word "pScript" and its variants are always spelled with lower case "p" and upper case "S". Here "p" stands for "palm" and not "paul" as some of you may mistakenly believe.

NOTE. If you are a LapTopHacker, then please forgive me that LapTopHack's manual will refer you here instead of giving a full blown description of all the delicate and intricate details. Since pScripting pedit and LapTopHack are essentially the same, this even seems natural to do. I will try to point out carefully all differences between the two. The same goes for pToolSet.

NOTE. peditLight is not pScriptable.

NOTE. pScripting requires at least Palm OS 3.1.

NOTE. pScripting LapTopHack requires that you have a pScriptable pedit installed on your Palm.

NOTE. pScripting pToolSet does not require that you have a any pedit installed on your Palm.

NOTE. Please make sure that you always have the latest pedit, pToolSet, and LapTopHack [see here] installed on your Palm. Even though they may be called "beta versions", thousands are using them, including me, without any [serious] problem. For all practical purposes, they are as safe as any "final" version is. You can get the up-to-date information regarding the version numbers from here.

NOTE. Unless you are an "expert" or want to be one [whatever that may mean], please STOP reading this section.

NOTE. In case you didn't stop reading this section but you are not yet an "expert", then please check out the here for Daniel Bergman's pScriptorial tutorials, and here for pScriptorial examples. In addition, please see here for archived versions of the tutorials and other material.

NOTE. Whether or not you are an "expert", you will greatly benefit from visiting peditors.com which was created by John Kershaw and is maintained by him and by a growing number of enthusiastic peditors.

Now that I got all "newbies" out of the way, let me get down to business, and let me start with a couple of examples.

NOTE. In what follows, pedit pScripting refers to pedit, pToolSet, and LapTopHack pScripting, and so forth.

NOTE. After you have familiarized yourself with the basics of pedit pScripting, please move on to learning the use of pMacros in pedit pScripts.

NOTE. It took less than a month for me to find out that the genie is out of the bottle for good. As many members of the peditors Forum such as Bill, Daniel, DirkS, JeffR, Jerry, JesseJ, JohnH, Jon, Norb, RayD, and StevenH, just to name a few, have already demonstrated over and over again, the opportunities presented by pedit pScripting are literally limitless. I am no longer in charge. One of the sad consequences of this is that I cannot and will not provide support for pScripting related peditorial inquiries very simply since so much can be done that one person can no longer be the source of all necessary information. Please join the peditors Forum, and please post your questions and/or contributions here.

NOTE. In the following examples, when you see expressions like "/0x04", enter them exactly as you see them, whereas, when you see "`" [backquote], replace it by your personal "ESC" character [see also this for generating pScriptorial "ESC" keys].

NOTE. Instead of "/0x04", you can also enter the ASCII character represented by "0x04".

NOTE. You can easily enter any ASCII character using the Insert Char and "ASCII Table" commands.

EXAMPLE. Put

"{date::/GZ`6`j5bw`X2wf`s3fw`s1bc`x`s3bw/xz}"

anywhere in scriptPad [without typing the quotation marks]. This is called a pScript. Here the word "date" just before the double colon "::" is called the pScriptName, and everything else between "::" and "}" is called the pScriptText.

Then go back to EditView, and place your cursor anywhere in your memo, or, alternatively, select any text. Next, activate your pScript and sit back to watch the screen of your Palm.

EXAMPLE. Try this pScript

"{message::/&mess@[@@I love my Palm@@]}"

pScript.

pScript Activation [see here for more details].

pScript entry

In addition, both in pedit and LapTopHack,

"page down" = "down arrow" = move the pScript entry dialog downward

"page up" = "up arrow" = move the pScript entry dialog upward

Please get a paper clip ready before trying the next example.

EXAMPLE. Put

"{forever::_`&forever:}"

anywhere in scriptPad, go back to EditView, place your cursor anywhere in your memo [or select any text], and activate your pScript.

Now do the same with

"{forever::_/GZ`&forever:/xz}"

Can you see the difference?

EXAMPLE. Put

"{left arrow::{/}/0x1Cpedit`s1bw`s1fc}"

anywhere in scriptPad, go back to EditView, place your cursor anywhere in your memo [or select any text], and activate your pScript. Then do the same with

"{left arrow::{/}/0x1Cpedit/GZ`s1bw`s1fc/xz}"

and observe the difference.

NOTE. "0x1C" stands for the left arrow.

Here are the [current] rules.