Nvim :help
页面,生成自 源代码, 使用 tree-sitter-vimdoc 解析器。
:s/2001/2002/g现在使用“gv”重新选择相同的文本。光标位置无关紧要。然后使用“:s/2000/2001/g”进行第二次更改。显然,您可以重复这些更改多次。
CTRL-A
命令,而不是为出现的每个年份键入替换命令。使用与上面相同的文本,搜索年份/19[0-9][0-9]\|20[0-9][0-9]现在按
CTRL-A
。年份将增加一年CTRL-A
(“.” 输入速度更快)。对出现的年份重复“n”和“.”。CTRL-A
前面添加数字来添加多个数字。假设您有以下列表3 CTRL-A“1.” 将变为“4.”。同样,您可以使用“.”在其他数字上重复此操作。
CTRL-X
命令以类似的方式进行减法。CTRL-A
和 CTRL-X
的行为取决于 'nrformats' 的值。例如,如果您使用:set nrformats+=octal在“007”上按
CTRL-A
将递增到“010”,因为“007”将被识别为八进制数。:args *.c
:argdo %s/\<x_cnt\>/x_counter/ge | update“:argdo”命令接受一个参数,该参数是另一个命令。该命令将在参数列表中的所有文件上执行。后面的“%s”替换命令适用于所有行。它使用“\<x_cnt\>”查找单词“x_cnt”。“\<”和“\>”用于仅匹配整个单词,而不是“px_cnt”或“x_cnt2”。替换命令的标志包括“g”,用于替换同一行中的所有“x_cnt”出现情况。“e”标志用于避免在“x_cnt”未出现在文件中时出现错误消息。否则,“:argdo”将在第一个未找到“x_cnt”的文件上中止。 “|”分隔两个命令。以下“update”命令仅在文件发生更改时才写入文件。如果“x_cnt”没有更改为“x_counter”,则不会发生任何操作。
%s/-person-/Jones/g write tempfile quit您将这些命令放入文件“change.vim”中。现在,要以批处理模式运行编辑器,请使用以下 shell 脚本
for file in *.txt; do vim -e -s $file < change.vim lpr -r tempfile donefor-done 循环是一个 shell 结构,用于在两者之间重复这两行,同时 $file 变量每次都设置为不同的文件名。第二行以 Ex 模式(-e 参数)在文件 $file 上运行 Vim 编辑器,并从文件“change.vim”中读取命令。 -s 参数告诉 Vim 以静默模式运行。换句话说,不要继续输出 :prompt 或任何其他提示。命令“lpr -r tempfile”将打印生成的“tempfile”并将其删除(这就是 -r 参数的作用)。
ls | vim -这使您可以在不首先将文本保存在文件中的情况下编辑“ls”命令的输出。如果您使用标准输入读取文本,则可以使用“-S”参数读取脚本
producer | vim -S change.vim -
vim -s script file.txt ...
<Enter>
。在普通模式下,这会将光标移动到下一行。要创建脚本,您可以编辑脚本文件并键入命令。您需要想象结果,这可能有点困难。另一种方法是在手动执行命令时记录命令。以下是操作方法vim -w script file.txt ...所有键入的键都将写入“script”。如果您犯了一个小错误,您可以继续并记住稍后编辑脚本。“-w”参数将附加到现有的脚本。这在您想逐段记录脚本时很有用。如果您想从头开始并重新开始,请使用“-W”参数。它将覆盖任何现有文件。