Nvim :help
pages, generated
from source
using the tree-sitter-vimdoc parser.
:autocmd UIEnter * let g:gui = filter(nvim_list_uis(),{k,v-> v.chan==v:event.chan})[0].rgb
{X}
{Y}
E466{X}
and {Y}
coordinates.
The coordinates should specify the position in pixels of the
top left corner of the window.
When the GUI window has not been opened yet, the values are
remembered until the window is opened. The position is
adjusted to make the window fit on the screen (if possible).
{width}
{height}
Set the window height to {width}
by {height}
characters.
Obsolete, use ":set lines=11 columns=22".
event position selection change action cursor window --------------------------------------------------------------------------- <LeftMouse> yes end yes <C-LeftMouse> yes end yes "CTRL-]" (2) <S-LeftMouse> yes no change yes "*" (2) <LeftDrag> yes start or extend (1) no <LeftRelease> yes start or extend (1) no <MiddleMouse> yes if not active no put <MiddleMouse> yes if active no yank and put <RightMouse> yes start or extend yes <A-RightMouse> yes start or extend blockw. yes <S-RightMouse> yes no change yes "#" (2) <C-RightMouse> no no change no "CTRL-T" <RightDrag> yes extend no <RightRelease> yes extend noInsert or Replace Mode:
event position selection change action cursor window --------------------------------------------------------------------------- <LeftMouse> yes (cannot be active) yes <C-LeftMouse> yes (cannot be active) yes "CTRL-O^]" (2) <S-LeftMouse> yes (cannot be active) yes "CTRL-O*" (2) <LeftDrag> yes start or extend (1) no like CTRL-O (1) <LeftRelease> yes start or extend (1) no like CTRL-O (1) <MiddleMouse> no (cannot be active) no put register <RightMouse> yes start or extend yes like CTRL-O <A-RightMouse> yes start or extend blockw. yes <S-RightMouse> yes (cannot be active) yes "CTRL-O#" (2) <C-RightMouse> no (cannot be active) no "CTRL-O CTRL-T"In a help window:
event position selection change action cursor window --------------------------------------------------------------------------- <2-LeftMouse> yes (cannot be active) no "^]" (jump to help tag)When 'mousemodel' is "popup", these are different:
event position selection change action cursor window --------------------------------------------------------------------------- <S-LeftMouse> yes start or extend (1) no <A-LeftMouse> yes start/extend blockw no <RightMouse> no popup menu noInsert or Replace Mode:
event position selection change action cursor window --------------------------------------------------------------------------- <S-LeftMouse> yes start or extend (1) no like CTRL-O (1) <A-LeftMouse> yes start/extend blockw no <RightMouse> no popup menu no(1) only if mouse pointer moved since press (2) only if click is in same buffer
click select --------------------------------- double word or % match triple line quadruple rectangular blockException: In a :help window, double-click jumps to help for the word that is clicked on.
:map <2-LeftMouse> :exe "tag " .. expand("<cword>")<CR>
Dragging the mouse with a double-click (button-down, button-up, button-down
and then drag) will result in whole words to be selected. This continues
until the button is released, at which point the selection is per character
again.
CTRL-O
in Insert mode. Select mode is used when the
'selectmode' option contains "mouse".
code mouse button normal action --------------------------------------------------------------------------- <LeftMouse> left pressed set cursor position <LeftDrag> left moved while pressed extend selection <LeftRelease> left released set selection end <MiddleMouse> middle pressed paste text at cursor position <MiddleDrag> middle moved while pressed - <MiddleRelease> middle released - <RightMouse> right pressed extend selection <RightDrag> right moved while pressed extend selection <RightRelease> right released set selection end <X1Mouse> X1 button pressed - <X1Drag> X1 moved while pressed - <X1Release> X1 button release - <X2Mouse> X2 button pressed - <X2Drag> X2 moved while pressed - <X2Release> X2 button release -The X1 and X2 buttons refer to the extra buttons found on some mice (e.g. the right thumb).
:noremap <MiddleMouse> <LeftMouse><MiddleMouse>
Paste at the position of the middle mouse button click (otherwise the paste
would be done at the cursor position).:noremap <LeftRelease> <LeftRelease>y
Immediately yank the selection, when using Visual mode.
:map <X1Mouse> <C-O>
:map <X2Mouse> <C-I>
Map the X1 and X2 buttons to go forwards and backwards in the jump list, see
CTRL-O and CTRL-I.
:noremap <LeftMouse> <RightMouse>
:noremap <LeftDrag> <RightDrag>
:noremap <LeftRelease> <RightRelease>
:noremap <RightMouse> <LeftMouse>
:noremap <RightDrag> <LeftDrag>
:noremap <RightRelease> <LeftRelease>
:noremap g<LeftMouse> <C-RightMouse>
:noremap g<RightMouse> <C-LeftMouse>
:noremap! <LeftMouse> <RightMouse>
:noremap! <LeftDrag> <RightDrag>
:noremap! <LeftRelease> <RightRelease>
:noremap! <RightMouse> <LeftMouse>
:noremap! <RightDrag> <LeftDrag>
:noremap! <RightRelease> <LeftRelease>
:set guioptions=mlrb
):
+------------------------------+ ` | File Edit Help | <- Menu bar (m) ` +-+--------------------------+-+ ` |^| |^| ` |#| Text area. |#| ` | | | | ` |v|__________________________|v| ` Normal status line -> |-+ File.c 5,2 +-| ` between Vim windows |^|""""""""""""""""""""""""""|^| ` | | | | ` | | Another file buffer. | | ` | | | | ` |#| |#| ` Left scrollbar (l) -> |#| |#| <- Right ` |#| |#| scrollbar (r) ` | | | | ` |v| |v| ` +-+--------------------------+-+ ` | |< #### >| | <- Bottom ` +-+--------------------------+-+ scrollbar (b) `
:let did_install_default_menus = 1If you also want to avoid the Syntax menu:
:let did_install_syntax_menu = 1The first item in the Syntax menu can be used to show all available filetypes in the menu (which can take a bit of time to load). If you want to have all filetypes already present at startup, add:
:let do_syntax_sel_menu = 1Note that the menu.vim is sourced when
:syntax on
or :filetype on
is
executed or after your .vimrc file is sourced. This means that the 'encoding'
option and the language of messages (:language messages
) must be set before
that (if you want to change them).
:source $VIMRUNTIME/menu.vim :set wildmenu :set cpo-=< :set wcm=<C-Z> :map <F4> :emenu <C-Z>Pressing
<F4>
will start the menu. You can now use the cursor keys to select
a menu entry. Hit <Enter>
to execute it. Hit <Esc>
if you want to cancel.
:menu File.Save :w<CR> :inoremenu File.Save <C-O>:w<CR> :menu Edit.Big\ Changes.Delete\ All\ Spaces :%s/[ ^I]//g<CR>This last one will create a new item in the menu bar called "Edit", holding the mouse button down on this will pop up a menu containing the item "Big Changes", which is a sub-menu containing the item "Delete All Spaces", which when selected, performs the operation.
<Tab>
Separates the menu name from right-aligned text. This can be used to
show the equivalent typed command. The text "<Tab>" can be used here for
convenience. If you are using a real tab, don't forget to put a backslash
before it!
:amenu &File.&Open<Tab>:e :browse e<CR>[typed literally] With the shortcut "F" (while keeping the
<Alt>
key pressed), and then "O",
this menu can be used. The second part is shown as "Open :e". The ":e"
is right aligned, and the "O" is underlined, to indicate it is the shortcut.
mode inserted appended Normal nothing nothing Visual <C-C> <C-\><C-G> Insert <C-\><C-O> Cmdline <C-C> <C-\><C-G> Op-pending <C-C> <C-\><C-G>
:amenu File.Next :next^Mis equal 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^\^GCareful: 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>PThe 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.
: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>".
: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
:menu 80.500 Buffer.next :bn<CR>Giving the sub-menu priority is only needed when the item is not to be put in a normal position. For example, to put a sub-menu before the other items:
:menu 80.100 Buffer.first :brew<CR>Or to put a sub-menu after the other items, and further items with default priority will be put before it:
:menu 80.900 Buffer.last :blast<CR>When a number is missing, the default value 500 will be used:
:menu .900 myMenu.test :echo "text"<CR>The menu priority is only used when creating a new menu. When it already existed, e.g., in another mode, the priority will not change. Thus, the priority only needs to be given the first time a menu is used. An exception is the PopUp menu. There is a separate menu for each mode (Normal, Op-pending, Visual, Insert, Cmdline). The order in each of these menus can be different. This is different from menu-bar menus, which have the same order for all modes. NOTE: sub-menu priorities currently don't work for all versions of the GUI.
:menu Example.item1 :do something :menu Example.-Sep- : :menu Example.item2 :do something differentNote that the separator also requires a rhs. It doesn't matter what it is, because the item will never be selected. Use a single colon to keep it simple.
:amenu icon=/usr/local/pixmaps/foo_icon.xpm ToolBar.Foo :echo "Foo"<CR> :amenu icon=FooIcon ToolBar.Foo :echo "Foo"<CR>
:amenu icon=foo 1.42 ToolBar.Foo :echo "42!"<CR>
:amenu ToolBar.BuiltIn22 :call SearchNext("back")<CR>
:amenu ToolBar.Hello :echo "hello"<CR>
:amenu ToolBar.Open :e
nr Name Normal action 00 New open new window 01 Open browse for file to open in current window 02 Save write buffer to file 03 Undo undo last change 04 Redo redo last undone change 05 Cut delete selected text to clipboard 06 Copy copy selected text to clipboard 07 Paste paste text from clipboard 08 Print print current buffer 09 Help open a buffer on Vim's builtin help 10 Find start a search command 11 SaveAll write all modified buffers to file 12 SaveSesn write session file for current situation 13 NewSesn write new session file 14 LoadSesn load session file 15 RunScript browse for file to run as a Vim script 16 Replace prompt for substitute command 17 WinClose close current window 18 WinMax make current window use many lines 19 WinMin make current window use few lines 20 WinSplit split current window 21 Shell start a shell 22 FindPrev search again, backward 23 FindNext search again, forward 24 FindHelp prompt for word to search help for 25 Make run make and jump to first error 26 TagJump jump to tag under the cursor 27 RunCtags build tags for files in current directory 28 WinVSplit split current window vertically 29 WinMaxWidth make current window use many columns 30 WinMinWidth make current window use few columns
anoremenu PopUp.Go\ to\ definition <Cmd>lua vim.lsp.buf.definition()<CR>
amenu PopUp.Open\ in\ web\ browser gx
anoremenu PopUp.Inspect <Cmd>Inspect<CR>
anoremenu PopUp.-1- <Nop>
vnoremenu PopUp.Cut "+x
vnoremenu PopUp.Copy "+y
anoremenu PopUp.Paste "+gP
vnoremenu PopUp.Paste "+P
vnoremenu PopUp.Delete "_x
nnoremenu PopUp.Select\ All ggVG
vnoremenu PopUp.Select\ All gg0oG$
inoremenu PopUp.Select\ All <C-Home><C-O>VG
anoremenu PopUp.-2- <Nop>
anoremenu PopUp.How-to\ disable\ mouse <Cmd>help disable-mouse<CR>
<Tab>
while entering a menu name after a menu command may
be used to complete the name of the menu item.
{menu}
Execute {menu}
from the command line.
The default is to execute the Normal mode
menu. If a range is specified, it executes
the Visual mode menu.
If used from <c-o>
, it executes the
insert-mode menu Eg::emenu File.Exit:[range]em[enu]
{mode}
{menu}
Like above, but execute the menu for {mode}
:
:unmenu! Edit.PasteThis will remove the Paste item from the Edit menu for Insert and Command-line modes.
<Tab>
while entering a menu name after an umenu command
may be used to complete the name of the menu item for the appropriate mode.
:unmenu * " remove all menus in Normal and visual mode :unmenu! * " remove all menus in Insert and Command-line mode :aunmenu * " remove all menus in all modes, except for Terminal " mode :tlunmenu * " remove all menus in Terminal modeIf you want to get rid of the menu bar:
:set guioptions-=mDisabling Menus
:menu disable &File.&Open\.\.\. :amenu enable * :amenu disable &Tools.*The command applies to the modes as used with all menu commands. Note that characters like "&" need to be included for translated names to be found. When the argument is "*", all menus are affected. Otherwise the given menu name and all existing submenus below it are affected.
:nmenu Words.Add\ Var wb"zye:menu! Words.<C-R>z <C-R>z<CR> :nmenu Words.Remove\ Var wb"zye:unmenu! Words.<C-R>z<CR> :vmenu Words.Add\ Var "zy:menu! Words.<C-R>z <C-R>z <CR> :vmenu Words.Remove\ Var "zy:unmenu! Words.<C-R>z<CR> :imenu Words.Add\ Var <Esc>wb"zye:menu! Words.<C-R>z <C-R>z<CR>a :imenu Words.Remove\ Var <Esc>wb"zye:unmenu! Words.<C-R>z<CR>a(the rhs is in <> notation, you can copy/paste this text to try out the mappings, or put these lines in your gvimrc; "<C-R>" is
CTRL-R
, "<CR>" is
the <CR>
key. <>)
{menupath}
{rhs}
Define a tip for a menu or tool. (only in
X11 and Win32 GUI)
{menupath}
Remove a tip for a menu or tool.
(only in X11 and Win32 GUI)
:amenu MyMenu.Hello :echo "Hello"<CR>The tip is defined like this:
:tmenu MyMenu.Hello Displays a greeting.And delete it with:
:tunmenu MyMenu.HelloTooltips are currently only supported for the X11 and Win32 GUI. However, they should appear for the other gui platforms in the not too distant future.
{name}
Popup the menu {name}
. The menu named must
have at least one subentry, but need not
appear on the menu-bar (see hidden-menus).
{name}
Like above, but use the position of the mouse
pointer instead of the cursor.
:popup Filewill make the "File" menu (if there is one) appear at the text cursor (mouse pointer if ! was used).
:amenu ]Toolbar.Make :make<CR> :popup ]ToolbarThis creates a popup menu that doesn't exist on the main menu-bar.