使用 vidir 重命名文件 (moreutils)

使用 vidir 重命名文件 (moreutils)

我正在尝试使用 moreutils 包中的 vidir,但遇到以下问题:当我加载文件时,我想用 vidir 重命名,如下所示:

$ vidir

或者像这样:

$ find -type f | vidir --verbose -

vidir 显示一个数字、一个选项卡和文件的完整路径,如下所示:

1   ./file1
2   ./file2
3   ./file3

或者如果它不是当前文件夹,如下所示:

1   ./folder/subfolder1/file1
2   ./folder/subfolder1/file2
3   ./folder/subfolder1/file3

现在,我看到了一些优点,例如能够通过交换数字或编辑文件夹名称来交换文件名,但我只想重命名同一文件夹中的文件,也许删除一些文件。我的问题是,当我使用正则表达式重命名文件名时,所有内容都可能受到影响,即数字、斜线、点和制表符。我尝试在开始时删除它们进行修改,然后重建它们,但当我保存文件并关闭编辑器时,vidir 抱怨。

那么如何规避这个问题呢?我错过了什么吗?

编辑:我在开始修改之前再次尝试删除 vidir 前缀,并在完成后将其添加回来,它似乎正在工作。这些是我在 Vim 中使用的函数:

" Remove vidir prefix
function! VidirRemovePrefix()
    :%s/\d*\t.\//
endfunction    

" Delete line
function! VidirDeleteLine()
    :s/^\d*\t.*//
endfunction  

" Add vidir prefix back
function! VidirAddPrefix()
    :%s /^/\t.\//
    execute "normal! ggVG"   
    :let i=1 | '<,'>g/^/ s//\=i . ""/ | let i+=1
endfunction

由于某种原因,最后一个功能并不总是有效。如果是这种情况,那么我在命令行中手动执行最后一行(用于插入数字)。

相关内容