Nvim :help
页面,生成 自 源 使用 tree-sitter-vimdoc 解析器。
<Del>
在输入数字时:删除最后一个数字。 注意: 如果您想使用 <BS>
来执行此操作,请将此映射添加到您的 vimrc 中:map CTRL-V <BS> CTRL-V <Del>
<R>
82, Hex 52, Octal 122<M-x>
形式。例如<p>
<|~> <M-~>
254, Hex fe, Octal 376<p>
是一个特殊字符)<Nul>
字符在内部存储为 <NL>
,但会显示为CTRL-K
o : 以插入 ö。{count}
[flags] 打印 {count}
行,从 [range] 开始(默认当前行 cmdline-ranges)。有关 [flags],请参见 ex-flags。#!vim -S let mylogbook='$HOME/logbook.md' exe $':e {mylogbook}' $ put ='## ' .. strftime('%d. %b %Y') norm! o
{range}
中的最后一行号。例如,这将打印当前行号:.=:norm[al][!]
{commands}
:norm :normal 执行普通模式命令 {commands}
。这使得执行在命令行中键入的普通模式命令成为可能。 {commands}
像键入一样执行。对于撤消,所有命令都会一起撤消。遇到错误时,执行将停止。{commands}
应是一个完整的命令。如果 {commands}
未完成命令,则最后一个命令将被中止,就像键入了 <Esc>
或 <C-C>
一样。这意味着插入命令必须完成(要启动插入模式,请参见 :startinsert)。冒号命令也必须完成。您不能使用“gQ”启动 Ex 模式。{commands}
不能以空格开头。在它之前放一个计数为 1(一个),“1 ”是一个空格。:exe "normal \<c-w>\<c-w>"
{commands}
:normal-range{range}
中的每一行执行普通模式命令 {commands}
。在执行 {commands}
之前,光标将定位在每一行的第一列中。否则,它与没有范围的 ":normal" 命令相同。{cmd}
] 在新的 终端模拟器 缓冲区中,在非交互式 'shell' 中运行 {cmd}
。如果没有 {cmd}
,则启动交互式 'shell'。<C-\>
<C-N>
退出终端模式。 CTRL-\_CTRL-N。键入 <C-\>
<C-O>
执行单个普通模式命令 t_CTRL-\_CTRL-Oautocmd TermOpen * startinsert
:!Write-Output "1`n2" | & "C:\Windows\System32\sort.exe" /r
{cmd}
中,任何“!”都会被替换为上一个外部命令(参见 'cpoptions'),除非它被反斜杠转义。例如:":!ls" 之后跟 ":!echo ! \! \\!" 会执行 "echo ls ! \!"。{cmd}
中,任何“|”都会传递给 shell,你不能用它来追加 Vim 命令。参见 :bar。{cmd}
中,任何“%”都会扩展为当前文件名。任何“#”都会扩展为备用文件名。特殊字符不会被转义,请使用引号或 shellescape():!ls "%" :exe "!ls " .. shellescape(expand("%"))
{cmd}
,除非换行符之前有反斜杠。之后的内容会被解释为另一个 : 命令。:silent !{cmd}
{file}
将消息重定向到文件 {file}
。命令输出的消息会被写入该文件,直到重定向结束。消息也会继续显示在屏幕上。如果包含 [!],则会覆盖现有文件。如果省略 [!] 并且 {file}
存在,则此命令会失败。{file}
将消息重定向到文件 {file}
。如果 {file}
已经存在,则追加。{a-z}
。如果寄存器名称为大写 {A-Z}
,则追加到寄存器的内容。寄存器名称后面的 ">" 可选。:redi[r] @{a-z}>> 将消息追加到寄存器 {a-z}
。{var}
将消息重定向到变量。如果变量不存在,则会创建它。如果变量存在,则会将其初始化为空字符串。变量会保持为空,直到重定向结束。只能使用字符串变量。重定向开始后,如果变量被删除或锁定,或者变量类型被更改,则进一步的命令输出消息会导致错误。当使用局部变量(函数中的 l:var 或脚本中的 s:var)并且另一个 :redir
导致当前 :redir
结束时,作用域可能不同,导致赋值失败。要获取一个命令的输出,可以使用 execute() 函数而不是重定向。{var}
将消息追加到现有变量。只能使用字符串变量。{pattern}
{command}
:filt[er][!] /{pattern}/ {command}
将 {command}
的输出限制为与 {pattern}
匹配的行。例如,要列出只有 xml 文件:filter /\.xml$/ oldfiles
{command}
的输出限制为与 {pattern}
不匹配的行。{pattern}
是一个 Vim 搜索模式。除了用 / 括起来之外,还可以使用任何非标识符字符(参见 'isident'),只要它没有出现在 {pattern}
中即可。如果不用括号括起来,则模式不能包含竖线字符。不会使用 'ignorecase'。{command}
静默执行 {command}
。不会显示普通消息,也不会将其添加到消息历史记录中。如果添加了 [!],则错误消息也会被跳过,并且在检测到错误时,命令和映射不会被中止。 v:errmsg 仍然会被设置。如果未使用 [!],则错误消息会导致进一步的消息正常显示。使用 :redir 启动的重定向会像往常一样继续,尽管可能存在细微差异。这将允许重定向命令的输出,而不会在屏幕上看到它。示例:redir >/tmp/foobar :silent g/Aap/p :redir END
:silent exe "normal /path\<CR>"
:let v:errmsg = "" :silent! /^begin :if v:errmsg != "" : ... pattern was not found
{command}
非静默执行 {command}
。只有当使用 :silent 进入此命令时才会有区别。当使用 :silent 时,请使用此命令来显示消息。在此示例中,使用 :silent 来避免读取文件的提示,并使用 :unsilent 来列出每个文件的首行。:silent argdo unsilent echo expand('%') .. ": " .. getline(1)
{command}
使用 'verbose' 设置为 [count] 来执行 {command}
。如果省略 [count],则使用 1。":0verbose" 可用于将 'verbose' 设置为 0。额外使用 ":silent" 会生成消息但不显示它们。":silent" 和 ":verbose" 的组合可以用于生成消息,并使用 v:statusmsg 等检查它们。例如:let v:statusmsg = "" :silent verbose runtime foobar.vim :if v:statusmsg != "" : " foobar.vim could not be found :endif
:4verbose set verbose | set verbose
:tabnew | terminal {program} {keyword}
!man 2 mkdir
:sleep "sleep for one second :5sleep "sleep for five seconds :sleep 100m "sleep for 100 milliseconds 10gs "sleep for ten seconds
CTRL-C
中断。 "gs" 代表 "goto sleep"。睡眠期间,光标会停留在文本中,如果它在可见位置,则会停留在文本中。排队的消息会在睡眠期间处理。func LessInitFunc() set nocursorcolumn nocursorline endfunc
foo
将转换为 /*foo*/
)。空行将被忽略。/**/
)。注释标记将对齐到缩进最小的行。