[snipped some text there]
Post by Simon Clubley1) HELP content is broken up into small fragments instead of bigger
page sized chunks and there can be sets of multiple fragments each
indexed under a different parent fragment.
This in itself makes things more cumbersome because it means you have
to navigate through the HELP content for a topic instead of just being
able to read it on just one page. While messy, this in itself would
not be too bad if you could use (say) the arrow keys and tab to move
around, but the fact you actually have to list the sub-topics and then
start typing the name you are looking for makes things very very
cumbersome indeed.
This complaint is true for both the man type documentation as well as
the more detailed stuff such as the C compiler documentation.
2) Once you are at a topic in the HELP tree, you can't search for
keywords within sub-topics if you have an idea of what you are looking
for but are not sure of the exact topic name.
This complaint is true for both the man type documentation and the more
detailed stuff.
3) Because VMS does not have it's own version of the info online reader,
the layered product groups have started pushing more conceptual stuff
such as the C manuals into HELP. Because of the above problems, it's
absolutely useless trying to read any significant quantity of that more
conceptual stuff.
[End of list.]
One of the reasons why I keep mentioning info is because it shows
you an example of how you _can_ navigate around an hierarchy of
topics and sub-topics in a somewhat efficient way if HELP is to
be kept in a big tree of small disconnected fragments.
[snipped some text there]
Hi Simon,
there was a similar discussion about HELP here on COV in December or
January of 2013. It appears what bothers many people about HELP's
hierarchical topic interface is the lack of a direct keyword search
capability, and also not having the option to freely scroll through and
between topic boundaries. I decided to enhance OpenVMS Help with a
utility (SHELP.COM) written in about 736 lines of DCL. I tried to
leverage inherent OpenVMS functionality rather than attempt a clone of
an unix/linux based tool. It's not an ideal answer of what most people
want, but I think it is still a useful improvement for anyone wanting to
lookup something relatively fast without leaving the command line
terminal session.
The procedure may be downloaded as a zip file (SHELP.ZIP) here...
https://drive.google.com/open?id=0ByHeiJKSqZgjbzMzU3lBbGlqaWc
Here is a much better explanation taken from the procedure's own
built-in help.
--------------------------------------------
Procedure: SHELP.COM (Search HELP)
Author: Keith Cayemberg
Created: January 13th, 2013
Modified: June 24st, 2017
Version: 1.3
Description: Search any OpenVMS HELP Library in SYS$HELP for keywords
and provide the full help command to the text found.
Procedure: This procedure will extract the text of any OpenVMS HELP
Library (.HLB) into a text file (HELPFILE). Then it builds
a HELP topics path list with their corresponding line
numbers, as another file (DEXFILE), These first 2 steps
are performed only when the HELPFILE or DEXFILE are not
existing or too old. Finally this procedure searches the
full text HELPFILE for the keyword(s) you provided as the
first parameter, and looks-up the DEXFILE topics path
listing. This procedure then displays the help topic paths,
and also by default the corresponding lines of help text
where the keyword(s) were found (preceded by a "»" sign).
Parameters:
P1 The keyword(s) to search within the OpenVMS Help Library.
(required) You can search for one exact string containing multiple
keywords by enclosing them in double quotes. If your
search string starts with a "/" then the search string
must be in double quotes. To find multiple keywords
anywhere on the same line, then separate the keywords with
commas, but with no spaces or quotes.
Qualifiers:
/MATch= Enter OR, AND, NOR, NAND, etc. as described in
(optional) $ HELP SEARCH /MATCH to change whether or not all,
one, or none of the keywords are to be on the same line
of help text to cause a search match.
The default is /MATCH=OR.
/LIBrary= Use to search an alternative OpenVMS help library.
(optional) The default value is the standard OpenVMS HELP Library.
To find other available help libraries use the command...
$ dir sys$help:*.hlb
/WINdow= (optional) Enter a number from 1 to 9 to set the number
(optional) of lines of output around each matched help line. The
default is /WINDOW = 1
/BRIef This qualifier will cause only the matched help topic
(optional) paths to be displayed. The matching lines of text
within the topics are not displayed.
/VERbose This qualifier will show more processing detail,
(optional) especially when building the DEXFILE.
Hints: Due to long HELP paths in the output, it is a good idea to set
your terminal width to at least 132 characters, before using
this procedure. If the first parameter is "SHELP" or "?" then
this help text will be paged to the screen.
The recommended foreign command definition for this procedure:
$ SHELP :== @mylogical:[mydir]SHELP.COM
Two foreign commands are defined for each of the first 20
matched topics. The symbols are shelpath_%% and shelptxt_%%
(where %% = 01 upto 20).
$ show symbol shelp_hlp_* ! help command to open topic
$ show symbol shelp_tpu_* ! tpu command for help text
Note: If either the HELPFILE or DEXFILE can't be found in the
SYS$HELP or SYS$SCRATCH directories, or they are too old,
then they will be recreated in the SYS$SCRATCH directory.
Neither file needs refreshing unless the specific OpenVMS
HELP Library (.HLB) has a new version or changed text. The
system manager can choose to copy both files to the
SYS$HELP directory to make them available to all users.
$ dir sys$help:SHELP*.*
Directory SYS$SYSROOT:[SYSHLP]
SHELP_HELPLIB.DEX;1 SHELP_HELPLIB.HLP;1
Total of 2 files.
$ dir sys$scratch:SHELP*.*
Directory $mydisk:[mydir]
SHELP_DBG$HELP.DEX;1 SHELP_DBG$HELP.HLP;1
SHELP_UNZIP.DEX;1 SHELP_UNZIP.HLP;1
Total of 4 files.
Examples:
$ shelp skonetski
$ shelp hoffman,skonetski
$ shelp "galaxy shared memory"
$ shelp decwindows,interface /match=AND /window=2
$ shelp decwindows,interface /mat=AND/library=DBG$HELP
$ shelp conference /lib=PHONEHELP /brief
$ shelp SMCI_FLAGS /win=4/verbose
$ shelp "/FULL_DUPLEX"
HELP LANCP SET DEVICE Qualifiers !(1)
» /FULL_DUPLEX
» /FULL_DUPLEX
Found 2 matches within 1 topics.
$ show symbol shelp_*
SHELP_HLP_01 == "HELP LANCP SET DEVICE Qualifiers"
SHELP_TPU_01 == "EDIT/TPU SYS$HELP:SHELP_HELPLIB.HLP -
/READ/START=225307"
-------------------------------
I have also tested the procedure with .HLB files installed at other
directories besides SYS$HELP. The procedure should work in these
cases as well.
It is recommended that a system manager copy at least the HELPFILE and
DEXFILE for the primary HELPLIB.HLB to SYS$HELP, (remembering to set
file protections to W:RE) so that users don't need to generate their own
local HELPFILE and DEXFILE for the large help library.
I submit SHELP.COM to the public domain with no guarantees expressed or
implied.
Cheers!
Keith Cayemberg