Hoe dit werk, stuk vir stuk
Een reël hou die hele program bymekaar: die venster se toestand leef in die geheue en die konfigurasie leef in lêers. Alles hieronder volg daaruit.
Die reël onder alles
'n Venster hou oortjies. 'n Oortjie hou blokke. 'n Blok is 'n terminaal, 'n lêer wat geredigeer word, die lêerpaneel, 'n webblad, die stelselmonitor of die instellingskerm. Hulle verdeel in enige rigting; hulle kan genes, gesleep, van grootte verander en gesluit word volgens een stel reëls in plaas van 'n nuwe stel vir elke nuwe funksie.
Niks van daardie rangskikking word in 'n databasis gestoor nie, want daar is geen databasis nie. Wat die venster doen, leef in die geheue; wat jy besluit het, leef in lêers. Dis waarom 'n knoppie, 'n sleutel, die kieslysbalk, Cmd+K en die opdraglyn almal dieselfde aksie by naam aanroep, en waarom dit anders laat gedra byna altyd beteken jy redigeer JSON.
Dis ook waarom die beste terminaalemulator vir Mac, vir die soort werk waarvoor dit gebou is, een is wat jy kan ondersoek. As 'n instelling bestaan, is daar 'n reël in 'n lêer wat dit hou. As 'n aksie bestaan, is daar 'n naam waarmee jy dit kan aanroep.
Vyf maniere na 'n aksie, en dis dieselfde aksie
Met omtrent tweehonderd aksies is die meeste van 'n program in die praktyk weggesteek. Cmd+K is die manier wat antwoord op wat kan dit doen in plaas van doen dit.
Notes
-
Dit leer die sleutels eerder as om dit te vervang
Elke reël wys sy eie kortpad. Iemand wat twee keer na die lys gryp vir dieselfde aksie, het die sleutel teen die derde keer geleer.
-
Dit is nie 'n vyfde woordeboek nie
Elke reël loop 'n aksie by naam, presies soos die ander vier doen. 'n Toets hou die tabel waaruit dit trek teen die kern se lys van waaraan 'n sleutel gekoppel mag word, in albei rigtings: 'n aksie wat bestaan en nie daar aangebied word nie, laat die bou faal.
-
Die opdraglyn is dieselfde stel
vobuda do block.split-down, vobuda button files, vobuda theme catppuccin-mocha, vobuda send, vobuda signal, vobuda state, vobuda log. Nie 'n systoegang vir skrifte nie: die koppelvlaktoetse dryf die hele program daardeur, wat die rede is waarom dit vertrou kan word, en die rede waarom 'n agent jou venster kan herrangskik en jy presies kan lees wat dit gedoen het.
Blokke, en wat hulle belowe
'n Blok wissel oortjies terwyl sy shell loop
Sleep 'n blok aan sy kop na 'n oortjie in die strook en dit beland daar: dieselfde id, dieselfde shell, dieselfde vouer, steeds besig met wat dit ook al gedoen het. Die oortjie lig op in die aksentkleur terwyl die blok daaroor is. Daar is ook 'n aksie daarvoor, block.to-tab:2, sodat dit op 'n sleutel kan gaan en 'n toets sonder muis dit kan druk.
Groottes word onthou, en daar is 'n minimum
Per blok, en geen blok mag so smal word dat dit onbruikbaar raak nie. 'n Paneel van 200 punte is 'n paneel wat niemand kan gebruik nie.
Iets wat loop, vra eers voor dit gesluit word
By naam. Om iemand se werk een keer te verloor, kos meer vertroue as wat 'n hele funksie inbring.
Sessies kom terug, maar net as jy vra
Oortjies, blokke en elke blok se werkvouer word herstel, en dit is by verstek af: die venster open met een terminaal en niks anders totdat jy anders besluit nie. 'n Sessie wat van 'n ander masjien afkomstig is, open wat dit kan en sê wat dit nie kon nie, in plaas daarvan om blokke stilweg te laat val.
Die instellingsvouer, lêer vir lêer
Alles in ~/.config/vobuda is leesbare JSON, dopgehou terwyl die program loop. Stoor die lêer en die venster teken homself oor.
| Lêer | Wat dit bevat |
|---|---|
| settings.json | Tema, voorkoms, terminaal, shell, venster, seine. Omtrent negentig instellings oor nege afdelings |
| themes/*.json | Terminaal- en vensterkleure. 25 paletten word ingesluit, twee spesiaal gebou vir kleurblindheid |
| looks/*.json | Die venster se vorm: hoeke, skaduwees, paneelkleure, deursigtigheid. 23 word ingesluit |
| skins/*.json | Watter monitorpanele geteken word, en hoe |
| buttons.json | Die dok: knoppies, volgorde, kant, vorm, en 'n kleur vir die enkeles wat die moeite werd is om te merk |
| agents.json | Hoe 'n agent herken word en wat aan dit aangebied word |
| keys.json | Elke kortpad. Die inheemse macOS-kieslys word uit dieselfde lêer gebou |
| workspaces/*.json | 'n Projek as 'n venster: sy eie oortjies, vouer, tema en dok |
Ingeboude temas leef binne die binêre lêer en die vouer oorskryf hulle, sodat 'n opdatering nuwe kleure bring sonder om iets te oorskryf wat jy geredigeer het. Die hele vouer stoor as een argief en herstel op 'n ander Mac, en 'n kopie kan in iCloud Drive leef.
'n Stelselmonitor, gerangskik deur 'n lêer
Elf soorte panele, en watter van hulle jy sien, is 'n huid eerder as 'n skerm wat iemand een keer ontwerp het.
Notes
-
Die syfers is eerlik oor hulself
'n Waarde wat die stelsel skat eerder as meet, word met 'n tilde geteken, en ontbrekende hardeware gee 'n ontbrekende waarde eerder as 'n nul. 'n Masjien sonder 'n diskrete GPU kry nie 'n GPU-paneel wat nul persent lees nie.
-
Albei adresse, elk met sy eie kopieerknoppie
Die adrespaneel noem eers die adres wat die internet sien, en daaronder die een wat hierdie masjien op sy eie netwerk het. Dit vra hoogstens een keer elke tien minute, net terwyl die paneel op die skerm is, en die versoek dra niks oor die masjien nie.
-
Herrangskik deur te sleep, soos alles anders
Die monitor se panele, die dok se knoppies en die agentbalk se onderdele word almal opgetel en geplaas waar hulle hoort, met dieselfde gebaar. 'n Instellingsreël word opgetel aan die greep aan sy linkerkant eerder as enige plek op die reël, sodat 'n sleep wat op 'n teksveld begin jou nie verhinder om die woord te kies wat jy wou verander nie.
'n Lêer open langs die shell
Die ding waarvoor 'n terminaal jou gewoonlik elders heen stuur: 'n pad verskyn in die afvoer, twee reëls moet verander word, en tot nou toe het dit beteken jy moes na 'n redigeerder gaan en terugkom met die shell se konteks verlore.
Notes
-
Stoor is doelbewus
Niks word geskryf voordat Cmd+S gedruk word nie. 'n Redigeerder wat skryf terwyl jy tik, is 'n goeie ding in 'n notas-app en 'n slegte een langs 'n shell wat loop. Dit is 'n aksie eerder as 'n sleutelslag, wat dit ook 'n kieslysitem, 'n kortpad en 'n opdraglyn-inskrywing gee soos alles anders hier.
-
Die weierings tel net so swaar as die skryfwerk
'n Lêer wat op skyf verander het sedert dit oopgemaak is, word nie oorgeskryf nie. 'n Binêre lêer word nie as verbroude teks gewys nie. 'n Vouer word glad nie oopgemaak nie. Ongestoorde veranderinge dra 'n sigbare merk, en die sluit van 'n geredigeerde lêer vra eers.
-
'n Lêer vind
Die lêerpaneel soek by naam onder die vouer waarop jy staan, en elke resultaat sê in watter twee vouers dit sit, want 'n naam alleen kan nie twee index.ts van mekaar onderskei nie. Dit slaan node_modules, .git, target en dergelike oor, hou op by agt vlakke of tweehonderd resultate, en doen niks onder twee letters nie.
Instellings, as 'n skerm en as lêers
Nege afdelings en omtrent negentig instellings, en elkeen daarvan is 'n reël in 'n lêer wat jy ook met die hand kan redigeer.
Notes
-
Die instellings kom na die blok toe
'n Regsklik op 'n paneel beteken hierdie ding hier, verander dit. So die kies van 'n instellingsreël in 'n blok se eie kieslys open daardie afdeling oor die venster, by die hoek van die kieslys, in plaas daarvan om jou na 'n skerm met nege oortjies te stuur. Dit is 'n aksie soos alles anders: settings.here:themes, settings.here:monitor.
-
'n Klank wat jy hoor wanneer jy dit kies
Om 'n seinklank of die terminaal se klokkie te kies, speel dit. Om 'n klank uit 'n lys name te kies wat jy nie kan hoor nie, is om net 'n naam te kies.
-
Niks vra vir 'n herbegin nie
Die instellingsvouer word dopgehou, insluitend die twee dinge wat die kern besit: die macOS-kieslysbalk wat uit jou kortpadlêer gebou word, en die globale sleutel van die aftrekvenster, waar die ou sleutel vrygestel word voordat die nuwe een geregistreer word sodat twee nie tegelyk kan reageer nie. 'n Toets lees elke wenk op die instellingskerm en faal op die woord herbegin.
Praat en voorgelees word
Albei gebruik die stelsel se eie spraak, op jou masjien. Die oudio verlaat nooit die rekenaar nie.
Diktering
Cmd+Shift+V tik wat jy sê in die blok waarin jy werk, en die strook wys in twee letters in watter taal dit luister. 'n Gedikteerde frase word getik en nooit uitgevoer nie: herkenning hoor soms verkeerd, en 'n verkeerd gehoorde opdrag wat homself uitvoer, is 'n program wat dinge uitvee omdat 'n radio aan was. Langs 'n agent, waar 'n frase 'n boodskap eerder as 'n opdrag is, kan dit vanself gestuur word, en dit is 'n instelling wat gelees word op die oomblik wat die frase eindig.
Die antwoord hardop lees
Cmd+Shift+R lees die agent se laaste antwoord hardop; druk weer om dit te stop. Wat gelees word, is die antwoord, nie die skerm nie. 'n Kolpunt voor, sterretjies om 'n beklemtoonde woord, terugkwotasies om 'n naam, 'n boksreël, 'n volle pad waar die lêernaam sou volstaan: dié verdwyn, en die woorde daarbinne bly. Die lesing word deur vorms begrens eerder as deur woorde, van onder deur die agent se invoerreël en van bo deur sy logo, want 'n agent se toebehore verander met elke nuwe weergawe daarvan.
Die klein dingetjies wat besluit of jy dit behou
Die regterknoppie is ons s'n
Oral in die venster: die blok se eie kieslys binne 'n blok, die venster se buitenste een, die oortjiestrook, die dok, die gaping tussen teëls. Elke reël is 'n aksie, en die kieslys het self ook 'n aksie, block.menu, sodat 'n gebaar wat net 'n hand kan bereik nie 'n gebaar is wat niks kan toets nie. Die enigste plek wat die stelsel se kieslys behou, is 'n teksveld, waar dit knip, kopieer, plak en die woordeboek aanbied.
Open 'n vouer van enige plek af
vobuda://open?path=/some/path open 'n oortjie in daardie vouer, vanaf 'n Finder-aksie, 'n skrip of 'n ander app. macOS het geen stelselvlak-verstekterminaalinstelling nie, so dit is die eerlike weergawe van daardie funksie eerder as 'n belofte wat dit nie kan hou nie.
Soek binne 'n blok
Cmd+F. Die veld behoort aan die blok waarin dit soek, en die sluit daarvan laat die aansig waar die treffer was.
Neem die blok saam
Cmd+Shift+X kopieer 'n blok se teks, wat by die terminaal self aangevra word omdat daar met WebGL-weergawe geen teks op die bladsy is om te kies nie. Cmd+Shift+P vang die blok as 'n prent vas.
Opdateringtoetse wat nie huiswerk is nie
Die kern toets een keer per dag, in sy eie draad, en wat jy sien is 'n strook bo die uitleg eerder as oor dit, want 'n kennisgewing wat 'n terminaal bedek, is een wat mense leer om ongelees toe te maak. Niks installeer homself nie: vir 'n agent is die opdatering 'n opdrag wat in die aktiewe blok getik word waar sy afvoer sigbaar is, en vir vobuda open die knoppie die vrystellingsblad.
Veertig tale, en 'n gids in elkeen
Insluitend die macOS-kieslysbalk, wat die stelsel in die kern bou. Arabies en Hebreeus spieël die hele venster om, behalwe die terminaal self, waar spieëling die afvoer en paaie onleesbaar sou maak. 'n Vertaalsleutel is die Engelse string, sodat 'n onvertaalde string terugval na leesbare Engels eerder as na 'n leë veld of 'n identifiseerder.
Probeer die dele waaroor jy pas gelees het
Dit open met een terminaalblok en niks anders nie. Alles hierbo is iets wat jy aanskakel wanneer jy dit wil hê.
curl -fsSL https://vobuda.com/install.sh | sh