vim - ko tāds dīvains?

29. oktobrī, 6 komentāri

Šī ir izvērstāka versija šim manam tvitera pavediem.

Ir tāds teksta redaktors vim. Tas ir īpašs un ir pieejams teju uz katras uz unix (un ne tikai) bāzētas operētājsistēmas pēc noklusējuma. Stackoverflow populārākais jautājums ir par to, kā no tā iziet.

Lai arī to kā teksta redaktoru ierobežotā formā var izmantot klasiskajā režīmā, daudz spēcīgāks un spējīgāks tas kļūst visos pārējos, par kuriem tagad nerunāsim.

Pats raksts
Pats raksts

Problēma, kuru vi autors tālajā 1978. gadā mēģināja atrisināt, bija tam laikam netriviāla.

Sāksim ar to, ka terminālis, pie kura viņš ikdienā sēdēja un nodarbojās ar teksta ievadi, pats par sevi neko neprata. Tā mērķis bija uz klaviatūras saspaidīto paņemt un nosūtīt uz attālinātu meinfreimu, bet pretī saņemt ekrāna saturu. Tas nozīmē, ka, ja Tu nosūti burtiņu 'a' uz meinfreimu, tad uz ekrāna tas parādīsies tikai tad, kad tas tur tiks saņemts, uzzīmēts un atsūtīts tev atpakaļ.

Tā teikt - tev pa rokai bija klaviatūra un ekrāns, bet dators, kurā tu ievadi un no kura izvadi, atradās ļoti sūdīga savienojuma otrā galā. Katrs taustiņa nospiediens aizsūtās uz to galu, dators tur kādu brīdi padomā, izlemj ko sūtīt atpakaļ, tad displejs to saņemto attēlo.

Pats interfeiss ir ļoti aizraujošs no mūsdienu skatu punkta, taču tad šis ieraksts pārvērstos kaut kādā monstrā.

Raugi, sēžot savā krēslā, tas sūdīgais savienojums izmērāmās vienībās bija 300 bauds, jeb tolaik (FSK modulācija) 300 bps, kur "b" ir biti, nevis baiti. Ne sevišķi viltīgu aprēķinu rezultātā sanāk ap 37 baitiem sekundē. Viens simbols, atkal jau rupji rēķinot, ir viens baits (atkal . Šī termināla ekrāna izmērs bija 12x80 simboli, kas jau vien sanāk 960 baiti (atkal - neliels tuvinājums). Tas nozīmē, ka pilna ekrāna pārzīmēšana prasa pusminūti labos apstākļos. Viena ekrāna rindiņa - divas sekundes.

Tas ir ļoti nepieņemami pilna ekrāna teksta redaktoriem. Kamēr mēs runājam par komandrindu, kad viss, ko tu nosūti un saņem ir nedaudz teksta, tad iedomājies, kas jāpārsūta, ja pēkšņi tu vēlies visas tās vājprātīgās 12 teksta rindiņas padzīt uz leju.

Respektīvi, tolaik viss ņudzēja un cilvēki augstskolās darīja visādas lietas, lai apdzīvotu jauniegūto pieejamo datortehniku. Teksta rediģēšana, protams, bija viena no Svarīgajām Lietām.

Nu, un tad arī loģiski šķita, ka vienīgais patiesais ceļš ir teksta rediģēšana ar komandām, minimizējot ekrāna pārzīmēšanas nepieciešamību. Tā vietā, lai uzrakstītu, pielabotu, izdzēstu, tu saraksti komandas. Tās pa modemu sūtās prom, rezultāts saņemās atpakaļ. Kamēr tas notiek, tu sēdi tiktokā.

Zemāk ir redzama septiņdesmito gadu beigu termināla ADM-A3 klaviatūra (tastatūra?). Tieši uz tādas savu ex un vēlāk arī vi programmēja tā autors.

Termināļa ADM-3A klaviatūra
Termināļa ADM-3A klaviatūra

Kā uzskatāmi redzams, vi biežāk izmantoto taustiņu izvēle nav nekāda nejaušība. Tie tika izvēlēti tieši sava ergonomiskā un ērtā novietojuma dēļ, nevis kau tkādā IT speciālistu sanāksmē hihenē.

Piemēram, esc taustiņš, kurš pārslēdzas no vizuālā režīma uz standarta režīmu, ir pavisam pa pirkstam, ne? Mūsdienās tur atrodas tabulācijas taustiņš. IBM PC klaviatūras galu galā uzvarēja.

Tie, kuri ikdienā aktīvi lieto vim, esc taustiņa funkcionalitāti piedefinē capslock, kuru vispār retais cilvēks izmanto. Savukārt tie, kuri zin, ka kādreiz ctrl taustiņš bija ērtākā vietā, capslock pārveido par ctrl un dzīvo bēdu nezinādami. Līdz brīdim, kad jāpiesēžas pie sveša datora.

Tiem, kuri izpētīja attēlu, ir skaidrs, kāpēc kā kursora pārvietošanas taustiņi ir tieši h, j, k un l. Ja uz vi autora termināļa tur nebūtu uzzīmētas bultiņas, tad, iespējams, mēs dzīvotu daudz skaistākā un ērtākā pasaulē, kur vispārpieņemts, ka kursora pārvietošanai jāizmanto wasd vai ijkl.

Vispārpieņemts tik ļoti, ka absolūti visur, kur ir nepieciešama alternatīva kursora taustiņiem (izņemot, protams, geimerus), tie ir tieši hjkl un nekas cits. Iedomājies - 44 gadus. Arī webā - piemēram, tanī pašā Gmail iezīmēt iepriekšējo vai nākamo e-pastu var tieši ar j un k.

Klaviatūras pirmajā rindā kā nākamais aiz 0 ir :. Tā nu iegājies, ka šis tiek izmantots gan iekš vi, gan tā mazā brāļa ex kā komandu ievades prefikss. Mūsdienās jau atkal esam apdalīti un kolu jāievada caur shift taustiņu.

Starp citu, par ex runājot. Tas ir teksta redaktors, kurā tu operē ar vienu pašu rindiņu. vi principā ir tā paša ex vizuālais režīms.

`ex` redaktora sesijas piemērs
`ex` redaktora sesijas piemērs

Ja neskaita to, ka ergonomiskās kvalitātes šim terminālam nebija, vismaz taustiņi bija pa rokai...

Ja nu kādreiz vajag kādu radošāku veidu kā iziet no vim, tad kaudzīti var atrast te.

Golang

14. janvārī, 12 komentāri

Mācīties, mācīties un vēlreiz mācīties. Diez, kurš to teica? Go - valoda, kura neaizbiedēja un pat atrada savu pielietojumu manā ikdienā. Lasīt visu →

Jinjer - Pisces

2019. gada 21. martā, 2 komentāri

Atcerējos jaunību, meklējot nedaudz papildinfo, šokēts uzzināju, ka tolaik dzirdētais Otep nav duets, un vispār - ikgadējais ieraksts blogā :) Lasīt visu →

Šķūnis

2018. gada 3. jūlijā, 18 komentāri

Saimniecības ēka - no nekā līdz ugunsmūrim. Kā es apguvu rakšanu, betonēšanu, armatūras siešanu, veidņu taisīšanu, mūrēšanu, sastatņu likšanu un vēl visu ko. Lasīt visu →