Nvim :help
页面,生成 自 源代码 使用 tree-sitter-vimdoc 解析器。
:%s/four/4/g"%" 范围表示在所有行中替换。末尾的 "g" 标志会导致一行中的所有单词都被替换。如果您的文件还包含 "thirtyfour",则此操作不会产生正确的结果。它将被替换为 "thirty4"。为了避免这种情况,请使用 "\<" 项来匹配单词的开头
:%s/\<four/4/g显然,这在 "fourteen" 上仍然会出错。使用 "\>" 来匹配单词的结尾
:%s/\<four\>/4/g如果您正在编程,您可能希望在注释中替换 "four",但在代码中不替换。由于这很难指定,因此添加 "c" 标志以让 substitute 命令提示您进行每次替换
:%s/\<four\>/4/gc
*.cpp
启动 Vim,定义参数列表以包含所有 C++ 文件。您现在位于第一个文件中。 qq 开始记录到 q 寄存器中 :%s/\<GetResp\>/GetAnswer/g 对第一个文件进行替换。 :wnext 写入此文件并移动到下一个文件。 q 停止记录。 @q 执行 q 寄存器。这将重放替换和 ":wnext"。您可以验证这不会产生错误消息。 999@q 对剩余文件执行 q 寄存器。:%s/\<GetResp\>/GetAnswer/ge"e" 标志告诉 ":substitute" 未找到匹配项不是错误。
:%s/\([^,]*\), \(.*\)/\2 \1/让我们将其分解成几个部分。显然,它以 substitute 命令开头。 "%" 是行范围,代表整个文件。因此,替换将在文件中的每一行中完成。substitute 命令的参数是 "/from/to/"。斜杠分隔了 "from" 模式和 "to" 字符串。这是 "from" 模式包含的内容
/^OBJS j :.,/^$/-1!sort这将转到第一行,其中 "OBJS" 是该行中的第一个内容。然后它向下移动一行并过滤行,直到下一行空行。您也可以在 Visual 模式中选择行,然后使用 "!sort"。这样做更容易输入,但在行数很多时工作量更大。结果如下
:global/^/move 0缩写
:g/^/m 0"^" 正则表达式匹配行的开头(即使该行是空行)。:move 命令将匹配的行移动到虚构的第零行之后,因此当前匹配的行成为文件的首行。由于 :global 命令不会被更改的行号搞混,因此 :global 会继续匹配文件的其余所有行,并将每个行都设置为第一个。
:'t+1,.g/^/m 't
g CTRL-G不要在 g 后面输入空格,这只是为了便于阅读命令。输出如下
CTRL-G
",将光标移动到文本的结尾,再次键入 "g CTRL-G
",然后使用您的思维来计算单词位置的差值。这是一种很好的练习,但还有更简单的方法。使用 Visual 模式选择您要统计单词的文本。然后键入 g CTRL-G
。结果KNvim 将在该词上运行 :Man。如果找到了手册页,它将被显示出来。您还可以使用 :Man 命令在手册页上打开一个窗口
:Man csh您可以四处滚动,并且文本会被突出显示。这使您可以找到您要查找的帮助。使用
CTRL-W
w 跳转到您正在处理的文本所在的窗口。要在特定部分中查找手册页,请先输入部分号。例如,要在第 3 部分中查找 "echo":Man 3 echo要跳转到另一个手册页,该手册页以 "word(1)" 的典型形式出现在文本中,请在上面按
CTRL-]
。进一步的 ":Man" 命令将使用相同的窗口。K例如,您想在编辑此行时了解 "strstr()" 的返回值
:%s/\s\+$//使用行范围 "%",因此这适用于整个文件。":substitute" 命令匹配的模式是 "\s\+$"。这将找到空格字符 (\s),一个或多个空格字符 (\+),在行尾 ($) 之前。稍后将解释如何编写这样的模式,请参阅 usr_27.txt。substitute 命令的 "to" 部分为空:"//"。因此,它用空字符替换,有效地删除了匹配的空格。
/您无法看到它,但在该命令中制表符之前有一个空格。因此它是 "/<Space><Tab>"。现在使用 "x" 删除空格,并检查空格数量是否发生变化。如果发生变化,您可能需要插入一个制表符。键入 "n" 以查找下一个匹配项。重复此操作,直到找不到更多匹配项。
vim `grep -l frame_counter *.c`让我们详细看看这个命令。grep 命令在文件集中搜索给定的单词。由于指定了 -l 参数,该命令只会列出包含该单词的文件,而不会打印匹配的行。它正在搜索的单词是 "frame_counter"。实际上,这可以是任何正则表达式。(注意:grep 用于正则表达式的规则与 Vim 不完全相同。)整个命令用反引号 (`) 括起来。这告诉 Unix shell 运行这个命令并假装结果是在命令行上键入的。所以发生的事情是 grep 命令运行并产生一个文件列表,这些文件被放在 Vim 命令行上。这将导致 Vim 编辑作为 grep 输出的文件列表。然后,您可以使用 ":next" 和 ":first" 等命令浏览文件。
:grep error_string *.c这将导致 Vim 在所有指定的文件 (
*.c
) 中搜索字符串 "error_string"。编辑器现在将打开找到匹配项的第一个文件,并将光标定位在第一个匹配行上。要转到下一个匹配行(无论它在哪个文件),使用 ":cnext" 命令。要转到上一个匹配项,使用 ":cprev" 命令。使用 ":clist" 查看所有匹配项及其位置。":grep" 命令使用外部命令 grep(在 Unix 上)或 findstr(在 Windows 上)。您可以通过设置选项 'grepprg' 来更改此设置。