如何在 Vim 中查找和替换文本 [附 Gif 示例] |
您所在的位置:网站首页 › 搜索分隔符 › 如何在 Vim 中查找和替换文本 [附 Gif 示例] |
如何在 Vim 中查找和替换文本 [附 Gif 示例]
以下是一些示例,展示如何使用强大的 Vim 编辑器中的搜索和替换功能。 如何在 Vim 中搜索文本? 按/键,输入搜索文本,然后按 Enter。这就像 less 命令一样。 但这种查找文本的方法不允许您替换找到的结果。 让我分享如何在 Vim 中查找和替换。 :%s/foo/bar/gci上面的命令将运行不区分大小写的搜索,以查找搜索词 (foo) 与新词 (bar) 的所有匹配项。使用标志 c,它要求在替换任何替换之前进行确认。 让我更详细地解释事情。 使用替换命令在 Vim 中查找和替换文本我想您已经知道要在 Vim 中运行命令,您必须处于正常模式(也称为命令模式)。按 Esc 键进入该模式。 Vim 有一个方便的命令 :substitue,也可以与较短版本的 :s 一起使用。 以下是替代命令的一般语法: :[range]s/{pattern}/{string}/[flags] [count]让我们分解一下这个语法。方括号“[]”之间的任何内容都是可选的。 range :如果您想要在所述行之间进行替换,可以使用这部分语法。 如果您没有提及范围,它将仅替换当前行上的文本。 (我分享了一个范围表) pattern :您可以在此处指定要替换的文本。 string :这是将替换模式的字符串。 flags :要替换所有出现的搜索模式,请使用 g 标志。您可以指定是否希望匹配忽略大小写,使用 i 标志。要手动确认每个搜索和替换操作,请使用 c 标志。 count :要替换文本的行数。 .当前行 $最后一行 %所有线路 x行号x .,+x从当前行到附加 x 行 在 Vim 中查找和替换的示例让我们看几个示例,演示 Vim 中替代命令的用法。 下面是我将用来演示 Vim 中替代命令用法的文件的屏幕截图。 基本文本替换对于此示例,我确保字符串“Hello”在至少一行中出现多次,并在文件中出现多次。 我想用字符串“HI”替换“Hello”。下面是执行此操作的 Vim 命令: :%s/Hello/HI/g替换为确认要替换文本,但希望每次执行时都得到确认,可以在替换命令中使用 c。 :%s/Hello/HI/gc正如您从视频中看到的,Vim 每次替换模式之前都会要求我确认。 您还会看到类似于以下行的提示: replace with HI (y/n/a/q/l/^E/^Y)?提示中的选项具有以下含义: 是:是的 否:没有 答:全部 q:退出而不替换,但一旦您已经替换了文本,它就不会撤消 l:替换这个并退出(想想“最后”) ^E:向上滚动(在 vim-tiny 中不起作用) ^Y:向下滚动(在 vim-tiny 中不起作用) 不区分大小写的替换当您想要替换文本时,无论它是大写还是小写,在这种情况下(哈哈)您应该在替换命令中使用 i 标志。 :%s/hello/HI/gi如果您注意到,所有出现的“hello”或“Hello”甚至“hELLO”都会被替换为“HI”。这是不区分大小写的模式替换。 每个“hello”都被替换为“HI”,尽管大多数“hello”中都有一个大写的“H”。 在 Vim 中替换单行文本要替换单行中的文本,我们需要指定将替换范围限制为当前行的范围。 为此,最好使用 . 范围描述符。 :.s/Hello/HI/g正如您所看到的,只有第一行中的模式被替换,因为我使用了句点“.”。范围描述符。 额外提示:使用不同的分隔符查看替换命令的语法,我提到模式和字符串由正斜杠“/”分隔。 但是,如果您的文本在模式/字符串中包含大量正斜杠(例如路径),并且在文件中的各处重复,该怎么办?转义正斜杠可能很乏味,有时很容易被错过。 因此,您可以使用不同的分隔符,而不是使用正斜杠字符作为分隔符。 我见过使用的一些分隔符是#、_ 和@。 这是一个 gif,演示了使用 @ 作为分隔符而不是 /。 结论替换文本是很常见的情况,Vim 为您提供了一种强大的方法来搜索和用字符串替换模式。您甚至可以在 Vim 的替换命令中混合使用正则表达式。 如果您不仅有兴趣学习 Vim 基础知识,我强烈建议您使用 Jovica Ilic 的这个程序。 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |