Home Explore Blog CI



neovim

9th chunk of `runtime/doc/gui.txt`
86c761f0f27dbbc3ffe9367c1fda4fe8c5dd336f7e4741a60000000100000fa9
 to: >

    :nmenu File.Next     :next^M
    :vmenu File.Next     ^C:next^M^\^G
    :imenu File.Next     ^\^O:next^M
    :cmenu File.Next     ^C:next^M^\^G
    :omenu File.Next     ^C:next^M^\^G

Careful: In Insert mode this only works for a SINGLE Normal mode command,
because of the CTRL-O.  If you have two or more commands, you will need to use
the ":imenu" command.  For inserting text in any mode, you can use the
expression register: >

    :amenu Insert.foobar   "='foobar'<CR>P

The special text <Cmd> begins a "command menu", it executes the command
directly without changing modes.  Where you might use ":...<CR>" you can
instead use "<Cmd>...<CR>".  See |<Cmd>| for more info.  Example: >
    anoremenu File.Next <Cmd>next<CR>

Note that <Esc> in Cmdline mode executes the command, like in a mapping.  This
is Vi compatible.  Use CTRL-C to quit Cmdline mode.

                *:nme* *:nmenu*  *:nnoreme* *:nnoremenu* *:nunme* *:nunmenu*
Menu commands starting with "n" work in Normal mode. |mapmode-n|

                *:ome* *:omenu*  *:onoreme* *:onoremenu* *:ounme* *:ounmenu*
Menu commands starting with "o" work in Operator-pending mode. |mapmode-o|

                *:vme* *:vmenu*  *:vnoreme* *:vnoremenu* *:vunme* *:vunmenu*
Menu commands starting with "v" work in Visual mode. |mapmode-v|

                *:xme* *:xmenu*  *:xnoreme* *:xnoremenu* *:xunme* *:xunmenu*
Menu commands starting with "x" work in Visual and Select mode. |mapmode-x|

                *:sme* *:smenu*  *:snoreme* *:snoremenu* *:sunme* *:sunmenu*
Menu commands starting with "s" work in Select mode. |mapmode-s|

                *:ime* *:imenu*  *:inoreme* *:inoremenu* *:iunme* *:iunmenu*
Menu commands starting with "i" work in Insert mode. |mapmode-i|

                *:cme* *:cmenu*  *:cnoreme* *:cnoremenu* *:cunme* *:cunmenu*
Menu commands starting with "c" work in Cmdline mode. |mapmode-c|

                *:tlm* *:tlmenu* *:tln*     *:tlnoremenu* *:tlu*   *:tlunmenu*
Menu commands starting with "tl" work in Terminal mode. |mapmode-t|

                                                *:menu-<silent>* *:menu-silent*
To define a menu which will not be echoed on the command line, add
"<silent>" as the first argument.  Example: >
        :menu <silent> Settings.Ignore\ case  :set ic<CR>
The ":set ic" will not be echoed when using this menu.  Messages from the
executed command are still given though.  To shut them up too, add a ":silent"
in the executed command: >
        :menu <silent> Search.Header :exe ":silent normal /Header\r"<CR>
"<silent>" may also appear just after "<script>".

                                                *:menu-<script>* *:menu-script*
The "to" part of the menu will be inspected for mappings.  If you don't want
this, use the ":noremenu" command (or the similar one for a specific mode).
If you do want to use script-local mappings, add "<script>" as the very first
argument to the ":menu" command or just after "<silent>".

                                                        *menu-priority*
You can give a priority to a menu.  Menus with a higher priority go more to
the right.  The priority is given as a number before the ":menu" command.
Example: >
        :80menu Buffer.next :bn<CR>

The default menus have these priorities: >
        File            10
        Edit            20
        Tools           40
        Syntax          50
        Buffers         60
        Window          70
        Help            9999
<
When no or zero priority is given, 500 is used.
The priority for the PopUp menu is not used.

You can use a priority higher than 9999, to make it go after the Help menu,
but that is non-standard and is discouraged.  The highest possible priority is
about 32000.  The lowest is 1.

                                                        *sub-menu-priority*
The same mechanism can be used to position a sub-menu.  The priority is then
given as a dot-separated list of priorities, before the menu name: >
        :menu 80.500 Buffer.next

Title: Menu Commands and Modes in Vim
Summary
This section details the usage of menu commands starting with specific letters to designate their functionality in different Vim modes such as Normal (n), Operator-pending (o), Visual (v), Select (s), Insert (i), Cmdline (c), and Terminal (tl). It also covers the use of "<silent>" to suppress echoing of commands and "<script>" to use script-local mappings. Furthermore, it explains the priority mechanism for menus, allowing control over their placement with higher priority menus appearing more to the right.