読者です 読者をやめる 読者になる 読者になる

ゆるめ

ゆるめなのは公開範囲です。

Firefox で開いたソースファイル名を短くする

Firefox で外部エディタを使ってソースを表示させると、ソースのファイル名がページのタイトルになっています。

長いタイトルだとファイル名も長くなります。今使っているエディタのタブがファイル名の長さに合わせて伸びる仕様で、その結果ソースファイルのタブがとんでもない存在感になるので、どうにかしてファイル名を短くしたいなと思いました。

Firefox 側でそれっぽい設定は無くて、バッチファイル等で何とかするのがスタンダードみたいですが、バッチファイルでうまいことやれる自信がないので、PowerShell で書きました。

f:id:pacochi:20170215151126p:plain

元のファイル名から先頭八文字分くらい貰って、現在時刻付きのファイル名に変更してから開きます。

cd $env:TEMP

# スペースで区切られてきた
$longfile = if ($args) { Split-Path ($args -join " ") -Leaf } else { '' }
# パス結合うまくいかなかったら Temp フォルダ内の最新ファイル拾ってくる
if (!$longfile -or !(Test-Path $longfile)) { $longfile = (dir | sort LastWriteTime -Desc)[0].Name }
# タイトル同じで中身違うソースを複数開きたい
# とりあえず開いた時刻で差別化
$now = Get-Date -Format "ddHHmmss"
# 絵文字とかが切れないように
$shortfile = $longfile -replace '^(([\uD800-\uDBFF][\uDC00-\uDFFF]|[^\uD800-\uDFFF]){1,8}).*$',"`${1}${now}.htm"
ren -LiteralPath $longfile -NewName $shortfile

& "エディタのパス" "`"${env:TEMP}\${shortfile}`""

about:config の view_source.editor.pathPowerShell のパスを入れて、view_source.editor.args-windowstyle Minimized -File "ps1 ファイルのパス" と入れておいたら動きました。

一瞬 PowerShell のウィンドウが表示されるのですが、抑止方法を調べたらあんまりカジュアルじゃない方法ばかり出てくるので、そのままで行くことにしました。

余談ですが、作成途中で Temp フォルダを確認したらごみが 300MB くらいあって、Temp フォルダの掃除はちょくちょくしないといけないなとしみじみ思いました。

追記: 半角カナの混じったタイトルや角括弧を含んだタイトルのページをうまく開けなかったので修正しました。