2023年10月17日火曜日

rename時に特定の文字列を選択 or 数値を抽出

ファイル整理のために複数のファイルをリネームする際、「特定の文字列を別の文字列にする」「数値だけ取り出す」といった同じような操作を繰り返し行うことが多い。その作業を簡略化する。

準備

以下を編集して取込。

_Command = {
keywordrename = *rename "%R",%*input("%R" -title:"名前変更" -mode:e -select:l -k *find "%*arg(1)" -back)
intrename = *ifmatch 0,0%T %: *rename "%R",%*input("%*regexp("%R","/[^0-9]//g")" -title:"名前変更" -mode:e -select:fs) %: *stop
    *rename "%R",%*input("%*regexp("%Y","/[^0-9]//g").%T" -title:"名前変更" -mode:e -select:fs)
}

K_renamemode = {
R    ,*execute ,%si"renameexec"
ESC    ,*mapkey delete,K_renamemode %: *linemessage RENAME MODE END
0    ,*linemessage 通常のリネーム %: *string i,renameexec=%%K"@R"
1    ,*linemessage 指定したキーワードを選択状態に %: *string i,hoge= %"範囲選択するキーワード"%E %: *string i,renameexec=*keywordrename %%si"hoge"
2    ,*linemessage 数値を抽出 %: *string i,renameexec=*intrename
}

やり方

以下のコマンドを実行すると、Renameモードになる。

*mapkey use,K_renamemode %: *string i,renameexec=%%K"@R" %: *linemessage RENAME MODE [0-2]CHANGE MODE [R]RENAME [ESC]QUIT

キーバインドは以下の通り。

  • [R]:リネーム
  • [0]:通常のリネーム
  • [1]:指定したキーワードを選択状態に
  • [2]:数値を抽出
  • [ESC]:Renameモード終了

指定したキーワードを選択状態に

[1]を押すと表示される一行編集にキーワードを入力する。

[R]でリネームをする際、入力したキーワードが選択状態になる。

数値を抽出

[R]でリネームする際、ファイル名から抽出した数値が入力された状態になる。

0 件のコメント:

コメントを投稿