如何在Vim中替换文件夹内所有文件中的一个单词?

7

我知道通过输入以下命令::%s/iwanthis/replacedbythis/g 可以更改文件中所有匹配的单词。如何对文件夹中的所有文件执行相同的操作呢?

(实际上要替换很多像这样的单词:padding-bottom:5px;)

3个回答

10

使用Vim打开所有文件并将其加载到缓冲区中,然后使用bufdo一次性在所有缓冲区中进行替换:

% vim *
... when vim has loaded:
:bufdo %s/iwanthis/replacedbythis/g | w
| w会将每个文件写回磁盘。

0
你可以尝试使用 greplace.vim,它可以为你提供一个缓冲区,其中包含跨多个文件匹配给定正则表达式的所有行,然后你可以在缓冲区中修改内容,最后调用另一个 greplace 命令将所有更改更新到这些文件中。

0

希望这对那些不使用vim的人有所帮助


find /your_path/to/folder -type f -exec sed -i 's/text_to_be_replaced/new_text/g' {} \;

此代码将替换指定路径(/your_path/to/folder)中文本的所有出现。希望对某些人有所帮助。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接