message

message.txt 适用于 Vim 9.2 版本。 最近更新: 2025年12月 VIM 参考手册 by Bram Moolenaar 译者: Willis、tocer 本文按字母顺序罗列 Vim 输出的提示和错误消息。方便查询消息的含义。本文并非完整 列表,其他消息会在相关文档中说明。 1. 历史消息记录 :messages 2. 错误消息 error-messages 3. 普通提示消息 messages

1. 历史消息记录 :messages :mes message-history

":messages" 命令可查看过往输出的消息。适合重新检视可能被覆盖或截短的历史消息。 消息具体的显示方式取决于 'shortmess' 选项。 :mes[sages] 显示所有历史消息。 :{count}mes[sages] 显示最新 {count} 条消息。 :mes[sages] clear 清空所有历史消息。 :{count}mes[sages] clear 清空旧消息,仅保留最新 {count} 条消息。 保存的消息总数由 'messagesopt' 选项控制。 g< 本命令用于察看上一条命令输出的最后一页内容。在提示 "请按回车继续" 时,容易误按 <Space> 翻页跳过有用信息。本命令可回到按回车继续的提示画面,然后可向上翻页查看 更早输出。 注意: 在提示显示更多信息时如果按 "q" 提前退出,仅能查看退出前的内容。 执行新命令产生输出时,旧命令的输出缓存会被清空。 本命令的输出无法被重定向捕获。 使用翻译消息 (如中文消息) 时,首行会显示消息或翻译维护者信息。发现问题可据此联 系维护者。 要查找特定 (提示或错误) 消息,可用消息开头的 ID 编号作为帮助主题。例如,要获取 以下消息的帮助: E72: Close error on swap file 或 (翻译版本): E72: 交换文件关闭错误 可用: :help E72 大小写不敏感: :help e72 编号本身并无特殊含义,仅用作唯一标识。

2. 错误消息 error-messages errors

错误消息如果来不及阅读,有两种查看方式: :echo errmsg 显示最近一条错误。或者查看完整最新消息列表: :messages 见上 :messages 。 消 息 列 表 E222 E228 E232 E292 E293 E298 E304 E316 E317 E318 E320 E322 E323 E341 E356 E438 E439 E440 E473 E570 Add to read buffer makemap: Illegal mode Cannot create BalloonEval with both message and callback block was not locked Didn't get block nr {N}? ml_upd_block0(): Didn't get block 0?? pointer block id wrong {N} Updated too many blocks? get_varp ERROR u_undo: line numbers wrong undo list corrupt undo line missing ml_get: cannot find line {N} in buffer {nr} {name} line number out of range: {N} past the end line count wrong in block {N} Internal error: lalloc(0, ) Internal error: {function} Internal error in regexp fatal error in cs_manage_matches Invalid count for del_bytes(): {N} E340 E685 internal-error 内部错误。如果能稳定复现,请提交漏洞报告,参见 bugs 注意 发现交换文件 ... ATTENTION E92 E92: 找不到缓冲区 {N} 请求缓冲区不存在。真正删除缓冲区 ( :bwipeout ) 后,如果该缓冲区仍包含位置标记 或通过其他途径被引用的缓冲区,也会触发此报错。 E95 已有缓冲区使用该名称 缓冲区不能重名。此处使用文件完整路径。 E1513 不能切换缓冲区,'winfixbuf' 已启用 如果窗口打开 'winfixbuf',无法切换该窗口的缓冲区。需先设置 'nowinfixbuf' 解除 锁定。部分命令支持通过 [!] 命令后缀强制切换缓冲区。 E72 交换文件关闭错误 无法正确关闭缓存编辑内容的交换文件 swap-file 。一般无害。 E169 命令递归层数过多 Ex 命令递归调用 (命令嵌套执行其他命令) 层级超出限制,递归上限为 200 层或 'maxfuncdepth' 二者较大值。超出基本意味着无穷循环。通常由 :execute:source 引发。 E254 无法分配颜色 {颜色名} 指定的颜色名未知。主流系统可用颜色可见 gui-colors E1244 无效的颜色的字符串: {颜色字符串} 传入的颜色字符串不符合 #rrggbb 色彩格式。 E458 无法分配颜色表项,某些颜色可能不正确 系统可用色彩槽位不足。Vim 仍可运行,但部分高亮配色会显示异常。解决方法是关闭其 他大量占用调色板的程序,或先启动 gvim 再打开其他程序。 已知浏览器占用大量色彩。以 netscape 为例,可独立分配调色板: netscape -install 或者指定使用色彩数上限 (64 应已足够): netscape -ncols 64 也可通过 Xdefaults 文件永久设置: Netscape*installColormap: Yes Netscape*maxImageColors: 64 < E79 无法扩展通配符 文件名包含特殊字符组合,导致 Vim 尝试通配符扩展但操作失败。这 不一定 代表没有 匹配文件名,只代表指定的通配模式无效。 E459 无法回到前一个目录 解析文件名过程中,Vim 尝试切回最近使用的目录但失败。当前所有文件路径可能失效! 可能原因是,当前目录缺少可执行 (用于目录则为可遍历) 权限。 E190 E212 无法打开并写入 "{文件名}" 无法打开并写入文件 无法新建或覆盖目标文件。可能原因是,没有目录写权限,或文件名非法。 E166 无法打开并写入链接文件 覆盖目标文件时如果失败,通常会尝试先删除该文件再新建文件。但如果目标是链接 (硬 链接或符号链接),即使存放该链接或源文件的目录可写,Vim 因为无法判断用户意图是 删除链接并在其位置写入新文件,还是删除源文件本身再以新文件替换,因此只能报错。 如果确实有此需要,请先手动删除链接或源文件,或调整权限以允许覆盖。 E46 不能改变只读变量 "{变量名}" 试图修改只读变量,包括函数参数 a:var 或 Vim 内置只读变量 v:var E90 无法释放最后一个缓冲区 Vim 必须保留至少一个加载缓冲区,窗口才有内容可展示。 E40 无法打开错误文件 <文件名> 执行 :make:grep 命令时,用于存放错误信息或检索输出的临时文件无法打开。 可能原因如下: - 'shellredir' 配置错误。 - 外壳内部切换了目录,导致临时文件被写到其他路径;调整 'makeef' 可修正路径,但 make 命令仍会在错误目录执行。 - 'makeef' 文件名配置有误。 - 'makeprg''grepprg' 外部程序无法执行。有时很难发现 (尤其在 MS-Windows 环 境上),请检查系统环境变量 $PATH。 无法打开文件 C:\TEMP\VIoD243.TMP MS-Windows 上,读取外部命令输出时,临时文件打开失败,这代表外部命令执行异常。 需要排查配置 'shell''shellquote''shellxquote''shellslash' 和相关选项。 也可能是外部程序不存在,该场景无单独提示。 E12 当前目录中的 exrc/vimrc 或 tag 查找中不允许此命令 由于安全限制,禁止执行来自当前目录的 .exrc 或 .vimrc 或标签文件中定义的高危命 令。另见 'secure' E74 E74: 命令过复杂 映射展开后生成的命令行字符串过长。常见诱因是映射间接自我调用。 转换错误 保存文件时,本提示代表缓冲区内部 UTF-8 文本转目标文件编码时丢失了字符数据。此 时,文件不会清除已修改标志位,如果在意信息丢失,请修改 'fileencoding' 为能完整 承载缓冲区字符的编码后重新保存;如果不在意,可直接放弃缓冲区,或手动复位 'modified'。 开启 'writebackup''backup' 时,生成的备份文件不会被删除,可用于恢复原始文 件并舍弃本次修改。 E302 无法重命名交换文件 修改文件名时 Vim 同步尝试重命名交换文件 ( swap-file ) 但失败。此时旧交换文件继 续生效,一般无害。 E43 E44 Damaged match string Corrupted regexp program Vim 内部正则表达式解析异常、正则引擎损坏。能稳定复现请提交漏洞报告 bugs E208 E209 E210 写入文件 "{文件名}" 出错 关闭文件 "{文件名}" 出错 读取文件 "(文件名}" 出错 如果简单重命名文件失败,Vim 转而通过复制文件再删除原始文件实现重命名,但此过程 中途出错。此时可能同时存在原始文件与不完整的目标文件。 Vim: 读错误,退出中... Vim 需要读取输入但无法获取字符,此时程序卡死只能退出。典型场景是标准输入、标准 输出均被重定向,且执行的脚本不会主动退出 Vim。 E47 读取错误文件失败 读取快速修正错误文件时失败。 并非 报错内容无法识别导致。 E80 写入出错 文件写入未完整完成,保存的目标文件可能不完整。 E13 E189 文件已存在 (请加 ! 强制执行) "{文件名}" 已存在 (请加 ! 强制执行) Vim 防止误覆盖已有文件。可通过命令后加 "!" 强制覆盖。示例: :w /tmp/test 要强制覆盖,可改为: :w! /tmp/test E768 交换文件已存在: {文件名} (:silent! 强制执行) 系统能够保护用户避免覆盖其他 Vim 正在编辑的文件。执行 `:w! 文件名` 时检测到交 换文件就会触发本提示。 - 如果交换文件是上次异常崩溃遗留,可手动删除交换文件;直接打开 {文件名} 能查看 交换文件详情。 - 如果执意强制写入,可在命令前加 :silent! 。例如: :silent! w! /tmp/test 因为 w! 的 "!" 仅用于覆盖已有文件,无法绕过交换文件校验,所以必须搭配特殊 命令 silent! E139 文件已在另一个缓冲区中被加载 需要保存的文件名已在其他缓冲区打开,不禁止会造成同一文件存在两份独立编辑副本。 E142 文件未写入: 写入被 'write' 选项禁用 'write' 选项被关闭,导致所有其后的写文件命令都会报错。常因启动 Vim 时加了命令 行参数 -m 导致。要恢复写入权限,可用 `:set write`。 E25 无法使用图形界面: 编译时没有启用 当前编译的 Vim 未内置图形界面代码,"gvim" 程序、 :gui 命令均不可用。 E49 无效的滚动大小 'scroll''scrolljump' 或者 'scrolloff' 配置了非法数值。 E17 "{filename}" 是目录 试图以目录名作为文件名保存文件,不合法;通常需要附加文件名部分构成完整文件名。 E19 标记的行号无效 使用的位置标记指向不存在的行。典型场景是外部程序删除了位置标记所在文件的部分 行,导致标记行号失效。 E219 E220 缺少 {。 缺少 }。 文件名通配符 {} 括号不匹配,要么缺左大括号,要么缺右大括号。正确写法是 {foo,bar},可匹配 "foo"、"bar" 两个文件。 E315 ml_get: invalid lnum: {number} Vim 内部底层错误。若能稳定复现,请提交漏洞报告 bugreport.vim E173 还有 {数值} 个文件待编辑 参数列表还有未编辑完的文件,首次退出会拦截提醒,防止误关闭未处理文件,参见 argument-list 。要坚持退出,再执行一次退出命令即可。 E23 E194 没有交替文件 没有用于替换 '#' 的交替文件名 尚未设置轮换文件,'#' 无法被替换。详见 alternate-file E32 没有文件名 当前缓冲区无文件名。保存需指定路径 `:w 文件名`。也可先用 `:file 文件名` 给缓冲 区命名。 E141 缓冲区 {缓冲区编号} 没有文件名 缓冲区已修改但无文件名,无法直接保存。需要先为缓冲区指定文件名: :buffer {缓冲区编号} :file {文件名} E33 没有前一个替换正则表达式 正则模式中的 '~' 字符会被上次执行的替代命令 :substitute 使用的替代字符串替 换,但如果此前未执行过任何替代操作,报错。见 /~ 。 使用 `:s/pat/%/ `时 (其中 '%' 代表上次替代字符串) 也会发生类似问题。 E35 没有前一个正则表达式 搜索时传入空模式时,Vim 会复用上次搜索模式,但如果从未执行过搜索操作,报错。 E24 没有这个缩写 执行 :unabbreviate:cunabbrev:iunabbrev 时试图删除不存在的缩写。需要 检查命令末尾是否多余空格。 /dev/dsp: No such file or directory 仅出现在带 GNOME 支持的 GTK GUI 版本;GNOME 尝试调用音频设备但设备不存在,可直 接忽略。 E31 没有这个映射 执行 :unmap:cunmap:unmap! 时试图删除不存在的按键映射。排查提示: - 需要检查映射名称末尾是否多余空格。 - 删除缓冲区局部映射时必须加 <buffer> 参数,见 :map-<buffer> E37 E89 已修改但尚未保存 (可用 ! 强制执行) 缓冲区 %d 已修改但尚未保存 (请加 ! 强制执行) 如果缓冲区存在未保存修改,执行 abandon 放弃文件操作会被拦截,防止丢失编辑内 容。可以先执行 :w 保存修改,或在命令后加 "!" 强制丢弃修改。示例: :e 另一文件 要强制放弃修改,切换文件,可改为: :e! 另一文件 E162 缓冲区 "{缓冲区名}" 已修改但尚未保存 退出 Vim 时存在已修改但未保存的缓冲区。可用 :w 逐个保存缓冲区,或用 :qa! 等命令强制全部退出并丢弃所有修改 (谨慎使用,开启 'hidden' 时容易遗忘后台已修改 的缓冲区)。 [已修改但尚未保存] 存在未保存缓冲区时执行外部外壳命令会触发本提示。要关闭提示,可复位 'warn' 选 项。 E38 Null argument Vim 内部出现空指针异常。若能稳定复现该问题,请提交漏洞报告 bugs E41 E82 E83 E342 内存不足! 无法分配任何缓冲区,退出程序... 无法分配缓冲区,使用另一个缓冲区... 内存不足!(分配 {内存空间} 字节) 内存耗尽。大概率是执行了复杂操作,或其他程序占用大量系统内存。风险提示!Vim 处 理内存不足的场景不完善,请优先保存所有修改,再处理内存问题。稳妥方案是退出 Vim 重新启动。 如果在 Vim 初始化阶段就触发内存不足,编辑功能基本无法使用,程序会以退出码 123 终止。 缓冲区内容不会全部常驻内存,超大文件编辑一般不会触发内存溢出。但撤销记录完整存 于内存,可通过以下配置减少内存占用: - 'undolevels' 调低数值,设为 -1 完全关闭撤销;适合影响全局所有行的修改。 - 'undoreload' 设为 0 关闭重载撤销缓存。 E339 模式太长 16 位整型系统上,编译后的正则表达式总长度超过约 65000 字符,需简化模式。 正则规则偏移量超出存储上限也会发生类似问题,同样需要精简模式。 E45 已设定选项 'readonly' (请加 ! 强制执行) 如果缓冲区标记为只读,禁止直接保存。有两种解决方法。复位 'readonly',或在命令 后加 '!' 强制保存。例如: :w 要强制保存,可改为: :w! E294 E295 E301 交换文件读取定位错误 交换文件读取错误 噢,交换文件不见了!!! Vim 读取交换文件 ( swap-file ) 失败,对应缓冲区内容存在损坏风险。保存前务必仔 细核对内容,建议另存为新文件比对差异。 E192 :normal 递归层数过深 :normal 命令递归嵌套层级超限,上限由 'maxmapdepth' 控制。 示例 (自递归映射触发报错): :map gq :normal gq<CR> 按下 gq 会无限递归调用自身映射,超出深度限制后报错。 E22 脚本嵌套过深 脚本通过 -s 命令行参数和 :source! 加载。脚本支持嵌套调用,最大嵌套层级约 14 层。超过该层数 Vim 判断存在无限递归循环,终止执行并触发本错误。 E319 抱歉,命令在此版本中不可用 执行的命令在当前 Vim 版本中不存在。编译 Vim 时可按需开关各类功能,也取决于编译 配置的特性包大小与操作系统。功能清单见 +feature-list 。当前编译启用特性可见 :version E300 交换文件已存在 (符号连接攻击?) Vim 创建交换文件时发现目标位置已有文件或软链接。 正常流程下 Vim 会提前校验文件不存在,出现该提示有两种可能。另一进程同时打开同 一文件 (概率极低); 或存在软链接攻击风险 (编辑 /tmp 下的临时文件或 'directory' 选项的首个目录为 "/tmp" 时都可能发生,因此不推荐如此配置)。 E432 Tag 文件未排序: {文件名} Vim (和 Vi 兼容) 要求标签文件按 ASCII 顺序排序,以此二分查找加速检索;标签未排 序会触发此报错。临时方案是关闭 'tagbsearch',禁用二分检索。 仅在搜索标签过程中检测到错乱时触发,并非所有乱序标签文件一定触发提示。 E424 使用了太多不同的高亮度属性 Vim 只能处理 223 种不同的高亮。大量使用不同参数的 :highlight 命令会导致上限 超出。`:highlight link` 高亮链接不计算在内。 E77 文件名过多 通配符展开匹配到多个文件,但当前命令仅允许单个文件匹配。 E303 无法打开 "{文件名}" 的交换文件,恢复将不可能 无法创建交换文件,仍可正常编辑,但存在隐患,Vim 异常退出后所有修改全部丢失。 大文件编辑会占用大量内存。解决方法是,修改 'directory' 选项,更换交换文件存放 目录。'directory' 为空时不会触发提示。见 swap-file E140 请使用 ! 来写入部分缓冲区 使用范围仅写出缓冲区部分内容时,直接覆盖原文件存在误操作风险 (如可视模式误执行 :w ),必须通过命令后加 "!" 强制覆盖,如 :3,10w! Warning: Cannot convert string "<Key>Escape,_Key_Cancel" to type VirtualBinding 启动时触发该提示不属于 Vim 本身故障,是 X11 窗口系统配置异常。相关提示如下: http://groups.yahoo.com/group/solarisonintel/message/12179。 [此 URL 已不可用] W10 警告: 正在修改只读文件 文件为只读状态,但用户仍在修改内容。可通过 FileChangedRO 自动命令,在自动事 件内复位 'readonly'。复位 'modifiable' 可彻底禁止修改。 仅在只读标记生效后的第一次编辑触发本警告 W13 警告: 编辑开始后,文件 "{文件名}" 已被创建 打开文件时该文件不存在,但在编辑途中,外部程序新建了同名文件。需要二选一,保留 Vim 内编辑版本,还是磁盘上新生成的文件。'buftype' 非空时不会触发本提示。 W11 警告: 编辑开始后,文件 "{文件名}" 已变动 正在编辑的文件在外部修改了时间戳 (修改时间) 以及内容 (更准确地说,使用相同选项 及自动命令读取的文本发生了变化)。通常由外部程序造成。需自行核对差异,选择保留 磁盘版本还是缓冲区版本;开启 'autoread' 选项可自动重载外部更新。'buftype' 非空 时不触发;另见 FileChangedShell 自动命令。 会弹出对话框,提供以下选项: "确定": 忽略警告继续编辑。不加载更改,缓冲区保持原状。 "加载文件": 从磁盘重新加载文件,覆盖缓冲区。未保存的本地修改全部丢失。 "加载文件和选项": 重新加载文件,并同时应用相关文件设置,如缩进、语法高亮、文本宽 度和其它文件类型特定选项。可确保缓冲区加载后不影响原有设置和自 动命令。 Windows 上,夏令时切换当天保存文件会误触发。可选修正方案如下: - 在 autoexec.bat 增加下行: SET TZ=-1 将 "-1" 替换为本地时区值。 - 关闭系统 "根据夏令时时间自动调整时钟" 选项。 - 次日再保存文件。或临时把系统日期调后一天,保存两次再改回时间。 若频繁触发 W11,可能需要关闭 "Acronis 主动防护",或将 Vim 登记为受信任服务/程 序。 W12 警告: 文件 "{文件名}" 已变动,并且在 Vim 中的缓冲区也已变动 与上述类似,磁盘文件已被外部修改,同时在 Vim 内也做了未保存修改,存在两份不同 版本,需要手动取舍。'buftype' 非空时不触发本提示。 W16 警告: 编辑开始后,文件 "{文件名}" 的权限模式已变动 文件内容无变化,但文件权限 (模式) 发生变动,缓冲区时间戳也被更新。常见场景是从 版本控制系统检出文件并自动清除只读位。直接重载文件应该安全;可开启 'autoread' 自动同步权限。 E211 文件 "{文件名}" 已经不存在 正在编辑的文件已被删除,或当前无访问权限。请尽快另存缓冲区,防止修改丢失。 'buftype' 不为空时,不会触发本提示。 W14 警告: 文件名过多 打开的缓冲区数量过多,缓冲区编号可能出现重复,会引发各类异常。建议重启 Vim。 E931 缓冲区无法注册 内存溢出或缓冲区编号冲突,常在 W14 溢出后出现。缓冲区查找功能会不稳定,最好重 启 Vim。 E296 E297 交换文件写入定位错误 交换文件写入错误 多半是磁盘空间已满,Vim 无法写入交换文件 ( swap-file )。短期无直接危害,但程序 异常退出时修改无法恢复;持续报错会导致内存耗尽。 connection-refused Xlib: connection to "<machine-name:0.0" refused by server Vim 尝试连接 X 窗口服务器被拒绝。仅当连接 X 成功才能进行窗口标题还原、xterm 剪 贴板互通。需要关闭 +X11+xterm_clipboard 编译特性才能彻底屏蔽本提示。 E10 \\ 后面应该跟有 /、? 或 & 命令行开头出现反斜杠、或命令行范围在错误位置使用了反斜杠,常见原因是命令行续行 功能关闭。可从 'cpoptions' 里移除 'C' 标志位,或执行 `:set nocp` 打开。 E471 需要参数 执行了必须携带参数的 Ex 命令,但未传入任何参数。 E474 E475 E983 无效的参数 无效的参数: {参数} 重复的参数: {参数} 调用 Ex 命令或函数时传入非法参数,或重复传入同名参数。 E488 多余的尾部字符 多余的尾部字符: {文本} 命令不支持附加参数,但额外传入了内容;或是参数包含无法识别的非法字符。 E477 E478 不能使用 "!" 不要慌! 在不支持 "!" 后缀的 Ex 命令后添加了 "!" 修饰符。 E481 不能使用范围 在不支持范围参数的 Ex 命令前加了范围。见 cmdline-ranges E482 E483 无法创建文件 {文件名} 无法获取临时文件名 Vim 无法创建临时文件。 E484 E485 无法打开文件 {文件名} 无法读取文件 {文件名} Vim 无法读取临时文件。Windows 平台常见诱因是传给 cmd.exe 的特殊字符转义错误, 7.3.443 补丁调整过相关逻辑。解决方案是,传给 system() 的所有外壳参数全部使用 shellescape() 转义,或直接手动用 ^ 做 cmd 转义。另见 'shellxquote''shellxescape' 选项。 E464 不确定的用户自定义命令 存在两条拥有相同前缀的自定义命令,通过命令行补全调用时出现匹配歧义。参见 user-cmd-ambiguous 。 示例: :command MyCommand1 echo "one" :command MyCommand2 echo "two" :MyCommand 输入 :MyCommand 无法确定要执行哪一条,触发报错。 E492 不是编辑器的命令 执行的字符串既不是内置 Ex 命令,也不存在同名用户命令。 E943 Command table needs to be updated, run 'make cmdidxs' 仅当修改 Vim 源码且在 src/ex_cmds.h 中新增命令时触发。需要执行以下命令,重建索 引表: make cmdidxs E928 E889 需要字符串 需要整数 表达式或变量值类型不匹配,例如当前需要字符串却传入数值,或反之。

3. 普通提示消息 messages

下文是 Vim 各类提示信息的不完全汇总说明: hit-enter press-enter hit-return press-return hit-enter-prompt 请按 ENTER 或其它命令继续 如果屏幕上有内容需要阅读,而内容即将因屏幕重绘而消失时,Vim 会触发本「按回车继 续」分页提示: - 执行外部外壳命令后 (如 :!ls= )。 - 状态行输出内容超出窗口宽度,挤占 'showcmd''ruler' 显示区域。 -> 按 <Enter><Space> 刷新界面并继续,按键无其他附加作用。 -> 按 : 或普通模式任意命令字符时,直接执行对应命令。注意执行外部命令后,光标 键等特殊按键可能失效,因为终端仍处于外部命令执行模式未复原。 -> 按 'k'、<Up>、'u'、'b' 或 'g' 键向上回滚历史输出。和 more-prompt 分页逻辑 一致。仅当关闭 'compatible' 且打开 'more' 时有效。 -> 按 'j'、'f'、'd' 或 <Down> 键向下滚动显示更多输出。但消息已滚动到屏幕顶部、 'compatible' 关闭且 'more' 打开时这些键失效。避免误触 'j' 或 'f' 太多次清空 输出。 -> 按 <C-Y> 无模式选中文本复制到剪贴寄存器。 -> 可通过命令行模式定义的快捷键使用菜单 ( :cmenu )。 -> 'mouse' 选项包含 'r' 标志位时,左键点击等同于 <Space>,但无法用于选中文字。 -> GUI 模式上,鼠标左键点击末行也等同于 <Space>。 -> 按 q 不会启动宏录制到寄存器功能 (因为用户常用此键来退出 ("quit") 提示)。 如果不小心按 <Enter><Space> 清空页面,可输入 g< 恢复上一页输出,仅当置位 'more' 时可用。 如果本提示触发过于频繁,可考虑: - 设置 'messagesopt'。 - 将 'cmdheight' 设为 2 或者更高。 - 在 'shortmess' 里增加标志位,精简提示文字。 - 复位 'showcmd' 和/或 'ruler'。 - 确保 :echo 文本不长于 v:echospace 屏幕单元格。 如果脚本无故触发本提示,可借助变量 v:scrollstart 定位输出源头。 另见 'mouse'。本提示使用 hl-Question 高亮组。 more-prompt pager -- 更多 -- -- 更多 -- 空格/d/j: 屏幕/页/行 下翻,b/u/k: 上翻,q: 退出 本提示在屏幕被消息填满时触发,仅开启 'more' 选项才会出现,使用 hl-MoreMsg 高 亮组。 按键 效果 <CR><NL> 或 j 或 <Down> 下滚一行 d 下滚一页 (半屏) <Space> 或 f 或 <PageDown>CTRL-F 下滚一屏 G 直接滚动到底部,调出按回车提示 <BS> 或 k 或 <Up> 上滚一行 u 上滚一页 (半屏) b 或 <PageUp> 上滚一屏 g 回滚到输出开始处 q、<Esc>CTRL-C 终止浏览输出 : 终止浏览并进入命令行模式 <C-Y> 抽出 (复制) 无模式选中内容 modeless-selection 到剪贴板 ("* 和 "+ 寄存器) {菜单快捷键} 执行命令行模式绑定的菜单项。 <LeftMouse> 下滚一屏 (*) 按下其余任意按键,会展示所有分页快捷键说明。 (*) 鼠标左键点击生效条件为: - GUI: 仅点击屏幕末行有效。 - 终端模式: 当 'mouse' 里包含 'r' 时有效 (但会失去选择文本功能)。 注意: 分页时读取的按键直接取自终端输入,不触发按键映射,且预输入缓存会被忽略。 g< 命令可调出上一条命令输出的最后一页。适合在按回车继续提示误按 <Space> 清空 内容后,重新查看输出。 vim:tw=78:ts=8:noet:ft=help:norl: