Suckless-BI: Vim kódgenerálás (böjt kiértékelés)
HTML-код
- Опубликовано: 3 июн 2024
- Régóta tartoztam ezzel a videóval, a böjt "mobilapp" kiértékeléséről.
Sokan jó ötleteket mondtak erre: AWK és Python parzolás meg hasonlók, de inkább én vim-el sima mezei C kódot generálok a táblázatból - sőt még a táblázat is olvasható / szerkeszthető marad utána.
Nyilván ez nem "igazi BI", de ilyen suckless saját dolgokra (akár egy évnyi hasonló adatra is) bőven jó és sokszor nem kell több, de jó ujjgyakorlat!
#vim
#programozás
#linux
#suckless
00:00 Intro
00:58 Sarki fény
01:39 Keyshow
02:18 Nyers adatok
08:12 C-nek menteni
08:38 Hét-elválasztás
12:11 Cleanup
14:37 Függvényhívássá alakítás
18:33 Logikai egyszerűsítés
19:28 Pontosvesszők
20:15 Programkeret
21:35 Hetek megszámolása
21:58 Makró kódgenerálás (rossz)
23:51 Makró kódgenerálás
33:33 Hibajavítás
34:52 week függvény
36:34 Kipróbálás
38:37 Stat kiírás (makrós ötlet)
48:31 Hiba (megálló makró)
48:56 Stat kiírás (substitute ötlet)
52:24 Kódgen listából
52:57 Statisztika eredmények
56:20 Outro - Наука
Én a regex kifejezéseknél teljesen elvesztettem a fonalat, hogy mit hogyan és miért zárójelezünk. Hogy lehet ezt ennyire készségszinten művelni?
Egyébként viccen kívül a regex-et általában is a legkönyebben egy teljesen fulltime vim-eléssel tanulod meg.
Szoftverben általában nem használok regexet - jobbnak tartom "rendesen" parzolni a dolgokat: előbb valami minimalista történettel, ha az már tényleg nem elég, akkor mondjuk rekurzív leszállásos parzert írva rá. Viszont pont ilyen szöveg manipulációs dolgokra, ahol kézzel írod: log fájlokból a "lényeg" kiszűrése és hasonlók... na ott nagyon pöpec dolog és a kód írása közben is folyton használom.
Itt persze olyat csináltunk jópárat, hogy:
- Kijelöltem egy területet
- Csak a kijelölt területre regex-el egy global command-al szűrtem
- és a szűrés eredményén, vagy annak negáltján még egy substitute kicserélést (szintén regex-el, backrefekkel, stb.)
Igazából ezeket tudom gyorsan és készség szinten, mert gyakran használom - ennyi az egyetlen kulcsa tényleg.... azért használom gyakran, mert vim-ben nem kell ehhez menükben katintgatni, hotkey-ezgetni, hanem egy ('/') vagy esetleg pár (':%s/.../...') karakter és rögtön ott van. Nagyon sokat számít, hogy bár "más editor is tudja" ezeket, de "nincs a kezed ügyében folyamatosan minden pillanatban". A vim modalitás miatt itt igen. Viszont például a "mohó" kiértékelős *-ot, vagy a több soron átívelő match-et találó regex-et néha újra és újra meg kell nézzem: azokat ugyanis én is ritkábban használom, pedig nagyon királyak.
A másik, hogy itt is látszik, hogy a makrókat viszont könnyebben elrontom, mert azt is ritkábban használom. Ott nyilván elsőre könnyebbségnek tűnik, hogy "hiszen csak megismétli amit csinálok", de a példa jól mutatja, hogy sokszor a globál, meg substitute az jobb / gyorsabb. A makró ennél kisebb dolgokra jobb inkább - szerintem amit úgy 15 másodpercen belül tudsz kigépelni egyértelműen arra mind jobb. Itt kicsit erőltettem, mert én is akartam gyakorolni kicsit.
Szóval ezeket úgy tudod készségszinten használni - hogy gyakorlod és folyamatosan használod. Az pedig, hogy mit használsz folyamatosan az nagyban függ attól, hogy mi van a kezed ügyében és nagyon könnyen elérhető helyen - a vim és a terminál meg ilyen hely. Ugye grep-et is gyakran használok dolgokat keresni például.