Sytuacja kobiet w IT w 2024 roku
12.09.20193 min
Alec Brunelle

Alec Brunelle Senior Software EngineerYolk AI

Dlaczego używam Fisha zamiast Basha i Zsh

Poznaj przydatne funkcje powłoki Fish, które sprawiają, że korzystanie z niej to przyjemność.

Dlaczego używam Fisha zamiast Basha i Zsh

Jedną z głównych zalet produktów Apple’a jest to, że te rzeczy „po prostu działają”. Większość osób korzystających z ich produktów jest na bieżąco z nowościami, które wypuszczają, a Apple spędza niewiele czasu na czymkolwiek innym, niż dostarczaniu nowych funkcji.

Funkcje, których dostarczają, są dopracowane, mają rozsądne wartości domyślne i mają konkretne cele. Tak też powstała powłoka Fish. Nie marnujesz czasu na przeszukiwanie sieci w poszukiwaniu plików konfiguracyjnych udostępnionych przez innych, najlepszych wtyczek lub dowiadywaniu się jak uzyskać integrację działającą z konkretną konfiguracją.

Ta powłoka jest przeznaczona dla większości ludzi. Jest przyjazna i interaktywna, dlatego mogę polecić ją wszystkim, z którymi pracuję.

Fish ma bardzo szczegółową dokumentację. Nie jest przeznaczona dla adminów, którzy logują się na wiele serwerów dziennie. Nigdy nie będzie domyślnie instalowaną powłoką w większości systemów operacyjnych.

Po zainstalowaniu otrzymujesz powłokę, dzięki której możesz stać się bardzo produktywny, a Twoje ulubione narzędzia będą działały zgodnie z przeznaczeniem.

Powłoka nie pretenduje do tego, by być najlepszą we wszystkim, ale zapewnia podstawowe funkcje, które sprawiają, że użytkownik naprawde odczuwa satysfakcję z pracy. Oto, co daje nam Fish.

Podświetlanie składni

Moje najgorsze wspomnienia z Basha związane są z brakiem właśnie tej funkcji. Prosta rzecz, która sprawia, że myślisz: „Wow, teraz używam powłoki z lat 90.!”

Na poniższym gifie możesz zauważyć, że kiedy próbuję przejść do katalogu_ktory_nie_istnieje, tekst zmienia kolor na czerwony. Zmienia się na kolor na niebieski, gdy będzie prawidłowym poleceniem.

Automatyczne sugestie na podstawie historii

Inteligentne automatyczne sugestie spotyka się rzadko, a jeszcze rzadziej takie, które są wbudowane. Zamiast robić to tak jak wszyscy, Fish postanowił zrobić to po swojemu.

Sugeruje polecenia, korzystając z historii, a można je wybierać za pomocą klawisza strzałki w prawo. Możesz również, tak jak na poniższym gifie, automatycznie uzupełniać jedno słowo lub folder na raz za pomocą option + klawisz strzałki w prawo.

Ciekawostka, jeśli wyniki wyszukiwania są ogromne, powłoka Fish dzieli je na strony!

Uzupełnianie tabem przy użyciu danych z man

Dzieje się tak, ponieważ Fish potrafi parsować dokumentację narzędzi CLI w wielu różnych formatach. Git, Docker CLI, package.json, co tylko chcesz, większość poleceń będzie miało autouzupełnianie.

Możesz użyć tabulatora, aby zobaczyć wszystkie opcje.

Wszystkie skrypty npm, z wartościami, z którymi faktycznie się uruchamiają - W TERMINALU.

Konfiguracja webowa

Wpisz:

fish_config


I otworzy się witryna, która pozwoli Ci na zmienianie ustawień powłoki bez grzebania w plikach konfiguracyjnych.

By osiągnąć więcej, potrzeba drobnych modyfikacji

Nie potrzeba zbyt wielu dodatkowych pakietów do Fisha. Osobiście używam tylko dwóch, co jest niesamowite, ponieważ  w pewnym momencie miałem więcej niż 10 wtyczek Oh My Zsh.

Oh My Fish

OMF jest najpopularniejszym menedżerem pakietów dla Fisha. Używam go do instalacji moich dwóch pakietów: nvm i Spacefisha.

Spacefish

Szczególnie polecam Spacefish, który jest najlepszym promptem powłowki jakiego kiedykolwiek używałem.

Pokazuje:

  • Aktualny status gałęzi Git i rozbudowany status repo,
  • Aktualną wersję Node.js za pośrednictwem nvm,
  • Wersję pakietu, jeśli w bieżącym katalogu znajduje się pakiet (na przykład package.json).


Plik konfiguracyjny

Masz również dostęp do pliku konfiguracyjnego w .config/fish/config.sh. Tutaj możesz ustawić aliasy lub dodatkowe rozszerzenia ścieżek.

Ostrzeżenia

Brak zgodności z POSIX może odstraszyć niektórych programistów. Ale tak naprawdę przez 3 lata użytkowania (głównie Node.js, JavaScript, Ruby itp.), nie napotkałem żadnych problemów.

By wykonać niektóre polecenia z internetu dla Basha, zmieniam na moment powłokę (wpisując exit), by zaraz znowu wrócić do Fisha. Ten post ze Stackoverflow odnosi się do tego, jeśli jesteś zainteresowany.

Łatwa kompatybilność

Załóżmy, że masz skrypt Basha do uruchomienia. Z Fish nadal możesz:

bash script.sh


Inną wskazówką jest to, że możesz umieścić to na górze pliku:

#!/usr/bin/env bash


A następnie upewnij się, że jest to wykonywalne:

chmod +x script.sh


I voila, możesz uruchomić go jako zwykły skrypt:

./script.sh



Oryginał tekstu w języku angielskim przeczytasz tutaj.

<p>Loading...</p>