Kiedy opuściłem świat Linuksa i w pełni przestawiłem się na OS X nieco ponad rok temu, najbardziej brakowało mi solidnej społeczności i mnóstwa opcji związanych z dostosowywaniem, poprawkami i personalizacją systemu operacyjnego i stacji roboczej. Poniżej znajduje się przewodnik opisujący moje dążenie do zbudowania idealnej powłoki OS X – funkcjonalnej i pięknej, bez poświęcania jednego na rzecz drugiego. Mam nadzieję, że moje ślady zaoszczędzą niektórym podobnie myślącym podróżnikom trochę czasu i frustracji podczas ich podróży w kierunku idealnego terminala.
- Mile 1: Wybór aplikacji powłoki
- Mile 2: Installing Your Unix Shell
- Instalacja zsh:
- Mile 3: Wybór frameworka
- Instalacja oh-my-zsh:
- Konfiguracja oh-my-zsh:
- Instalacja wtyczek:
- Mile 4: Spaceship Prompt Installation
- Instalacja Spaceship prompt:
- Dostosowanie podpowiedzi statku kosmicznego:
- Colorls installation:
- Final Notes on my Prompt:
- Mile 5: Zakończenie: Tips, Resources, and Where to Go From Here
- Koniec:
Mile 1: Wybór aplikacji powłoki
Pierwszym krokiem w tej podróży, i to ważnym, jest wybór aplikacji do emulacji terminala. W świecie OS X są dwaj dominujący gracze: iTerm i Hyper.
Ten artykuł nie ma być recenzją aplikacji, więc nie zamierzam zagłębiać się w szczegóły dotyczące funkcjonalności lub zaawansowanego użytkowania, ale powiem, co następuje:
Ogólnie rzecz biorąc, iTerm będzie bardziej wydajną opcją z tych dwóch. iTerm posiada naprawdę niesamowity wachlarz opcji, skrótów i możliwości. Jeśli wykonujesz ciężką pracę w linii poleceń Maca, regularnie używasz tmuxa lub wymagasz bardziej zaawansowanych możliwości konfiguracji, to prawdopodobnie będzie to lepsze rozwiązanie. Znajdź iTerm tutaj.
Hyper jest nowszym graczem na tym polu, i pomimo mniejszej funkcjonalności niż iTerm, jest bezdyskusyjnie piękniejszym terminalem. Nie znaczy to, że iTerm jest brzydki, ale stylizacja Hypera jest po prostu… ładna.
Hyper jest zbudowany na technologiach webowych (HTML, CSS, JS) i posiada solidną kolekcję motywów, różnorodną bibliotekę łatwych do zainstalowania wtyczek, a ciągły wkład użytkowników sprawia, że jest to interesujący wybór. Zespół Hypera właśnie wydał wersję 2, zwiększając prędkość, dodając użyteczne ulepszenia UX, upraszczając instalację wtyczek i wiele więcej. Sprawdź Hyper tutaj.
Każdy z tych wyborów będzie dobry. Obie opcje mogą być skonfigurowane tak, aby stworzyć piękne, wysoce funkcjonalne doświadczenie terminala. Polecam wypróbowanie obu – ja mam zainstalowane obie, używając każdej z nich do innych celów.
Uwaga: jeśli nie lubisz żadnej z powyższych opcji, lub wolisz trzymać się natywnych aplikacji, wbudowany terminal.app, który jest dostarczany z OS X, będzie działał dobrze dla większości lub wszystkich rzeczy, które zamierzamy omówić w dalszej części artykułu.
Mile 2: Installing Your Unix Shell
Po określeniu, której aplikacji terminalowej zamierzasz używać, następnym krokiem jest wybór powłoki unixowej. Jest to niezbędny warunek wstępny dla większości tego, co nastąpi później.
W tym dziale istnieją trzy główne opcje do wyboru: Bash (domyślna dla OS X), Zsh oraz Fish. Każdy wybór ma inne zalety i wady, ale dla celów tego artykułu, będziemy pracować z zsh.
Z shell, lub zsh, istnieje od 1990 roku, i ma dużą liczbę zwolenników i zróżnicowaną gamę wtyczek, przewodników i współpracowników. Niektóre zalety zsh obejmują: ulepszone uzupełnianie, historię poleceń, globbing, skróty, obsługę zmiennych i wiele innych. Każdy z tych elementów jest warty zbadania i poznania innym razem.
Instalacja zsh:
Zsh jest dostarczany z OS X, jednakże jest to starsza wersja. I recommend installing the latest version using Homebrew, the Mac package manager.
If you have not heard of Homebrew, or do not have it installed, you can find it here.
- To install zsh using Homebrew, enter the following into your terminal:
brew install zsh zsh-completions
- Verify installation by entering the following:
zsh --version
expected result: 5.1.1 or newer.
- Make zsh your system’s default shell:
chsh -s $(which zsh)
- Verify that it worked:
echo $SHELL
expected result: /bin/zsh
If you get hung up anywhere during this process, or need additional help, check this for more information and a more detailed install guide.
After installing zsh, the first time zsh is ran, it will prompt you with a series of questions concerning configuration. Podążaj za monitem do końca, dokonując zmian gdziekolwiek chcesz. Żadne zmiany nie są konieczne, jednakże – ustawienia domyślne będą działać dobrze.
Mile 3: Wybór frameworka
Po zainstalowaniu zsh otwiera się zupełnie nowy świat frameworków, wtyczek i motywów. O wiele więcej niż można opisać w tym artykule. Dla celów tego artykułu, będziemy używać Robby Russel’s oh-my-zsh jako naszego frameworka. Jest on prosty w instalacji, ma solidny zestaw funkcji i jest ogólnie wyrozumiały w użyciu.
Jeśli oh-my-zsh nie jest twoją filiżanką herbaty, podobny framework jak Prezto będzie działał dobrze zamiast niego. Alternatywnie, jeśli wolisz bardziej lekką alternatywę, możesz trzymać się tylko menedżera wtyczek, jak Antigen, lub uruchomić bez frameworka. Te decyzje zależą wyłącznie od Ciebie i zachęcam do zabawy z różnymi konfiguracjami, frameworkami, wtyczkami i zmianami, aby określić, które z nich najlepiej pasują do Twojego przepływu pracy i potrzeb.
Instalacja oh-my-zsh:
Przejdź do repozytorium oh-my-zsh na Githubie – tutaj.
Podążaj za podstawowymi instrukcjami instalacji w repozytorium, lub zobacz poniżej:
Instalacja przez curl:
W swoim terminalu, uruchom:
sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
Powyższe sklonuje i zainstaluje oh-my-zsh. Po zakończeniu, jesteś gotowy, aby zacząć go używać.
Konfiguracja oh-my-zsh:
Wtyczki do Zsh mogą dodać wszelkiego rodzaju użyteczne rozwiązania, zabawne poprawki, lub dodać ważną funkcjonalność. Oto kilka z nich, abyś mógł zacząć:
zsh-nvm
– Wtyczka zsh dla Node Version Manager (zakładając, że używasz Node.js). Pobierz go tutaj.
zsh-syntax-highlighting
lub fast-syntax-highlighting
– dodaje podświetlanie składni w czasie rzeczywistym do poleceń podczas wpisywania w terminalu – wysoce zalecane. Znajdź go tutaj.
git
– skróty i rozwiązania dla użytkowników git. Dostarczany z oh-my-zsh.
Jest tam wiele, wiele więcej wtyczek. Oh-my-zsh jest dostarczany z ich długą listą (zobacz tutaj). Ponownie, zależy to od osobistej konfiguracji – spędź trochę czasu decydując, które z nich będą dla ciebie najlepsze.
Instalacja wtyczek:
Ta część przewodnika prowadzi nas do bardzo ważnego elementu w procesie konfiguracji zsh: pliku konfiguracyjnego zsh, .zshrc
.
Twój plik .zshrc
powinien zostać wygenerowany przy pierwszym uruchomieniu zsh i/lub podczas instalacji oh-my-zsh. Możesz go znaleźć wśród ukrytych plików w swoim katalogu domowym.
Uwaga: aby włączyć przeglądanie ukrytych plików w swoim katalogu domowym, wpisz to w terminalu:
defaults write com.apple.finder AppleShowAllFiles YES
Plik .zshrc
jest miejscem, gdzie będzie miała miejsce większość naszej konfiguracji podpowiedzi. Oh-my-zsh wygeneruje domyślną konfigurację, z polami dla motywu, wtyczek, aliasów i innych.
Instalacja nowej wtyczki jest prostym procesem. Jeśli jest to wtyczka, która została dostarczona z oh-my-zsh, po prostu przejdź do części „plugins” w swoim pliku .zshrc
i wpisz jej nazwę w nawiasach. Przeładuj swój terminal wpisując zsh
i powinien być funkcjonalny.
W przypadku wtyczek innych firm, zalecam podążanie za instrukcjami instalacji w repozytorium wtyczki. Jednak proces instalacji większości wtyczek innych firm jest dość prosty i powinien przebiegać następująco:
- Klonuj wtyczkę i przenieś sklonowane pliki do
/custom
folderu w instalacji oh-my-zsh, który znajduje się w twoim katalogu domowym. - Wewnątrz twojego
.zshrc
pliku, dodaj nazwę pluginu w nawiasach w polu 'plugins’, tak jak zrobiliśmy to powyżej. - Reload zsh, i powinien być gotowy do użycia.
Note: if you run into any hangups in this process, please refer to the oh-my-zsh repository, or the third party plugin’s repository. Most of your troubleshooting needs should be addressed there. Additionally, there is a large community surrounding the use of these tools- if there is something you can’t immediately find in the repositories, a quick google search will likely turn up a long list of people asking and solving the same questions you have.
Mile 4: Spaceship Prompt Installation
Now that we have installed zsh, a framework, and our plugins, we can now get to work configuring our command line via a theme/custom prompt.
Twój wiersz poleceń może być jaki tylko chcesz – minimalny, dosadny, informacyjny, piękny, pragmatyczny, lub wszystkie z powyższych. Dla naszych celów, wybrałem świetny motyw zachęty zsh, Spaceship. Jest to najlepsze połączenie każdego z powyższych atrybutów, jakie do tej pory spotkałem.
Repozytorium github Spaceship Prompt można znaleźć tutaj.
Instalacja Spaceship prompt:
Klonowanie repozytorium:
git clone https://github.com/denysdovhan/spaceship-prompt.git "$ZSH_CUSTOM/themes/spaceship-prompt"
Symlink spaceship.zsh-theme
do twojego katalogu z motywami oh-my-zsh:
ln -s "$ZSH_CUSTOM/themes/spaceship-prompt/spaceship.zsh-theme" "$ZSH_CUSTOM/themes/spaceship.zsh-theme"
Ustaw ZSH_THEME="spaceship"
w swojej .zshrc
'sekcji „theme”.
Dostosowanie podpowiedzi statku kosmicznego:
Teraz, gdy masz już zainstalowaną podpowiedź, istnieje długa lista dostosowań i poprawek, które można zrobić, aby dopasować ją do swojego przepływu pracy lub stylu. Ich repozytorium ma świetny zestaw dokumentów, które pokażą ci niektóre z możliwości. Spend some time viewing the examples, or leave it as-is — the defaults are great.
My personal prompt is configured to display some custom icons and information:
The above should give you an idea of some of the cool possibilities that you can create with Spaceship. To get your prompt looking like mine, a few steps must be followed:
The font I’m using iTerm is Monoid Nerd Font
. In Hyper I am using nerd fonts’ PowerlineSymbols
and mononoki Nerd Font Mono
. Use whichever fonts you personally like, however— a nerd font is required to properly use Spaceship prompt. Czcionki nerd są specjalnie poprawione, aby zawierać wszystkie wspaniałe symbole/glify omawiane w tym artykule.
Znajdź czcionki nerd tutaj i tutaj.
- Aby zainstalować czcionki nerd:
- Instalacja ręczna – pobierz/sklonuj pliki czcionek. Repozytorium nerd fonts będzie miało szczegółowe instrukcje dotyczące pobierania albo całego pakietu, albo pojedynczych czcionek.
- Przejdź do nowo pobranego katalogu z czcionką(ami). Znajdź rzeczywiste pliki czcionek, zazwyczaj kończące się na
.ttf
– jednocześnie otwórz natywną aplikację 'Font Book’, która jest dostarczana z OS X. - Przeciągnij pliki czcionek (
.ttf
) bezpośrednio do listy czcionek w Font Book. Twój kursor powinien zmienić się na zielony symbol '+’ przy przeciąganiu. Zwolnij kursor, a czcionki zostaną zainstalowane.
3. Dodatkowe opcje instalacji czcionek są wyszczególnione w repozytorium nerd fonts Github, i obejmują instalację przez Homebrew, skrypt instalacyjny, i ad hoc curl download. Każda z nich ma swoje zalety/zastrzeżenia – polecam przeczytanie repozytorium, aby zdecydować, która jest najłatwiejsza/najlepsza dla twoich potrzeb.
4. Po pobraniu i zainstalowaniu czcionek nerda, otwórz emulator terminala (iTerm lub Hyper), i naciśnij Command + ,
. To otworzy twoje preferencje użytkownika. W iTerm, będzie to w formie okna dialogowego GUI. W Hyperze, otworzy to twój plik konfiguracyjny Hypera, .hyper.js
w twoim domyślnym edytorze tekstu.
- W iTermie, czcionki mogą być ustawione w 'Profilach’ -> {nazwa profilu} -> Sekcja 'Tekst’. W sekcji „Text”, przejdź do części „Font”. Zmień główną czcionkę na swoją nową, kujońską i zaznacz pole „Użyj innej czcionki dla tekstu nie ASCII”. Zaznacz to pole, jak również pole „Użyj ligatur”. Ustaw także drugorzędną czcionkę na czcionkę kujonów. See below:
In Hyper, within your .hyper.js
configuration file in your text editor, navigate to the fontFamily
tag. Replace the defaults with the names of your new nerd font(s).
Note: if you are not a programmer, be careful with your use of quotation marks. Multiple word font names with spaces will need their own surrounding quotes.
Your configuration should look something like the below, specifically, the portion surrounded in the blue box (you may disregard the other fields):
Now that you have Spaceship prompt and nerd fonts installed and selected within your terminal, you can begin customizing the prompt:
- Within the nerd fonts website, roughly two-thirds of the way down, there is a scrollable field that displays glyphs/icons and their corresponding codes. Any of these icons can be used in your prompt using Spaceship and a nerd font. Scroll through and find one or two that you like.
Note: the four-character glyph/icon codes must be preceded by
\u
, as shown below.
- Wewnątrz twojego pliku
.zshrc
, wklej poniższe po sekcji „theme”:
SPACESHIP_PROMPT_ADD_NEWLINE=”true”
SPACESHIP_CHAR_SYMBOL=” \uf0e7"
SPACESHIP_CHAR_PREFIX=”\uf296"
SPACESHIP_CHAR_SUFFIX=(" ")
SPACESHIP_CHAR_COLOR_SUCCESS=”yellow”
SPACESHIP_PROMPT_DEFAULT_PREFIX=”$USER”
SPACESHIP_PROMPT_FIRST_PREFIX_SHOW=”true”
SPACESHIP_USER_SHOW=”true”
Powyższe sprawi, że twoja podpowiedź będzie wyglądała identycznie jak moja, zakładając, że masz zainstalowaną czcionkę nerd. Jeśli chcesz zmienić ikony w podpowiedzi, w polach SPACESHIP_CHAR_SYMBOL=
i SPACESHIP_CHAR_PREFIX=
umieścisz kody ikon z czcionek nerdowskich, które podałem powyżej. Możesz dodać loga z języków programowania, frameworków i bibliotek. Znajdziesz tu również glify, strzałki, błyskawice, meteory – dla tych, którzy mają obsesję na punkcie personalizacji, jest tu mnóstwo do pracy.
4. Kolejnym elementem, który może zainteresować w moim terminalu są kolorowe ikony folderów/plików. I’m using a ruby gem called „colorls”- which you can find here.
Colorls installation:
Colorls, once installed, adds some glyphs to your ls
command, and can be configured to show informative reports, realign and reconfigure the output of ls
, among many other options. Follow the installation instructions within the repository.
To get colorls to print every time the ls
command is used, you will need to use an alias within your .zshrc
file.
To configure this, head into your .zshrc
file, and scroll to the very bottom.
Paste the following:
alias ls=’colorls — light — sort-dirs — report’
alias lc=’colorls — tree — light’
This will get your ls
looking identical to mine. Additionally, inputting the lc
command will print a tree-view version of ls
. Jako ostrzeżenie, zalecam robienie tego tylko na mniejszych katalogach – może stać się powolne podczas indeksowania większych folderów.
Final Notes on my Prompt:
W iTerm, używam schematu kolorów o nazwie termnk
– możesz go znaleźć tutaj.
Dodatkowo, długą listę motywów kolorystycznych iTerm można znaleźć tutaj.
Dla Hypera, moja konfiguracja jest następująca:
plugins: ,
Mile 5: Zakończenie: Tips, Resources, and Where to Go From Here
Do tego momentu, powinieneś mieć działający terminal zsh z doskonałym startem do własnej konfiguracji. Po zobaczeniu mojej osobistej konfiguracji i potencjalnym emulowaniu jej części, powinieneś mieć teraz dobre pojęcie o niektórych z pięknych i niekończących się opcji dostępnych dla powłoki zsh na Macu. Jest to jednak dopiero początek podróży. Ten przewodnik nie jest przeznaczony do wyczerpania – istnieje tak wiele możliwości i niesamowitych zasobów, aby dostosować swoją powłokę i przepływ pracy do tego, co chcesz, aby wyglądać, czuć i wykonywać jak. Ta końcowa część jest poświęcona wskazaniu kilku wspaniałych zasobów do kontynuowania nauki i odkrywania stąd.
Zalecane lektury:
Jest tak wiele niesamowitych wtyczek zsh, które mogą pomóc w wyszukiwaniu, grepowaniu, dodawaniu wygaszaczy ekranu do twojego terminala jak pipes.sh, lub informacyjnych podpowiedzi przy ładowaniu jak Neofetch. Polecam zapoznanie się z nimi i znalezienie kilku innych wtyczek, które będą pasować do twojego przepływu pracy.
Podobnie, kompendium przydatnych zasobów związanych z wszystkim, co dotyczy zsh.
Społeczność skupiająca się na wzbogacaniu/ dostosowywaniu wszystkich rzeczy związanych z Uniksem. Podczas gdy Linux jest tu siłą dominującą, szybkie wyszukiwanie 'OSX’ pozwoli ci znaleźć kilka inspirujących przykładów.
Jak wspomniano, lista frameworków, rozszerzeń i zasobów Terminala. Jest to świetne odniesienie – gorąco polecam.
Integracyjna aplikacja testowa do podglądu niektórych z najlepszych dostępnych czcionek programistycznych. Większość/wszystkie są darmowe i mają poprawione wersje do pobrania z nerd fonts.
Ostateczna lista motywów Hypera & plugins. Jeśli zdecydujesz się używać Hypera, powinien to być jeden z twoich pierwszych przystanków.
Koniec:
Poznaj dalej i pracuj nad swoim doświadczeniem z terminalem. Podekscytowanie się tym jak wygląda twój wiersz poleceń pomoże ci bardziej podekscytować się nauką jak go używać, programowaniem (jeśli dotyczy), i jest po prostu zabawą.
Jak więcej użytkowników wejdzie w świat dostosowywania wiersza poleceń, więcej opcji i innowacji na pewno się pojawi. Mimo że Linux generalnie ma większe wsparcie dla tego typu personalizacji, mam nadzieję, że to otworzyło oczy niektórych czytelników na niektóre z niesamowitych konfiguracji terminala możliwe w OS X.
Zobacz moją inną pracę obejmującą ikonę Maca & dostosowanie doku tutaj.