Quando ho lasciato il mondo di Linux e sono passato a tempo pieno a OS X un po’ più di un anno fa, quello che mi è mancato di più è stata la robusta comunità e la pletora di opzioni che circondano le personalizzazioni, i tweak e le personalizzazioni del sistema operativo e della workstation. Quella che segue è una guida che delinea la ricerca per costruire la mia perfetta shell di OS X – un’esperienza di linea di comando sia funzionale che bella, senza sacrificare l’una per l’altra. Spero che i miei passi possano far risparmiare ad alcuni viaggiatori simili un po’ di tempo e frustrazione nel loro viaggio verso una perfetta esperienza di terminale.
- Miglio 1: Scegliere un’applicazione Shell
- Miglio 2: Installare la tua shell Unix
- Installazione di zsh:
- Miglio 3: Scegliere un Framework
- Installazione di oh-my-zsh:
- Configurazione di oh-my-zsh:
- Installazione dei plugin:
- Mile 4: Spaceship Prompt Installation
- Installazione del prompt Spaceship:
- Personalizzazione del prompt di Spaceship:
- Colorls installation:
- Note finali sul mio Prompt:
- Miglio 5: Conclusione: Suggerimenti, risorse e dove andare da qui
- Conclusione:
Miglio 1: Scegliere un’applicazione Shell
Il primo passo di questo viaggio, e uno importante, è scegliere un’applicazione di emulazione di terminale. All’interno del mondo di OS X, ci sono due giocatori dominanti: iTerm e Hyper.
Questo articolo non vuole essere una recensione dell’applicazione, quindi non andrò in profondità nello specifico per quanto riguarda la funzionalità di entrambe le scelte o l’uso avanzato, ma dirò quanto segue:
Generalmente, iTerm sarà l’opzione più performante delle due. iTerm possiede una serie davvero incredibile di opzioni, scorciatoie e capacità. Se stai facendo un lavoro pesante sulla linea di comando del Mac, usi regolarmente tmux, o hai bisogno di una configurabilità più avanzata, questo sarà probabilmente il più adatto. Trova iTerm qui.
Hyper è un giocatore più recente in questo campo, e nonostante abbia meno funzionalità di iTerm, è senza dubbio l’esperienza di terminale più bella. Questo non vuol dire che iTerm sia brutto, ma lo stile di Hyper è semplicemente…bello.
Hyper è costruito su tecnologie web (HTML, CSS, JS), e ha una robusta collezione di temi, una vasta libreria di plugin facilmente installabili, e continui contributi degli utenti lo rendono una scelta divertente e interessante. Il team di Hyper ha appena rilasciato la versione 2, aumentando la velocità, aggiungendo utili miglioramenti UX, semplificando ulteriormente l’installazione dei plugin e altro ancora. Controlla Hyper qui.
Entrambe le scelte saranno buone. Entrambe le opzioni possono essere configurate per creare una bella esperienza di terminale altamente funzionale. Raccomando di provarle entrambe, io le tengo installate e le uso per scopi diversi.
Nota: se non ti piace nessuna delle due opzioni precedenti, o preferisci attenerti alle applicazioni native, il terminale integrato.che viene fornito con OS X funzionerà bene per la maggior parte o per tutto ciò che copriremo nel resto dell’articolo.
Miglio 2: Installare la tua shell Unix
Dopo aver determinato quale applicazione terminale userai, il passo successivo è scegliere una shell unix. Questo è un prerequisito necessario per la maggior parte di ciò che seguirà.
Ci sono tre scelte principali in questo settore: Bash (il default di OS X), Zsh e Fish. Ogni scelta ha diversi vantaggi e svantaggi, ma per gli scopi di questo articolo, lavoreremo con zsh.
Z shell, o zsh, esiste dal 1990, e ha un grande seguito e una vasta gamma di plugin, guide e collaboratori. Alcuni vantaggi di zsh includono: completamento migliorato, cronologia dei comandi, globbing, scorciatoie, gestione delle variabili e molti altri. Ognuno di questi elementi vale la pena di essere esplorato e imparato un’altra volta.
Installazione di zsh:
Zsh viene fornito con OS X, tuttavia, è una vecchia versione. 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. Seguite il prompt fino alla fine, apportando modifiche dove desiderato. Non sono necessarie modifiche, comunque – le impostazioni predefinite funzioneranno bene.
Miglio 3: Scegliere un Framework
Dopo aver installato zsh, si apre un intero nuovo mondo di framework, plugin e temi. Molto più di quanto possa essere coperto in questo articolo. Per gli scopi di questo articolo, useremo oh-my-zsh di Robby Russel come nostro framework. È semplice da installare, ha un robusto set di funzioni, ed è generalmente indulgente nell’usabilità.
Se oh-my-zsh non è la vostra tazza di tè, un framework simile come Prezto funzionerà bene al suo posto. In alternativa, se preferisci un’alternativa più leggera, puoi usare solo un gestore di plugin, come Antigen, o funzionare senza un framework. Queste decisioni dipendono interamente da te, e ti incoraggio a giocare con diverse configurazioni, framework, plugin e modifiche per determinare quale si adatta meglio al tuo flusso di lavoro e alle tue esigenze.
Installazione di oh-my-zsh:
Vai al repository di oh-my-zsh su Github – qui.
Segui le istruzioni di base per l’installazione nel repository, o vedi le seguenti:
Installazione via curl:
Nel tuo terminale, esegui:
sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
Questo clonerà e installerà oh-my-zsh. Una volta completato, sei pronto per iniziare ad usarlo.
Configurazione di oh-my-zsh:
I plugin di Zsh possono aggiungere tutti i tipi di soluzioni utili per il flusso di lavoro, modifiche divertenti, o aggiungere importanti funzionalità. Eccone alcuni per iniziare:
zsh-nvm
– plugin zsh per Node Version Manager (assumendo che usiate Node.js). Scaricalo qui.
zsh-syntax-highlighting
o fast-syntax-highlighting
– aggiunge l’evidenziazione della sintassi in tempo reale ai comandi mentre vengono digitati nel terminale – altamente consigliato. Trovatelo qui.
git
– scorciatoie e soluzioni per gli utenti di git. Viene fornito con oh-my-zsh.
Ci sono molti, molti altri plugin là fuori. Oh-my-zsh è fornito con una lunga lista di essi (vedi qui). Di nuovo, questo dipende dalla configurazione personale – spendi del tempo per decidere quale funzionerà meglio per te.
Installazione dei plugin:
Questa parte della guida ci porta ad un pezzo molto importante nel processo di configurazione di zsh: il file di configurazione di zsh, .zshrc
.
Il tuo file .zshrc
dovrebbe essere stato generato la prima volta che hai eseguito zsh e/o durante l’installazione di oh-my-zsh. Puoi trovarlo tra i file nascosti nella tua home directory.
Nota: per abilitare la visualizzazione dei file nascosti nella tua home directory, digita questo nel tuo terminale:
defaults write com.apple.finder AppleShowAllFiles YES
Il file .zshrc
è dove la maggior parte della nostra configurazione del prompt avrà luogo. Oh-my-zsh avrà generato una configurazione predefinita, con campi per il tema, i plugin, gli alias e altro ancora.
Installare un nuovo plugin è un processo semplice. Se si tratta di un plugin fornito con oh-my-zsh, semplicemente navigate nella porzione “plugins” del vostro file .zshrc
e digitate il suo nome tra le parentesi. Ricaricate il vostro terminale digitando zsh
e dovrebbe essere funzionale.
Per i plugin di terze parti, consiglio di seguire le istruzioni di installazione all’interno del repository del plugin. Tuttavia, il processo di installazione per la maggior parte dei plugin di terze parti è abbastanza semplice, e dovrebbe andare come segue:
- Clona il plugin e sposta i file clonati nella tua cartella
/custom
all’interno dell’installazione oh-my-zsh, che si trova nella tua home directory. - Nel vostro
.zshrc
file, aggiungete il nome del plugin tra le parentesi nel campo ‘plugins’, come abbiamo fatto sopra. - Ricaricate zsh, e dovrebbe essere pronto all’uso.
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.
Il vostro prompt della linea di comando può essere qualsiasi cosa vogliate: minimale, verboso, informativo, bello, pragmatico o tutto quanto sopra. Per i nostri scopi, ho scelto un ottimo tema per il prompt di zsh, Spaceship. È la migliore combinazione di ciascuno degli attributi di cui sopra che ho incontrato finora.
Il repository github di Spaceship Prompt può essere trovato qui.
Installazione del prompt Spaceship:
Clona il repository:
git clone https://github.com/denysdovhan/spaceship-prompt.git "$ZSH_CUSTOM/themes/spaceship-prompt"
Symlink spaceship.zsh-theme
alla tua directory dei temi personalizzati oh-my-zsh:
ln -s "$ZSH_CUSTOM/themes/spaceship-prompt/spaceship.zsh-theme" "$ZSH_CUSTOM/themes/spaceship.zsh-theme"
Imposta ZSH_THEME="spaceship"
nella tua .zshrc
sezione “theme”.
Personalizzazione del prompt di Spaceship:
Ora che avete installato il vostro prompt, c’è una lunga lista di personalizzazioni e modifiche che possono essere fatte per soddisfare il vostro flusso di lavoro o stile. Il loro repository ha una grande serie di documenti che ti mostreranno alcune delle possibilità. 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. I font nerd sono appositamente patchati per includere tutti i grandi simboli/glifi discussi in questo articolo.
Trova i font nerd qui e qui.
- Per installare i font nerd:
- Installazione manuale – scarica/clona i file dei font. Il repository dei font nerd avrà istruzioni dettagliate su come scaricare l’intero pacchetto o i singoli font.
- Naviga nella directory dei font appena scaricati. Trova i file dei font veri e propri, che tipicamente terminano con
.ttf
– contemporaneamente, apri l’applicazione nativa ‘Font Book’ che viene fornita con OS X. - Trascina i file dei font (
.ttf
) direttamente nella lista dei font di Font Book. Il tuo cursore dovrebbe cambiare in un simbolo ‘+’ verde dopo il trascinamento. Rilascia il cursore, e i tuoi font saranno installati.
3. Altre opzioni di installazione dei font sono dettagliate nel repository Github di nerd fonts, e includono l’installazione via Homebrew, script di installazione, e download curl ad hoc. Ognuno di essi ha i suoi vantaggi e svantaggi – vi consiglio di leggere il repository per decidere quale sia il più semplice/migliore per le vostre esigenze.
4. Dopo aver scaricato e installato i vostri font nerd, aprite il vostro emulatore di terminale (iTerm o Hyper), e premete Command + ,
. Questo aprirà le vostre preferenze utente. In iTerm, questo si presenterà sotto forma di una finestra di dialogo GUI. In Hyper, questo aprirà il tuo file di configurazione Hyper, .hyper.js
nel tuo editor di testo predefinito.
- In iTerm, i font possono essere impostati all’interno dei ‘Profili’ -> {nome del profilo} -> sezione ‘Testo’. All’interno di ‘Testo’, naviga fino alla parte ‘Font’. Cambia il font principale con il tuo nuovo font nerd, e spunta la casella ‘Usa un font diverso per il testo non ASCII’. Spuntate questa casella, così come la casella ‘Usa legature’. Imposta anche il font secondario su un font nerd. 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.
- Nel vostro file
.zshrc
, incollate quanto segue dopo la sezione “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”
Quanto sopra farà apparire il vostro prompt identico al mio, assumendo che abbiate un font nerd installato. Se volete cambiare le icone nel prompt, i campi SPACESHIP_CHAR_SYMBOL=
e SPACESHIP_CHAR_PREFIX=
sono dove inserirete i codici delle icone dei font nerd che ho notato sopra. Potete aggiungere loghi di linguaggi di programmazione, framework e librerie. Troverete anche glifi, frecce, fulmini, meteore – per quelli ossessionati dalla personalizzazione, c’è molto da lavorare.
4. Un altro elemento che può essere di interesse nel mio terminale sono le icone colorate di cartelle/file. 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
. Come avvertimento, raccomando di farlo solo su directory più piccole – potrebbe diventare lento durante l’indicizzazione di cartelle più grandi.
Note finali sul mio Prompt:
In iTerm, sto usando uno schema di colori chiamato termnk
– potete trovarlo qui.
Inoltre, una lunga lista di temi colore iTerm può essere trovata qui.
Per Hyper, la mia configurazione è la seguente:
plugins: ,
Miglio 5: Conclusione: Suggerimenti, risorse e dove andare da qui
A questo punto, dovresti avere un terminale zsh funzionante con un ottimo inizio per la tua configurazione personalizzata. Dopo aver visto la mia configurazione personale, e potenzialmente emulando porzioni di essa, dovresti ora avere una buona idea di alcune delle belle e infinite opzioni disponibili per la shell zsh su Mac. Questo, tuttavia, è solo l’inizio del viaggio. Questa guida non vuole essere esaustiva – ci sono molte altre possibilità e risorse incredibili per modificare la vostra shell e il vostro flusso di lavoro in qualsiasi modo vogliate. Questa parte finale è dedicata a delineare alcune grandi risorse per continuare il vostro apprendimento e continuare ad esplorare da qui.
Lettura consigliata:
Ci sono molti altri sorprendenti plugin di zsh che possono aiutare con la ricerca, il grepping, l’aggiunta di screensaver al vostro terminale come pipes.sh, o prompt informativi on-load come Neofetch. Raccomando di leggere e trovare qualche altro plugin che si adatti al vostro flusso di lavoro.
Similmente, un compendio di risorse utili relative a tutte le cose di zsh.
Una comunità focalizzata sull’arricchimento/personalizzazione di tutte le cose Unix. Mentre Linux è la forza dominante qui, una rapida ricerca per ‘OSX’ ti porterà alcuni esempi ispiratori.
Come già detto, una lista curata di frameworks, estensioni e risorse di Terminal. Questo è un grande riferimento, altamente raccomandato.
Un’applicazione interattiva di test drive per vedere in anteprima alcuni dei migliori font di programmazione disponibili. La maggior parte/tutti sono gratuiti, e hanno una versione patchata da scaricare da nerd fonts.
L’elenco definitivo dei temi Hyper & plugin. Se decidete di usare Hyper, questa dovrebbe essere una delle vostre prime fermate.
Conclusione:
Continuate ad esplorare e lavorare sulla vostra esperienza di terminale. Essere entusiasti di come la vostra linea di comando appare e si sente vi aiuterà ad essere più entusiasti nell’imparare come usarla, nella programmazione (se applicabile), ed è semplicemente divertente.
Come più utenti entrano nel mondo della personalizzazione della linea di comando, più opzioni e innovazioni seguiranno sicuramente. Nonostante Linux abbia generalmente più supporto per questo tipo di personalizzazione, spero che questo abbia aperto gli occhi di alcuni lettori su alcune delle fantastiche configurazioni di terminale possibili in OS X.
Vedi il mio altro lavoro che copre l’icona Mac & personalizzazione del dock qui.