Ostatnimi czasy złapałem się na tym, że moje środowisko stopuje mnie w byciu naprawdę produktywnym.

Zaczęło się od edytora.

Zaskakujące, bo kiedy pierwszy raz przerzuciłem się na Sublime 3 byłem zszokowany tym, jak bardzo przyśpieszyła moja praca, i jak odpowiednie doinstalowanie wtyczek sprawiło, że mój edytor przekształcił się w terminatora do programowania. Przeskakiwanie między plikami, shell:inline: git blame po jednym kliknięciu, synchronizacja z latex’em, fuzzy search i mnóstwo innych dodatków sprawiły, że nie myślałem, bym kiedykolwiek miał z tego zrezygnować.

A potem poznałem vim’a i świat wywrócił do góry nogami.

Problem z vimem jednakże jest taki, że najlepiej działa w terminalu. A to oznacza kolejne okno, lub kolejny panel terminala odpalony jednocześnie. W moim przypadku podczas programowania odpalone mam cztery instancje terminala:

  1. server aplikacji z logami.
  2. czysty terminal, na komendy shella, oraz zarządzanie repozytorium
  3. konsolę ruby
  4. edytor vim

Na początku korzystałem z wbudowanego terminala maca i jego funkcji do otwierania wielu kart. Niemniej, często zależy mi na tym, by na jednym ekranie jednocześnie widzieć kilka ekranów, na przykład testy i ich logi. Głównie z tego powodu przerzuciłem się na inną wersję terminala, iterm2 i zacząłem dzielić ekrany na panele. Na jednym ekranie wyglądało to mniej więcej tak:

screenshot

Jak widać nie jest to najbardziej produktywne środowisko, nie ma też wiele miejsca dla edytora, ani żadnego z pozostałych okien, przez co długie linie tekstu albo nie są wyświetlane w całości, albo zawijają się, zaciemniając strukturę czytanych danych. Bardzo utrudnia to na przykład rozwiązywanie konfliktów w projektach, oraz rozprasza przy korzystaniu z edytora.

Z tych powodów zdecydowałem się na wydzielenie vima do osobnej karty i to rozwiązanie wydaje się świetne.

screenshot

Jeden problem, który tu występuje, to praca z wieloma projektami i wyłączanie komputera. Za każdym razem, kiedy przełączam się na inny projekt, muszę uruchamiać całe środowisko po kolei od nowa. To samo ma miejsce w przypadku uruchamiania komputera lub przelogowania się na inne konto. W skrócie – VIM bardzo szybko zaczął przyzwyczajać mnie do faktu, że wszystko mogę robić znacznie sprawniej i szybciej niż do tej pory, przez co zaczęły rzucać mi się w oczy niedoskonałości pozostałych narzędzi, z których korzystałem. Stąd aliasy w shellu na komendy gita, schemat kolorów jak w sublime i tak dalej.

Zacząłem szukać takiego narzędzia, w którym mógłbym uruchomić całą sesję projektową jedną komendą. I tutaj pojawia się tmux.

Dlaczego tmux?

Tmux to narzędzie do zarządzania sesjami terminala, które pozwala na zapisywanie sesji, pracę przez ssh, uruchamianie całego środowiska z terminala i wiele innych konsolowych udoskonaleń. Czyli dokładnie to, czego potrzebuję.

Tmux, podobnie do vim lub emacs, posiada specjalny skrót, który oznacza „zrób coś”, który nadaje następnemu klawiszowi specjalne znaczenie. Nazywany jest inline:shell:leader key i domyślnie jest to kombinacja ctrl+b – tak okropnie niewygodna, że po prostu musiałem to zmienić natychmiast.

shell: podstawowe-komendy-tmux

W Tmux, ta sama konfiguracja okien co powyżej wygląda następująco:

screenshot

Niby niewielka różnica, niemniej panele są oddzielone jedynie jedno-pixelowymi liniami, dzięki czemu na ekranie jest nieco więcej miejsca na właściwą treść. Poza tym dolny pasek jest całkowicie konfigurowalny, dzięki czemu mogę pracować na pełnym ekranie, nie potrzebując paska górnego.

I najważniejsze. Po odrobinie konfiguracji jedną komendą mogę uruchomić całe środowisko. A kiedy nagle na chwilę muszę przełączyć się na inny projekt, mogę jedną komendą odłączyć sesję, odpalić drugi projekt, po czym błyskawicznie wrócić do miejsca, w którym przerwałem pracę. Zero klikania myszką. Codziennie co najmniej 15 minut oszczędzone! Cudowne!

Udostępniłem moją konfigurację na githubie. Jestem ciekaw, co myślisz o takiej konfiguracji środowiska. Z czego Ty korzystasz?

Źródła:

Sekrety Produktywności

Sekrety Produktywności

DARMOWE szkolenie mailingowe! 10 porad jak zwiększyć produktywność w programowaniu.

Dziękujemy za zapisanie się na kurs. Wkrótce otrzymasz wiadomość email z potwierdzeniem zapisu.

Polub nas na facebooku!

Jeśli podoba Ci się ten blog, polub nas na facebooku! Dzięki temu nie ominą Cię nowe treści!

You have Successfully Subscribed!