summaryrefslogtreecommitdiff
path: root/mnv/runtime/doc/helphelp.txt
diff options
context:
space:
mode:
authorMehmet Samet Duman <yongdohyun@projecttick.org>2026-04-04 12:41:27 +0300
committerMehmet Samet Duman <yongdohyun@projecttick.org>2026-04-04 12:41:27 +0300
commit4f2d36194b4f299aa7509d815c07121039ea833b (patch)
treef3ded014bad3a4c76ff6a22b8726ebaab68c3d13 /mnv/runtime/doc/helphelp.txt
parent5b578e70c314723a3cde5c9bfc2be0bf1dadc93b (diff)
downloadProject-Tick-4f2d36194b4f299aa7509d815c07121039ea833b.tar.gz
Project-Tick-4f2d36194b4f299aa7509d815c07121039ea833b.zip
NOISSUE change uvim folder name to mnv
Signed-off-by: Mehmet Samet Duman <yongdohyun@projecttick.org>
Diffstat (limited to 'mnv/runtime/doc/helphelp.txt')
-rw-r--r--mnv/runtime/doc/helphelp.txt535
1 files changed, 535 insertions, 0 deletions
diff --git a/mnv/runtime/doc/helphelp.txt b/mnv/runtime/doc/helphelp.txt
new file mode 100644
index 0000000000..df162c421d
--- /dev/null
+++ b/mnv/runtime/doc/helphelp.txt
@@ -0,0 +1,535 @@
+*helphelp.txt* For MNV version 10.0. Last change: 2026 Feb 14
+
+
+ MNV REFERENCE MANUAL by Bram Moolenaar
+
+
+Help on help files *helphelp*
+
+1. Help commands |online-help|
+2. Translated help files |help-translated|
+3. Writing help files |help-writing|
+
+==============================================================================
+1. Help commands *online-help*
+
+ *help* *<Help>* *:h* *:help* *<F1>* *i_<F1>* *i_<Help>*
+<Help> or
+:h[elp] Open a window and display the help file in read-only
+ mode. If there is a help window open already, use
+ that one. Otherwise, if the current window uses the
+ full width of the screen or is at least 80 characters
+ wide, the help window will appear just above the
+ current window. Otherwise the new window is put at
+ the very top.
+ The 'helplang' option is used to select a language, if
+ the main help file is available in several languages.
+
+ *{subject}* *E149* *E661*
+:h[elp] {subject} Like ":help", additionally jump to the tag {subject}.
+ For example: >
+ :help options
+
+< {subject} can include wildcards such as "*", "?" and
+ "[a-z]":
+ :help z? jump to help for any "z" command
+ :help z. jump to the help for "z."
+ But when a tag exists it is taken literally:
+ :help :? jump to help for ":?"
+
+ If there is no full match for the pattern, or there
+ are several matches, the "best" match will be used.
+ A sophisticated algorithm is used to decide which
+ match is better than another one. These items are
+ considered in the computation:
+ - A match with same case is much better than a match
+ with different case.
+ - A match that starts after a non-alphanumeric
+ character is better than a match in the middle of a
+ word.
+ - A match at or near the beginning of the tag is
+ better than a match further on.
+ - The more alphanumeric characters match, the better.
+ - The shorter the length of the match, the better.
+
+ The 'helplang' option is used to select a language, if
+ the {subject} is available in several languages.
+ To find a tag in a specific language, append "@ab",
+ where "ab" is the two-letter language code. See
+ |help-translated|.
+
+ Note that the longer the {subject} you give, the less
+ matches will be found. You can get an idea how this
+ all works by using commandline completion (type CTRL-D
+ after ":help subject" |c_CTRL-D|).
+ If there are several matches, you can have them listed
+ by hitting CTRL-D. Example: >
+ :help cont<Ctrl-D>
+
+< Instead of typing ":help CTRL-V" to search for help
+ for CTRL-V you can type: >
+ :help ^V
+< This also works together with other characters, for
+ example to find help for CTRL-V in Insert mode: >
+ :help i^V
+<
+ It is also possible to first do ":help" and then
+ use ":tag {pattern}" in the help window. The
+ ":tnext" command can then be used to jump to other
+ matches, "tselect" to list matches and choose one. >
+ :help index
+ :tselect /.*mode
+
+< When there is no argument you will see matches for
+ "help", to avoid listing all possible matches (that
+ would be very slow).
+ The number of matches displayed is limited to 300.
+
+ The `:help` command can be followed by '|' and another
+ command, but you don't need to escape the '|' inside a
+ help command. So these both work: >
+ :help |
+ :help k| only
+< Note that a space before the '|' is seen as part of
+ the ":help" argument.
+ You can also use <NL> or <CR> to separate the help
+ command from a following command. You need to type
+ CTRL-V first to insert the <NL> or <CR>. Example: >
+ :help so<C-V><CR>only
+
+:h[elp]! [subject] Like ":help", but in non-English help files prefer to
+ find a tag in a file with the same language as the
+ current file. See |help-translated|.
+
+ *:helpc* *:helpclose*
+:helpc[lose] Close one help window, if there is one.
+ MNV will try to restore the window layout (including
+ cursor position) to the same layout it was before
+ opening the help window initially. This might cause
+ triggering several autocommands.
+
+ *:helpg* *:helpgrep*
+:helpg[rep] {pattern}[@xx]
+ Search all help text files and make a list of lines
+ in which {pattern} matches. Jumps to the first match.
+ The optional [@xx] specifies that only matches in the
+ "xx" language are to be found.
+ You can navigate through the matches with the
+ |quickfix| commands, e.g., |:cnext| to jump to the
+ next one. Or use |:cwindow| to get the list of
+ matches in the quickfix window.
+ {pattern} is used as a MNV regexp |pattern|.
+ 'ignorecase' is not used, add "\c" to ignore case.
+ Example for case sensitive search: >
+ :helpgrep Uganda
+< Example for case ignoring search: >
+ :helpgrep uganda\c
+< Example for searching in French help: >
+ :helpgrep backspace@fr
+< The pattern does not support line breaks, it must
+ match within one line. You can use |:grep| instead,
+ but then you need to get the list of help files in a
+ complicated way.
+ Cannot be followed by another command, everything is
+ used as part of the pattern. But you can use
+ |:execute| when needed.
+ Compressed help files will not be searched (Fedora
+ compresses the help files).
+
+ *:lh* *:lhelpgrep*
+:lh[elpgrep] {pattern}[@xx]
+ Same as ":helpgrep", except the location list is used
+ instead of the quickfix list. If the help window is
+ already opened, then the location list for that window
+ is used. Otherwise, a new help window is opened and
+ the location list for that window is set. The
+ location list for the current window is not changed
+ then.
+
+ *:exu* *:exusage*
+:exu[sage] Show help on Ex commands. Added to simulate the Nvi
+ command.
+
+ *:viu* *:viusage*
+:viu[sage] Show help on Normal mode commands. Added to simulate
+ the Nvi command.
+
+When no argument is given to |:help| the file given with the 'helpfile' option
+will be opened. Otherwise the specified tag is searched for in all "doc/tags"
+files in the directories specified in the 'runtimepath' option.
+
+The initial height of the help window can be set with the 'helpheight' option
+(default 20).
+
+If you want to open help on {subject} in the current window, the helpcurwin
+optional package can be used. See |package-helpcurwin|.
+
+ *help-buffer-options*
+When the help buffer is created, several local options are set to make sure
+the help text is displayed as it was intended:
+ 'iskeyword' nearly all ASCII chars except ' ', '*', '"' and '|'
+ 'foldmethod' "manual"
+ 'tabstop' 8
+ 'arabic' off
+ 'binary' off
+ 'buflisted' off
+ 'cursorbind' off
+ 'diff' off
+ 'foldenable' off
+ 'list' off
+ 'modifiable' off
+ 'number' off
+ 'relativenumber' off
+ 'rightleft' off
+ 'scrollbind' off
+ 'spell' off
+
+Jump to specific subjects by using tags. This can be done in two ways:
+- Use the "CTRL-]" command while standing on the name of a command or option.
+ This only works when the tag is a keyword. "<C-Leftmouse>" and
+ "g<LeftMouse>" work just like "CTRL-]".
+- use the ":ta {subject}" command. This also works with non-keyword
+ characters.
+
+Use CTRL-T or CTRL-O to jump back.
+Use ":q" to close the help window.
+
+If there are several matches for an item you are looking for, this is how you
+can jump to each one of them:
+1. Open a help window
+2. Use the ":tag" command with a slash prepended to the tag. E.g.: >
+ :tag /min
+3. Use ":tnext" to jump to the next matching tag.
+
+It is possible to add help files for plugins and other items. You don't need
+to change the distributed help files for that. See |add-local-help|.
+
+To write a local help file, see |write-local-help|.
+
+Note that the title lines from the local help files are automagically added to
+the "LOCAL ADDITIONS" section in the "help.txt" help file |local-additions|.
+This is done when viewing the file in MNV, the file itself is not changed. It
+is done by going through all help files and obtaining the first line of each
+file. The files in $MNVRUNTIME/doc are skipped.
+
+ *help-xterm-window*
+If you want to have the help in another xterm window, you could use this
+command: >
+ :!xterm -e mnv +help &
+<
+
+ *:helpfind* *:helpf*
+:helpf[ind] Like |:help|, but use a dialog to enter the argument.
+ Only for backwards compatibility. It now executes the
+ ToolBar.FindHelp menu entry instead of using a builtin
+ dialog. {only when compiled with |+GUI_GTK|}
+
+ *:helpt* *:helptags*
+ *E150* *E151* *E152* *E153* *E154* *E670*
+:helpt[ags] [++t] {dir}
+ Generate the help tags file(s) for directory {dir}.
+ When {dir} is ALL then all "doc" directories in
+ 'runtimepath' will be used.
+
+ All "*.txt" and "*.??x" files in the directory and
+ sub-directories are scanned for a help tag definition
+ in between stars. The "*.??x" files are for
+ translated docs, they generate the "tags-??" file, see
+ |help-translated|. The generated tags files are
+ sorted.
+ When there are duplicates an error message is given.
+ An existing tags file is silently overwritten.
+
+ The optional "++t" argument forces adding the
+ "help-tags" tag. This is also done when the {dir} is
+ equal to $MNVRUNTIME/doc.
+
+ To rebuild the help tags in the runtime directory
+ (requires write permission there): >
+ :helptags $MNVRUNTIME/doc
+<
+ *:HelpToc* *help-TOC* *help-toc-install* *package-helptoc*
+
+If you want to access an interactive table of contents, from any position in
+the file, you can use the helptoc plugin. Load the plugin with: >mnv
+
+ packadd helptoc
+<
+ *HelpToc-mappings*
+Then you can use the `:HelpToc` command to open a popup menu.
+The latter supports the following normal commands: >
+
+ key | effect
+ ----+---------------------------------------------------------
+ c | select nearest entry from cursor position in main buffer
+ g | select first entry
+ G | select last entry
+ H | collapse one level
+ j | select next entry
+ J | same as j, and jump to corresponding line in main buffer
+ k | select previous entry
+ K | same as k, and jump to corresponding line in main buffer
+ L | expand one level
+ p | print current entry on command-line
+
+ P | same as p but automatically, whenever selection changes
+ | press multiple times to toggle feature on/off
+
+ q | quit menu
+ s | split window, and jump to selected entry
+ z | redraw menu with current entry at center
+ + | increase width of popup menu
+ - | decrease width of popup menu
+ ? | show/hide a help window
+ / | search for pattern
+
+ <C-D> | scroll down half a page
+ <C-U> | scroll up half a page
+ <PageUp> | scroll down a whole page
+ <PageDown> | scroll up a whole page
+ <Home> | select first entry
+ <End> | select last entry
+
+The plugin can also provide a table of contents in buffers of the following
+filetypes: asciidoc, html, man, markdown, tex, mnv, and xhtml. In addition
+it also provide a table of contents for a terminal buffer, which produces
+entries that are the past executed shell commands. To find those, by default,
+the following pattern is used: >
+
+ ^\w\+@\w\+:\f\+\$\s
+
+This is meant to match a default bash prompt. If it doesn't match your
+prompt, you can change the regex with the `shell_prompt` key from the
+`g:helptoc` dictionary variable: >
+
+ let g:helptoc = {'shell_prompt': 'regex matching your shell prompt'}
+
+Tip: After inserting a pattern to look for with the `/` command, if you press
+<Esc> instead of <CR>, you can then get more context for each remaining entry
+by pressing `J` or `K`.
+
+Refer to |helptoc.txt| for more details about helptoc, particularly about
+using it with filetypes other than help, and configuring its options.
+Note: You need to `packadd helptoc` before you can jump to |helptoc.txt|.
+
+==============================================================================
+2. Translated help files *help-translated*
+
+It is possible to add translated help files, next to the original English help
+files. MNV will search for all help in "doc" directories in 'runtimepath'.
+This is only available when compiled with the |+multi_lang| feature.
+
+At this moment translations are available for:
+ Chinese - multiple authors
+ French - translated by David Blanchet
+ Italian - translated by Antonio Colombo
+ Japanese - multiple authors
+ Polish - translated by Mikolaj Machowski
+ Russian - translated by Vassily Ragosin
+ Swedish - translated by Daniel Nylander
+See the MNV website to find them: http://www.mnv.org/translations.php
+
+A set of translated help files consists of these files:
+
+ help.abx
+ howto.abx
+ ...
+ tags-ab
+
+"ab" is the two-letter language code. Thus for Italian the names are:
+
+ help.itx
+ howto.itx
+ ...
+ tags-it
+
+The 'helplang' option can be set to the preferred language(s). The default is
+set according to the environment. MNV will first try to find a matching tag
+in the preferred language(s). English is used when it cannot be found.
+
+To find a tag in a specific language, append "@ab" to a tag, where "ab" is the
+two-letter language code. Example: >
+ :he user-manual@it
+ :he user-manual@en
+The first one finds the Italian user manual, even when 'helplang' is empty.
+The second one finds the English user manual, even when 'helplang' is set to
+"it".
+
+When using command-line completion for the ":help" command, the "@en"
+extension is only shown when a tag exists for multiple languages. When the
+tag only exists for English "@en" is omitted. When the first candidate has an
+"@ab" extension and it matches the first language in 'helplang' "@ab" is also
+omitted.
+
+When using |CTRL-]| or ":help!" in a non-English help file MNV will try to
+find the tag in the same language. If not found then 'helplang' will be used
+to select a language.
+
+Help files must use latin1 or utf-8 encoding. MNV assumes the encoding is
+utf-8 when finding non-ASCII characters in the first line. Thus you must
+translate the header with "For MNV version".
+
+The same encoding must be used for the help files of one language in one
+directory. You can use a different encoding for different languages and use
+a different encoding for help files of the same language but in a different
+directory.
+
+Hints for translators:
+- Do not translate the tags. This makes it possible to use 'helplang' to
+ specify the preferred language. You may add new tags in your language.
+- When you do not translate a part of a file, add tags to the English version,
+ using the "tag@en" notation.
+- Make a package with all the files and the tags file available for download.
+ Users can drop it in one of the "doc" directories and start use it.
+ Report to the development team, so they can add a link on www.mnv.org.
+- Use the |:helptags| command to generate the tags files. It will find all
+ languages in the specified directory.
+
+==============================================================================
+3. Writing help files *help-writing*
+
+For ease of use, a MNV help file for a plugin should follow the format of the
+standard MNV help files, except for the first line. If you are writing a new
+help file it's best to copy one of the existing files and use it as a
+template.
+
+MNV help files generally use 2 spaces after a sentence (since they are written
+using a fixed-width font and that was the preferred style in the 70s/80s),
+like what is described here: https://english.stackexchange.com/a/2602
+
+The first line in a help file should have the following format:
+
+*plugin_name.txt* {short description of the plugin}
+
+The first field is a help tag where ":help plugin_name" will jump to. The
+remainder of the line, after a Tab, describes the plugin purpose in a short
+way. This will show up in the "LOCAL ADDITIONS" section of the main help
+file. Check there that it shows up properly: |local-additions|.
+
+If you want to add a version number or last modification date, put it in the
+second line, right aligned.
+
+At the bottom of the help file, place a MNV modeline to set the 'textwidth'
+and 'tabstop' options and the 'filetype' to "help". Never set a global option
+in such a modeline, that can have undesired consequences.
+
+
+STYLE
+
+If your MNV has 'modeline' enabled, MNV should follow the preferred style
+automatically when editing built-in help files.
+
+MNV help files should be formatted for a 'textwidth' of 78 characters (with
+'conceal' enabled), so they look good in a typical 80 x 24 terminal window;
+use `:set colorcolumn=+0` as a visual guide.
+
+Use two spaces between the final dot of a sentence of the first letter of the
+next sentence. Like this.
+
+Use tab characters for aligning content, with a 'tabstop' setting of 8.
+This also helps reduce the file size.
+
+Always use |:retab| after you have finished editing. Don't blindly use
+|:retab!|, always review what will be changed to avoid unwanted changes.
+
+
+TAGS
+
+To define a help tag, place the name between asterisks ("*tag-name*"). The
+tag-name should be different from all the MNV help tag names and ideally
+should begin with the name of the MNV plugin. The tag name is usually right
+aligned on a line.
+
+When referring to an existing help tag and to create a hot-link, place the
+name between two bars (|) eg. |help-writing|.
+
+When referring to a MNV command and to create a hot-link, place the
+name between two backticks, eg. inside `:filetype`. You will see this is
+highlighted as a command, like a code block (see below).
+
+When referring to a MNV option in the help file, place the option name between
+two single quotes, eg. 'statusline'
+
+
+HIGHLIGHTING
+
+To define a column heading, use a tilde character at the end of the line.
+This will highlight the column heading in a different color. E.g.
+
+Column heading~
+
+To separate sections in a help file, place a series of '=' characters in a
+line starting from the first column. The section separator line is
+highlighted differently.
+
+To quote a block of ex-commands verbatim, place a greater than (>) character
+at the end of the line before the block and a less than (<) character as the
+first non-blank on a line following the block. Any line starting in column 1
+also implicitly stops the block of ex-commands before it. E.g. >
+
+ function Example_Func()
+ echo "Example"
+ endfunction
+<
+To enable syntax highlighting for a block of code, place a language name
+annotation (e.g. "mnv") after a greater than (>) character. E.g. >mnv
+
+ function Example_Func()
+ echo "Example"
+ endfunction
+<
+ *g:help_example_languages*
+By default, help files only support MNV script highlighting. If you need
+syntax highlighting for other languages, add to your |mnvrc|: >
+ :let g:help_example_languages = #{
+ \ mnv: "mnv", mnv9: "mnv", bash: "sh" }
+The key represents the annotation marker name, and the value is the 'syntax'
+name.
+
+Note: If you do not include "mnv" in "g:help_example_languages", its syntax
+highlighting will not be enabled. If you set "g:help_example_languages" to an
+empty value, syntax highlighting for embedded languages will be disabled.
+
+Further note: Including arbitrary syntax languages into help files may not
+always work perfectly, if the included 'syntax' script does not account for
+such an import.
+ *help-notation*
+The following are highlighted differently in a MNV help file:
+ - a special key name expressed either in <> notation as in <PageDown>, or
+ as a Ctrl character as in CTRL-X
+ - anything between {braces}, e.g. {lhs} and {rhs}
+
+The word "Note", "Notes" and similar automagically receive distinctive
+highlighting. So do these:
+ *Todo something to do
+ *Error something wrong
+
+You can find the details in $MNVRUNTIME/syntax/help.mnv
+
+
+FILETYPE COMPLETION *ft-help-omni*
+
+To get completion for help tags when writing a tag reference, you can use the
+|i_CTRL-X_CTRL-O| command.
+
+
+GENDER NEUTRAL LANGUAGE
+ *gender-neutral* *inclusion*
+MNV is for everybody, no matter race, gender or anything. For new or updated
+help text, gender neutral language is recommended. Some of the help text is
+many years old and there is no need to change it. We do not make any
+assumptions about the gender of the user, no matter how the text is phrased.
+The goal is that the reader understands how MNV works, the exact wording is
+secondary.
+
+Many online technical style guides include sections about gender neutral
+language. Here are a few: >
+
+ https://developers.google.com/style/pronouns
+ https://techwhirl.com/gender-neutral-technical-writing/
+ https://www.skillsyouneed.com/write/gender-neutral-language.html
+ https://ualr.edu/writingcenter/avoid-sexist-language/
+<
+Note: gender neutral language does not require using singular "they".
+
+ mnv:tw=78:ts=8:noet:ft=help:norl: