Vi_diff
Nvim :help
页面,从 源代码 生成, 使用 tree-sitter-vimdoc 解析器。
Vim 和 Vi 之间的区别
Vim 对可编辑文件的限制很少。Vi 无法处理 <Nul>
字符和大于 128 的字符,行长有限制,以及许多其他限制。
最大行长 2147483647 个字符 最大行数 2147483647 行 最大文件大小 2147483647 字节(2 Gbyte)当长整数为 32 位时。64 位长整数则更大。同时受
交换文件 可用磁盘空间的限制。
E75文件路径长度 Unix 和 Win32:1024 个字符,否则为 256 个字符(或系统支持的最大长度)。扩展字符串选项长度 Unix 和 Win32:1024 个字符,否则为 256 个字符 最大显示宽度 Unix 和 Win32:1024 个字符,否则为 255 个字符 映射的最大 lhs 长度 50 个字符。 不同的高亮类型数量:超过 30000 个 数字变量范围:-2147483648 到 2147483647(在 64 位系统上可能更多) 标签文件中的最大行长:512 字节。
撤销和寄存器中的文本信息保存在内存中,因此在进行(大)更改时,可用(虚拟)内存量会限制撤销级别数量和可以保存在寄存器中的文本量。其他内容也保存在内存中:命令行历史记录、Quickfix 模式中的错误消息等。
支持不同的系统。Vim 可用于
现代 Unix 系统(BSD、Linux 等)
Windows(XP SP 2 或更高版本)
OS X
多级持久撤销。
撤销 'u' 向后回溯时间,'
CTRL-R
' 再次向前。将选项
'undolevels' 设置为要记住的更改数量(默认值为 1000)。将
'undolevels' 设置为 0 以获得与 Vi 兼容的单级撤销。将其设置为 -1 以完全禁用撤销。当缓冲区中的所有更改都被撤消时,缓冲区将不再被视为已更改。您可以使用 :q 退出,无需使用 <!>。当撤消一些更改,然后进行新的更改时,Vim 会在撤销树中创建分支。这意味着您可以回到文本的任何状态,不会有更改导致文本永远丢失的风险。
撤销树 当
'undofile' 选项被设置时,撤销信息会存储在一个文件中。这意味着您可以退出 Vim,在之前编辑的文件上启动 Vim,并撤销在退出 Vim 之前所做的更改。
图形用户界面 (GUI)。
gui 包含对 GUI 的支持:菜单、鼠标、滚动条等。您可以定义自己的菜单。更好地支持 CTRL/SHIFT/ALT 键与特殊键和鼠标的组合。支持各种平台,如 Win32。
多个窗口和缓冲区。
windows.txt Vim 可以将屏幕分成多个窗口,每个窗口编辑不同的缓冲区或在不同位置编辑同一个缓冲区。缓冲区仍然可以加载(和更改),但不会显示在窗口中。这被称为隐藏缓冲区。此功能添加了许多命令和选项。Vim 还可以使用多个标签页,每个标签页包含一个或多个窗口。可以用来快速切换这些页面。
标签页
折叠。
folding 一系列行可以显示为一行“折叠”行。这使得可以概述文件并快速移动文本块。折叠可以手动创建、从文件的语法中创建、通过缩进创建等。
差异模式。
diff-mode Vim 可以用高亮显示差异的方式显示文件的两个版本。相等的文本部分会被折叠起来。可以使用命令将文本从一个版本移动到另一个版本。
插件。
add-plugin 通过将插件文件放到正确的目录中,可以扩展功能。这是一种简单的方法,可以开始使用其他人编写的 Vim 脚本。插件可以用于所有类型的文件,也可以专门用于特定类型的文件。包使这变得更加容易。
packages
重复一系列命令。
q "q{c}" 开始将输入的字符记录到名为
{c}
的命名寄存器中。随后的 "q" 会停止记录。然后可以使用 "@{c}" 命令执行该寄存器。这对于重复复杂操作非常有用。
CTRL-O
可用于执行单个普通模式命令。这与按下
<Esc>
、输入命令并执行
a 几乎相同。
可视模式。
Visual-mode 可视模式可用于先高亮显示一段文本,然后给出命令对其进行操作。这是一种(易于使用)的方法,可以替代先给出操作符,然后移动到要操作的文本末尾。
v 和
V 用于启动可视模式。
v 对字符起作用,
V 对行起作用。移动光标以扩展可视区域。它会在屏幕上高亮显示。通过输入 "o" 可以移动可视区域的另一端。可视区域可以受操作符影响:d 删除 c 更改 y 粘贴 > 或 < 插入或删除缩进 ! 通过外部程序过滤 = 通过缩进过滤 : 启动
: 命令以针对可视行进行操作。gq 将文本格式化为
'textwidth' 列 J 合并行 ~ 交换大小写 u 变为小写 U 变为大写
块操作符。
visual-block 使用可视模式,可以选择一个矩形的文本块。使用
CTRL-V
启动可视模式。该块可以被删除 ("d")、粘贴 ("y") 或更改其大小写 ("~", "u" 和 "U")。可以使用 "p" 和 "P" 命令将删除或粘贴的块放到文本中。
帮助系统。
:help 帮助信息显示在一个窗口中。可以使用通常的命令在窗口中移动、搜索字符串等。可以使用标签在帮助文件中跳转,就像超链接一样。
:help 命令接收一个参数,可以快速跳转到某个主题的信息。
<F1>
是快速访问帮助系统的快捷键。帮助索引文件的名称可以使用
'helpfile' 选项设置。
命令行编辑和历史记录。
cmdline-editing 您可以使用光标键在命令行中的任何位置插入或删除内容。左右方向键可用于向前/向后移动一个字符。按住 shift 键的左右方向键可用于向前/向后移动一个单词。
CTRL-B
/CTRL-E 可用于跳到命令行的开头/结尾。(Vi:只能更改行中的最后一个字符)(Vi:按下
<Esc>
时会执行命令行。对于大多数人来说,这很意外;因此在 Vim 中进行了更改。但是,当
<Esc>
是映射的一部分时,会执行命令行。如果您希望在输入
<Esc>
时也使用 Vi 的行为,请使用 ":cmap ^V<Esc> ^V^M")
cmdline-history 命令行会被记住。可以使用向上/向下方向键来调出以前的命令行。可以使用
'history' 选项设置要记住的行数。命令和搜索模式有单独的历史记录。
命令行补全。
cmdline-completion 在输入命令行(在屏幕底部)时,可以输入
<Tab>
来补全
什么示例
命令 :e<Tab>
标签 :ta scr<Tab>
选项 :set sc<Tab>
选项值 :set hf=<Tab>
文件名 :e ve<Tab>
等等。
如果有多个匹配项,CTRL-N
(下一个)和 CTRL-P
(上一个)将遍历匹配项。<Tab>
像 CTRL-N
一样工作,但会循环到第一个匹配项。
可以使用
'wildchar' 选项设置命令行补全的字符,
<Tab>
为默认值。在(不完整)通配符后输入
CTRL-D
;将列出所有匹配项。
CTRL-A
将插入所有匹配项。
CTRL-L
将插入匹配项中最长的公共部分。
扩展的搜索模式。
模式 有许多额外的项目来匹配各种文本项目。 例如:一个 "\n" 可用于搜索模式以匹配换行符。 "x\{2,4}" 匹配 "x" 2 到 4 次。 "\s" 匹配空格字符。
目录、远程和归档浏览。
netrw Vim 可以浏览文件系统。 只需编辑一个目录。 使用常用命令在列表中移动,然后按
<Enter>
转到光标下的目录或文件。 这也适用于通过 ftp、http、ssh 等访问的远程文件。 zip 和 tar 存档也可以浏览。
tar zip
编辑-编译-编辑加速。
快速修复 :make 命令可用于运行编译并跳到第一个错误。 会解释包含编译器错误消息的文件。 Vim 跳到第一个错误。
错误文件中的每一行都会扫描文件名称、行号和错误消息。
'errorformat' 选项可以设置为一个 scanf 风格字符串列表,以处理来自许多编译器的输出。
在文件中查找匹配项。
:vimgrep Vim 可以搜索多个文件中的模式。 这使用高级 Vim 正则表达式模式,适用于所有系统,也适用于在压缩文件中搜索。
注释可以自动格式化。
'comments' 选项可以设置为开始和结束注释的字符。 这最适合 C 代码,但也适用于电子邮件(行首的“>”)和其他类型的文本。
= 运算符可用于重新缩进行。
对于许多其他语言,都存在缩进插件来支持自动缩进。
30.3
自动命令。
自动命令 根据文件名,可以在读取文件、写入文件、跳转到另一个缓冲区等操作时自动执行命令。 这对于设置 C 程序、文档、纯文本、电子邮件等的选项和映射很有用。 这也使得编辑压缩文件成为可能。
Viminfo。 命令行历史记录、标记和寄存器可以存储在一个在启动时读取的文件中。 这可用于在退出并重新启动 Vim 后重复搜索命令或命令行命令。 还可以使用
'0 直接跳回上次编辑停止的位置。
'viminfo' 选项可以设置为选择要存储在 .viminfo 文件中的项目。 默认情况下,此选项处于关闭状态。
鼠标支持。
使用鼠标 GUI 版本、Unix 中的 xterm、具有 sysmouse 的 BSD、具有 gpm 的 Linux 以及 Win32 都支持鼠标。 它可用于定位光标、选择可视区域、粘贴寄存器等。
键名用法。
<> 键符号 现在所有特殊键都有一个名称,例如
<Up>
、
<End>
等。 此名称可以在映射中使用,使其易于编辑。
编辑二进制文件。
编辑二进制文件 Vim 可以编辑二进制文件。 你可以在可执行文件中更改几个字符,而不会损坏它。 Vim 不会删除 NUL 字符(它们在内部表示为
<NL>
)。
-b 命令行参数用于开始编辑二进制文件
'binary' -b 设置的选项。 防止为文件中的最后一行添加
<EOL>
。
多语言支持。
多语言 可以编辑双字节或多字节编码的文件。 有 UTF-8 支持,可以同时编辑各种语言,而无需切换字体。
UTF-8 消息和菜单以不同的语言提供。
将光标移动到行之外。 当
'virtualedit' 选项设置为打开状态时,光标可以移动到屏幕上的任何位置,包括没有文本的位置。 这对于轻松编辑表格和图形很有用。