我正在尝试使用 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
由于某种原因,最后一个功能并不总是有效。如果是这种情况,那么我在命令行中手动执行最后一行(用于插入数字)。