Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/vim/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用argdo和带有vim的set_Vim_Args_Tabstop - Fatal编程技术网

使用argdo和带有vim的set

使用argdo和带有vim的set,vim,args,tabstop,Vim,Args,Tabstop,我正在尝试对多个文件运行命令“settabstop=4”,然后是“retab” 我已经到了这样得到我的arglist的地步 args ~/workspace/**/*.java 当我只是使用args命令查看文件时,我可以看到这很有效。现在,当我试图对其运行“settabstop=4”命令时,我无法得到这两个选项的正确组合。我试过了 argdo "set tabstop=4" 然后 argdo "update" 但它似乎从未应用过更新,而且我确信会有更新,因为我可以单独转到其中一个文件并

我正在尝试对多个文件运行命令“settabstop=4”,然后是“retab”

我已经到了这样得到我的arglist的地步

args ~/workspace/**/*.java
当我只是使用args命令查看文件时,我可以看到这很有效。现在,当我试图对其运行“settabstop=4”命令时,我无法得到这两个选项的正确组合。我试过了

argdo "set tabstop=4" 
然后

argdo "update" 
但它似乎从未应用过更新,而且我确信会有更新,因为我可以单独转到其中一个文件并运行命令,它会更改文件。我试过不同的组合,比如

argdo execute "set tabstop=4"

它似乎什么也没做。任何帮助都将不胜感激

语法为
:argdo
(根据
:help

不涉及报价。要一次性执行多个命令,只需使用
|
将它们分开即可:

:argdo set tabstop=4 | retab | update

:argdo
(根据
:help
)的语法为

不涉及报价。要一次性执行多个命令,只需使用
|
将它们分开即可:

:argdo set tabstop=4 | retab | update

“argdo retab”怎么样“argdo retab”怎么样?我试过这样做,它会更新文件-但由于某种原因,当我在vim中单独查看文件时(缩进已从argdo命令更改),它的效果与只对文件执行set tabstop=4不同,即运行该命令后,我单独转到一个文件并运行“set tabstop=4”,它再次被更改。命令
:retab
很复杂,您可能需要传递一个数字(
:retab 8
),使其生效,还可能添加
当原始文件使用空格进行缩进时。最好在单个缓冲区中找到正确的命令,然后通过
:argdo
应用该命令。因此,如果我访问的文件可能会因缩进而出错,我只需执行:set tabstop=4并查看所有内容是否都适合,因此我确信该命令在每个文件中都能正常工作,但是现在我已经尝试过了:argdo set tabstop=4 | update,它的效果仍然不一样(它似乎为tabstop添加了更大的数字)。实际上,我按照您的建议重新设置了8,我想我需要处理这个问题,正如您所说的
:set tabstop=…
只是更改Vim为制表符显示的空间量;它不会改变文件本身!只有
:retab
可以这样做!所以我试着这样做,它确实会更新文件-但由于某种原因,当我在vim中单独查看文件时(缩进已从argdo命令更改),它的效果与只对文件执行set tabstop=4的效果不同,也就是说,一旦我运行该命令,然后,我就单独转到一个文件并运行“set tabstop=4”它再次被更改。
:retab
命令很复杂,您可能需要传递一个数字(
:retab 8
)使其生效,也可能需要添加
当原始文件使用空格进行缩进时。最好在单个缓冲区中找到正确的命令,然后通过
:argdo
应用该命令。因此,如果我访问的文件可能会因缩进而出错,我只需执行:set tabstop=4并查看所有内容是否都适合,因此我确信该命令在每个文件中都能正常工作,但是现在我已经尝试过了:argdo set tabstop=4 | update,它的效果仍然不一样(它似乎为tabstop添加了更大的数字)。实际上,我按照您的建议重新设置了8,我想我需要处理这个问题,正如您所说的
:set tabstop=…
只是更改Vim为制表符显示的空间量;它不会改变文件本身!只有
:retab
可以这样做!