gpt4 book ai didi

vim - 如何在 Vim 中写入连续命名的文件?

转载 作者:行者123 更新时间:2023-12-04 19:19:37 24 4
gpt4 key购买 nike

我已经需要这个几次了,直到现在我才想到,也许 Vim 可以为我做这件事。我经常保存编号很多且名称无关紧要的文件(无论如何它们都是临时的)。

我有一个充满文件的目录:file001.txt、file002.txt ...(它们并没有真正命名为“filexxx.txt”——但为了讨论......)。我经常保存一个新文件,并将其命名为例如 file434.txt。现在因为这是我经常做的事情,所以我想跳过命名检查部分。

有没有办法制作vim脚本来检查目录中的最后一个filexxx.txt,并将当前缓冲区保存为filexxx+1。我应该如何去写这样的东西?有没有人做过这样的事情?

所有建议表示赞赏。

最佳答案

将以下内容放入 ~/.vim/plugin/nextunused.vim
"nextunused.vim

"找到与给定模式匹配的下一个未使用的文件名
"从 0 开始计数。该模式由 printf() 使用,因此使用 %d 表示
"一个整数,%03d 表示一个用长度为 3 的零填充的整数。
功能! GetNextUnused( 模式 )
让我 = 0
而文件可读(printf(a:模式,我))
让我 += 1
最后
返回 printf(a:pattern,i)
端功能

"编辑与给定模式匹配的下一个未使用的文件名
命令! -nargs=1 EditNextUnused :execute ':e ' 。 GetNextUnused(' ')
"将当前缓冲区写入下一个与给定模式匹配的未使用文件名
命令! -nargs=1 WriteNextUnused :execute ':w ' 。 GetNextUnused(' ')

"要使用,请尝试
":EditNextUnused temp%d.txt

“或者

":WriteNextUnused path/to/file%03d.extension


因此,如果您在 temp0000.txt 所在的目录中通过 temp0100.txt都已经使用了
你做 :WriteNextUnused temp%04d.txt ,它将当前缓冲区写入 temp0101.txt .

关于vim - 如何在 Vim 中写入连续命名的文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/813768/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com