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

何らかの理由で、最後の機能が常に機能するわけではありません。この場合は、コマンドラインで手動で最後の行(数字の挿入)を実行します。

ベストアンサー1

おすすめ記事