diff options
| author | Mehmet Samet Duman <yongdohyun@projecttick.org> | 2026-04-04 12:41:27 +0300 |
|---|---|---|
| committer | Mehmet Samet Duman <yongdohyun@projecttick.org> | 2026-04-04 12:41:27 +0300 |
| commit | 4f2d36194b4f299aa7509d815c07121039ea833b (patch) | |
| tree | f3ded014bad3a4c76ff6a22b8726ebaab68c3d13 /mnv/runtime/doc/helphelp.txt | |
| parent | 5b578e70c314723a3cde5c9bfc2be0bf1dadc93b (diff) | |
| download | Project-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.txt | 535 |
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: |
