Linux 如何在vim中更改整个文档中相同单词的大小写?
假设我在一个文件的多个地方有“abc”。 g~iw only只会在一个地方(光标下的单词)将其更改为“ABC”。 但如果我想在整个文档中替换它,vim中是否有一行命令Linux 如何在vim中更改整个文档中相同单词的大小写?,linux,vim,replace,case-sensitive,Linux,Vim,Replace,Case Sensitive,假设我在一个文件的多个地方有“abc”。 g~iw only只会在一个地方(光标下的单词)将其更改为“ABC”。 但如果我想在整个文档中替换它,vim中是否有一行命令 或者我需要使用sed吗?有很多方法可以做到这一点。对于这项具体任务,我更喜欢的方法是 这将用第二个字符串“abc”替换第一个字符串“abc”的每一行中出现的每一次 (感谢rampion指出我没有选择带“”的单词) 如果光标已位于要替换的单词上,则可以按“”并省略第一个字符串: :%s//ABC/g 根据Sergio Araujo
或者我需要使用sed吗?有很多方法可以做到这一点。对于这项具体任务,我更喜欢的方法是 这将用第二个字符串“abc”替换第一个字符串“abc”的每一行中出现的每一次 (感谢rampion指出我没有选择带“”的单词) 如果光标已位于要替换的单词上,则可以按“”并省略第一个字符串:
:%s//ABC/g
根据Sergio Araujo的评论,为了使整个搜索过程更加健壮,可以在搜索词中添加边界,以防止只包含字符串的错误匹配
:%s/\<abc\>/\U&/g
:%s/\/\U&/g
通过\U转换为大写并使用上一次搜索将其应用于有多种方法。对于这项具体任务,我更喜欢的方法是 这将用第二个字符串“abc”替换第一个字符串“abc”的每一行中出现的每一次 (感谢rampion指出我没有选择带“”的单词) 如果光标已位于要替换的单词上,则可以按“”并省略第一个字符串:
:%s//ABC/g
根据Sergio Araujo的评论,为了使整个搜索过程更加健壮,可以在搜索词中添加边界,以防止只包含字符串的错误匹配
:%s/\<abc\>/\U&/g
:%s/\/\U&/g
使用\U转换为大写并使用上一次搜索将其应用于阅读此处关于替换:阅读此处关于替换:我们应该使用单词边界来避免与其他单词的部分匹配,并使用替换的小技巧:
:%s/\/\U&/g
\U
表示大写,&
表示最后一次搜索。“如果光标已经在单词上,可以点击*
将单词放入模式寄存器,然后使用%s//ABC/g
。仅将光标放在单词上是不够的。我们应该使用单词边界来避免与其他单词的一部分相匹配,并避免一些替换技巧::%s/\/\U&/g
\U
表示大写,&
表示最后一次搜索。“如果光标已经在单词上,可以点击*
将单词放入模式寄存器,然后使用%s//ABC/g
。仅仅把光标放在单词上是不够的。