Automatizuokite tmux su tmuxinator, 3 dalis

2014 birželio 16 d. Tmux ir Tmuxinator

Jeigu šiek tiek primiršote ar neskaitėte praėjusių straipsnių, tai trumpai paminėsiu, kad pasakojau apie tmux programą, kuri iš esmės yra geresnė screen alternatyvą - automatizavimą. Kodėl geresnė nei screen? Siūlau pasiskaityti pirmame straipsnyje. O antrame straipsnyje pasakojau, kad tmuxinator gali atlikti ne vieną komandą kažkuriam langui, bet kelias. Kas dar gerai, kad iš esmės į langus siunčiamos ne komandos, o klavišų paspaudimai. Taigi, dabar magijos gali būti dar daugiau!

Šiame straipsnyje papasakosiu apie labai naudingą dalyką - automatinį langų skaldymą. Standartiškai tokia konfigūracijos sintaksė:

windows:
    - lango-vardas:
        panes:
            - skydelio-pavadinimas:
                - komanda 1
                - komanda 2
                - komanda 3
            - kitas-skydelis
                - komanda 1
                - komanda 2

Suskaldo langą į dvi lygias dalis. Pagal nutylėjimą skaldymas įvyks per lango aukštį. Dar vienas skydelis įrašytas žemiau suskaldytų langą į tris dalis. Tai tikrai patogu, jeigu patinka toks išdėstymas.

Dirbdamas su Django langą dalinu taip: 80% lango VIM redaktoriui, o apačioje du langai python manage.py runserver ir dar vienas langas kokiems nors sass ar TODO sąrašui skaityti. Išbandykit, tikrai patogu!

 Ekranas suskaldytas su tmuxinator

Deja, bet tmuxinator nėra labai draugiškas langų skaldymui. Ši galimybė realiai egzistuoja tik neapsikentusių naudotojų dėka (kaip supratot - per „hack’us“).

Pirmiausiai teks atsidaryti tuščią tmux langą ir susiskaldyti į taip kaip Jūs norite. Sukurti skydeliai gali būti tušti, mums aktualus tik skydelių dydis. Lango skydelių dydį galite sužinoti komandos pagalba:

$ tmux list-windows

Gausite kažką panašaus į:

0: blog* (3 panes) [175x53] [layout 6535,175x53,0,0[175x43,0,0,8,175x9,0,44{65x9,0,44,14,109x9,66,44,15}]] @6 (active)

Iš šio painaus užrašo mums reikalinga tik layout dalis. Ją nukopijuosime į savo lango konfigūracijos YAML dalį:

windows:
    - lango-vardas:
        layout: 6535,175x53,0,0[175x43,0,0,8,175x9,0,44{65x9,0,44,14,109x9,66,44,15}]
        panes:
            - skydelio-pavadinimas: komanda
            - kitas-skydelis: komanda
            - trecias-skydelis: komanda

Viską sukonfigūravus galime leisti savo automatizuotą kūrimą:

$ tuxinator start projekto-vardas

Iš patirties galiu pasakyti, kad sugaištas laikas su tmuxinator atsiperka labai greitai, jeigu dažnai programuojate tą patį. Ypatingai kai kalbame apie programavimą, tai laiko sutaupyti galima labai daug:

  • Galima pasiruošti greitai sluoksnius su kuriais patogu dirbti prie vienų projektų, kitus prie kitų.
  • Galima paleisti projektui startuoti reikalingas komandas.
  • Galima atsinaujinti projektą prieš pradedant su juo dirbti.

Na, o jeigu yra kažkokių klausimų, galbūt padėčiau atsakyti. Tai paskutinis straipsnis apie tmuxinator. Projekto kodą galima rasti Github, o dokumentacijos dar teks palaukti ;)