如何在多个缓冲区/选项卡上运行命令以删除尾随空格?

ste*_*obe 10 regex vim scripting replace

我有一个命令在vim中整理代码中过多的空格:

" to tidy excess whitespace
map <leader>1 :execute ':%s#\s\+$##g'<CR>
Run Code Online (Sandbox Code Playgroud)

我的问题是,如果我打开了10个选项卡或缓冲区,我该如何将这个命令应用于所有这些命令,而不是仅仅去每个选项卡并应用命令.

Gre*_*con 8

使用bufdo,windo和tabdo查看此vim提示.

假设您的所有缓冲区都在缓冲区列表中,那么您的地图就可以如此简单

" to tidy excess whitespace
map <leader>1 :execute ':bufdo! %s#\s\+$##g'<CR>
Run Code Online (Sandbox Code Playgroud)


Hab*_*abi 7

未经测试,但应该这样做:

:tabdo %s/SEARCH/REPLACE/ge | update
Run Code Online (Sandbox Code Playgroud)

如果文件被命令修改,则SEARCH在所有选项卡中替换REPLACE并写入文件,如果未找到任何内容,则不显示错误消息.

如果您想在每次更换前询问,请在标志中添加"c".

另见:help :argdo,:help :windo:help :bufdo.