Nvim :help
页面,从 生成 于 来源 使用 tree-sitter-vimdoc 解析器。
:autocmd UIEnter * let g:gui = filter(nvim_list_uis(),{k,v-> v.chan==v:event.chan})[0].rgb
{X}
{Y}
E466{X}
和 {Y}
坐标处。坐标应指定窗口左上角的像素位置。当 GUI 窗口尚未打开时,这些值将被记住,直到窗口打开。该位置将进行调整,以使窗口适合屏幕(如果可能)。{width}
{height}
将窗口高度设置为 {width}
x {height}
字符。已过时,请使用“:set lines=11 columns=22”。: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 = 1如果您还想避免加载语法菜单
:let did_install_syntax_menu = 1语法菜单中的第一个项目可用于在菜单中显示所有可用的文件类型(这可能需要一些时间来加载)。如果您希望在启动时已存在所有文件类型,请添加
:let do_syntax_sel_menu = 1请注意,menu.vim 在执行
:syntax on
或 :filetype on
或在您的 .vimrc 文件被源代码化后被源代码化。这意味着必须在此之前设置 'encoding' 选项和消息语言(:language messages
)(如果您想更改它们)。:source $VIMRUNTIME/menu.vim :set wildmenu :set cpo-=< :set wcm=<C-Z> :map <F4> :emenu <C-Z>按
<F4>
将启动菜单。您现在可以使用光标键选择菜单条目。按 <Enter>
执行它。如果您要取消,请按 <Esc>
。:menu File.Save :w<CR> :inoremenu File.Save <C-O>:w<CR> :menu Edit.Big\ Changes.Delete\ All\ Spaces :%s/[ ^I]//g<CR>最后一个将创建一个名为“Edit”的菜单栏新项目,按住此项目上的鼠标按钮将弹出一个菜单,其中包含项目“Big Changes”,该项目是一个子菜单,包含项目“Delete All Spaces”,该项目在选中时会执行该操作。
<Tab>
将菜单名称与右对齐文本分隔。这可用于显示等效的键入命令。文本“<Tab>”可在此处用于方便起见。如果您使用的是真正的制表符,请不要忘记在它前面加上反斜杠!示例:amenu &File.&Open<Tab>:e :browse e<CR>[按字面意思键入] 使用快捷键“F”(同时按住
<Alt>
键),然后是“O”,可以使用此菜单。第二部分显示为“Open :e”。“:e”右对齐,“O”带下划线,表示它是快捷键。<C-C>
<C-\>
<C-G>
插入 <C-\>
<C-O>
命令行 <C-C>
<C-\>
<C-G>
操作待定 <C-C>
<C-\>
<C-G>
:amenu File.Next :next^M等于
: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注意:在插入模式下,由于
CTRL-O
的存在,这仅适用于单个普通模式命令。如果有多个命令,则需要使用 ":imenu" 命令。要将文本插入任何模式,可以使用表达式寄存器。:amenu Insert.foobar "='foobar'<CR>P特殊文本
<Cmd>
开始一个“命令菜单”,它直接执行命令而不改变模式。在您可能使用 ":...<CR>" 的地方,您可以改为使用 "<Cmd>...<CR>"。有关更多信息,请参见 <Cmd>。示例anoremenu File.Next <Cmd>next<CR>请注意,在命令行模式下,
<Esc>
会执行命令,就像在映射中一样。这与 Vi 兼容。使用 CTRL-C
退出命令行模式。:menu <silent> Settings.Ignore\ case :set ic<CR>使用此菜单时,":set ic" 不会回显。但是,执行命令所产生的消息仍然会显示。要同时屏蔽这些消息,请在执行的命令中添加 ":silent"。
:menu <silent> Search.Header :exe ":silent normal /Header\r"<CR>"<silent>" 也可能出现在 "<script>" 之后。
:80menu Buffer.next :bn<CR>默认菜单的优先级如下:文件 10 编辑 20 工具 40 语法 50 缓冲区 60 窗口 70 帮助 9999
:menu 80.500 Buffer.next :bn<CR>只有当项目不位于正常位置时,才需要指定子菜单优先级。例如,要将子菜单放在其他项目之前
:menu 80.100 Buffer.first :brew<CR>或将子菜单放在其他项目之后,并且具有默认优先级的其他项目将放在子菜单之前
:menu 80.900 Buffer.last :blast<CR>当数字缺失时,将使用默认值 500
:menu .900 myMenu.test :echo "text"<CR>菜单优先级仅在创建新菜单时使用。如果菜单已经存在,例如在另一个模式中,则优先级不会改变。因此,只需要在第一次使用菜单时指定优先级。弹出菜单是一个例外。每个模式(普通、操作待定、可视、插入、命令行)都有一个单独的菜单。这些菜单中的每个菜单的顺序可能不同。这与菜单栏菜单不同,菜单栏菜单在所有模式下具有相同的顺序。注意:子菜单优先级目前不适用于所有版本的 GUI。
:menu Example.item1 :do something :menu Example.-Sep- : :menu Example.item2 :do something different请注意,分隔符也需要一个 rhs。它是什么并不重要,因为该项目永远不会被选中。使用单个冒号来保持简单。
: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>2) 一个名为 'BuiltIn##' 的项目,其中 ## 是一个数字,被视为 Vim 中可用的内置位图的第 ## 个。目前有 31 个,编号从 0 到 30,涵盖了最常见的编辑操作 builtin-tools.
:amenu ToolBar.BuiltIn22 :call SearchNext("back")<CR>3) 具有另一个名称的项目首先将在 'runtimepath' 中的 "bitmaps" 目录中进行搜索。如果找到,则位图文件将用作工具栏按钮图像。请注意,确切的文件名是特定于操作系统的:例如,在 Win32 下,命令
:amenu ToolBar.Hello :echo "hello"<CR>
:amenu ToolBar.Open :e
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>
可以用来完成菜单项的名称。{menu}
从命令行执行 {menu}
。 默认情况下,执行正常模式菜单。 如果指定了范围,则执行可视模式菜单。 如果从 <c-o>
中使用,则执行插入模式菜单。 例如:emenu File.Exit:[range]em[enu]
{mode}
{menu}
与上面类似,但执行 {mode}
的菜单:'n': :nmenu 正常模式 'v': :vmenu 可视模式 's': :smenu 选择模式 'o': :omenu 操作待定模式 't': :tlmenu 终端模式 'i': :imenu 插入模式 'c': :cmenu 命令行模式<Tab>
可以用来完成相应模式下菜单项的名称。: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 mode如果您想摆脱菜单栏
:set guioptions-=m禁用菜单
:menu disable &File.&Open\.\.\. :amenu enable * :amenu disable &Tools.*该命令适用于所有菜单命令中使用的模式。 请注意,"&" 等字符需要包含在内才能找到翻译后的名称。 当参数为 "*" 时,所有菜单都会受到影响。 否则,给定的菜单名称及其下面的所有现有子菜单都会受到影响。
: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(rhs 以 <> 符号表示,您可以复制/粘贴此文本以尝试映射,或将这些行放到您的 gvimrc 中;"<C-R>" 为
CTRL-R
,"<CR>" 为 <CR>
键。 <>){menupath}
{rhs}
为菜单或工具定义提示。(仅在 X11 和 Win32 GUI 中){menupath}
删除菜单或工具的提示。(仅在 X11 和 Win32 GUI 中):amenu MyMenu.Hello :echo "Hello"<CR>提示定义如下
:tmenu MyMenu.Hello Displays a greeting.并使用以下命令删除它
:tunmenu MyMenu.Hello工具提示目前仅在 X11 和 Win32 GUI 中受支持。 但是,它们应该在不久的将来出现在其他 gui 平台上。
{name}
与上面类似,但使用鼠标指针的位置而不是光标。:popup File将使 "文件" 菜单(如果有)出现在文本光标处(如果使用了 "!",则出现在鼠标指针处)。
:amenu ]Toolbar.Make :make<CR> :popup ]Toolbar这将创建一个不存在于主菜单栏上的弹出菜单。