title | emoji | type | topics | published | published_at | |
---|---|---|---|---|---|---|
.vimrcをMinifyしてみた |
🗜️ |
tech |
|
true |
2022-07-19 00:43 |
- example.vim
" Example function s:Hello(name) echo 'hello ' . a:name endfunction call s:Hello('minify')
- example.min.vim
fu s:A(b) ec 'hello '.a:b endf call s:A('minify')
よくMinifyの対象となっているJavascriptはMinifyしても速度に関してはほとんど意味は無いと言われています(要出典) そこでふと(VimScriptもおなじなんだろうか…きっと同じなんだろうな)と思ったのですが ちょっと検索してみてもVimScriptをMinifyしている人が見当たらないので自分で試してみました
VimScriptをMinifyしている人が見当たらない=VimScriptをMinifyする手段がない
→無いなら作る
というわけで作りましたっています永遠に
https://github.com/utubo/vim-minviml
:::message
- バグが沢山あるはずなので運用するのはおすすめできません
- vim9scriptで書いているのでnvimでは動きません :::
- vim version 9.0.47
- RasberryPi 3
対象は私が普段使っている.vimrcです
vim9scriptですがまぁ今までのvimscriptでも大差ないだろうなって結果なのでご勘弁を…
1008 lines (932 sloc) 31.5 KB
→ 752 lines (752 sloc) 20.7 KB
だいたい3/4にMinifyされています
こんな感じでそれぞれ5回測定してみました (回数が少ないですが結果が結果なのでもう十分かなってなったので)
# Minify前
cp -p .vimrc.src.vim ~/.vimrc
vim --startuptime /tmp/result_src.txt
# Minify後
cp -p .vimrc ~/.vimrc
vim --startuptime /tmp/result_min.txt
左から3つ目の数値が.vimrcのみにかかった時間です
grep vimrc$ /tmp/result_src.txt
268.183 259.320 128.362: sourcing $HOME/.vimrc
266.135 255.991 125.226: sourcing $HOME/.vimrc
261.778 251.766 121.685: sourcing $HOME/.vimrc
269.091 259.068 128.831: sourcing $HOME/.vimrc
245.664 235.524 104.874: sourcing $HOME/.vimrc
grep vimrc$ /tmp/result_min.txt
249.919 239.864 110.796: sourcing $HOME/.vimrc
269.384 259.425 129.096: sourcing $HOME/.vimrc
265.364 255.332 124.067: sourcing $HOME/.vimrc
269.745 259.758 123.824: sourcing $HOME/.vimrc
265.560 254.505 124.469: sourcing $HOME/.vimrc
誤差ですね! というか平均するとMinifyしたほうが遅いです 予想通りで一安心😇
では、効果がないのになぜMinifyするのか? それは完全に趣味です。 自分にとってはパズルとしては程よい面白さなのです。 例えば
let val1 = "str | nmap dummy dummy" | nmap A " | nmap B " | "this is comment"
を
let a="str | nmap dummy dummy"|nm A " |nm B "
にMinifyすることを考えると… オラわくわくすっぞってなってくるでしょう? zennのシンタックスハイライトも混乱しています アルデンテだった私のコードもコレを解決する頃にはすっかり伸び切ってしまいました 暇な人は是非チャレンジを⊏'ꣲ'|