我有一个包含数百个 TTL (TeraTermLanguage) 文件的文件夹。
现在我想缩进所有这些文件。
我已经创建了用于缩进的 teraterm.vim,并使用 VIM 打开一个文件并执行“gg=G”,整个文件得到了正确的缩进。
但是有什么方法可以缩进文件夹中的所有文件。
我想在壳牌的帮助下做。但在 VIM 中我无法将文件缩进命令作为参数传递给 VIM。
请建议我对 VIM 中的所有文件进行缩进的最佳方式。
比从 bash 命令行编写 vim 脚本要简单得多的是在 vim 内部使用 vimscript(或者可能是从命令行编写 vim 脚本的更简单的单行代码)。我个人更喜欢使用 arg 列表来进行所有多文件操作。例如:
:args ~/src/myproject/**/*.ttl | argdo execute "normal gg=G" | update
-
args
使用通配符设置 arglist (**
将匹配当前目录以及子目录)
-
|
让我们在一行上运行多个命令
-
argdo
在每个参数上运行以下命令(它将吞掉第二个|
)
-
execute
防止normal
以免吞掉下一根管子。
-
normal
运行以下正常模式命令(您首先使用的命令)
-
update
就好像:w
,但仅在修改缓冲区时保存。
This :args ... | argdo ... | update
模式对于任何类型的项目范围文件操作都非常有用(例如通过搜索和替换%s/foo/bar/ge
或设置制服fileformat
or fileencoding
).
(其他人更喜欢使用缓冲区列表的类似模式和:bufdo
,但有了 arg 列表,我不需要担心关闭当前缓冲区或打开新的 vim 会话。)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)