Du missar en bättre Mac-terminalupplevelse

När jag lämnade Linuxvärlden och övergick till OS X för drygt ett år sedan var det jag saknade mest den robusta gemenskapen och de många alternativen kring anpassningar, finjusteringar och personliga anpassningar av operativsystemet och arbetsstationen. Nedan följer en guide som beskriver strävan efter att bygga mitt perfekta OS X-skal – en kommandoradsupplevelse som är både funktionell och vacker, utan att offra det ena för det andra. Jag hoppas att mina fotspår kommer att spara några likasinnade resenärer lite tid och frustration på deras resa mot en perfekt terminalupplevelse.

Mil 1: Att välja ett skalprogram

kredit: hyper.is

Det första steget på denna resa, och ett viktigt sådant, är att välja ett terminalemuleringsprogram. Inom OS X-världen finns det två dominerande aktörer: iTerm och Hyper.

Denna artikel är inte tänkt att vara en programgranskning, så jag kommer inte att gå djupt in på detaljer om någondera valets funktionalitet eller avancerad användning, men jag kommer att säga följande:

Generellt sett kommer iTerm att vara det mer presterande alternativet av de två. iTerm besitter ett verkligt fantastiskt utbud av alternativ, genvägar och möjligheter. Om du gör tungt arbete på Mac-kommandoraden, regelbundet använder tmux eller kräver mer avancerad konfigurerbarhet kommer detta troligen att vara det bättre valet. Hitta iTerm här.

Hyper är en nyare aktör på det här området, och trots att den har mindre funktionalitet än iTerm är den utan tvekan den vackrare terminalupplevelsen. Det betyder inte att iTerm är ful, men Hyperers stil är bara…snygg.

Hyper bygger på webbteknik (HTML, CSS, JS) och har en robust samling teman, ett varierat bibliotek av lättinstallerade plugins och kontinuerliga användarbidrag gör detta till ett roligt och intressant val. Hyper-teamet har just släppt version 2- som ökar hastigheten, lägger till användbara UX-förbättringar, förenklar ytterligare installation av insticksmoduler och mycket mer. Kolla in Hyper här.

Varje val här kommer att vara ett bra val. Båda alternativen kan konfigureras för att skapa en vacker och mycket funktionell terminalupplevelse. Jag skulle rekommendera att prova båda – jag håller båda installerade och använder båda för olika ändamål.

Notera: Om du inte gillar något av alternativen ovan, eller föredrar att hålla dig till inbyggda applikationer, den inbyggda terminalen.appen som levereras med OS X kommer att fungera utmärkt för det mesta eller allt vi kommer att ta upp i resten av artikeln.

Mil 2: Installera ditt Unix Shell

När du har bestämt vilket terminalprogram du ska använda är nästa steg att välja ett Unix Shell. Detta är en nödvändig förutsättning för det mesta som kommer att följa.

Det finns tre stora valmöjligheter på denna avdelning: Bash (OS X standard), Zsh och Fish. Varje val har olika för- och nackdelar, men i den här artikeln kommer vi att arbeta med zsh.

Z shell, eller zsh, har funnits sedan 1990 och har en stor skara följare och ett varierat utbud av plugins, guider och bidragsgivare. Några av fördelarna med zsh är bland annat: förbättrade kompletteringar, kommandohistorik, globbing, genvägar, hantering av variabler och många andra. Var och en av dessa saker är värda att utforska och lära sig om en annan gång.

Zsh-installation:

Zsh levereras med OS X, men det är en äldre version. 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. Följ uppmaningen till slutet och gör ändringar där du vill. Inga ändringar är dock nödvändiga – standardinställningarna kommer att fungera bra.

Mil 3: Att välja ett ramverk

credit: Efter att ha installerat zsh öppnar sig en helt ny värld av ramverk, plugins och teman. Mycket mer än vad som kan täckas inom ramen för den här artikeln. I den här artikeln kommer vi att använda Robby Russels oh-my-zsh som vårt ramverk. Det är enkelt att installera, har en robust funktionsuppsättning och är generellt förlåtande i användbarhet.

Om oh-my-zsh inte är din kopp te kommer ett liknande ramverk som Prezto att fungera utmärkt i stället. Alternativt, om du föredrar ett mer lättviktigt alternativ, kan du hålla dig till endast en insticksprogramshanterare, som Antigen, eller köra utan ramverk helt och hållet. Dessa beslut är helt och hållet upp till dig, och jag uppmuntrar dig att leka med olika konfigurationer, ramverk, insticksprogram och ändringar för att avgöra vad som passar ditt arbetsflöde och dina behov bäst.

Installation av oh-my-zsh:

Hoppa upp till oh-my-zsh repository på Github – här.

Följ de grundläggande installationsinstruktionerna i arkivet, eller se nedan:

Installera via curl:

Kör i din terminal:

sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"

Ovanstående kommer att klona och installera oh-my-zsh. När du är klar är du redo att börja använda den.

Oh-my-zsh-konfiguration:

Zsh-plugins kan lägga till alla typer av användbara arbetsflödeslösningar, roliga finjusteringar eller lägga till viktig funktionalitet. Här är några för att komma igång:

zsh-nvm – zsh-plugin för Node Version Manager (förutsatt att du använder Node.js). Ladda ner det här.

zsh-syntax-highlighting eller fast-syntax-highlighting – lägger till syntaxmarkering i realtid för kommandon medan de skrivs i terminalen – rekommenderas starkt. Hitta den här.

git – genvägar och lösningar för git-användare. Levereras med oh-my-zsh.

Det finns många, många fler plugins där ute. Oh-my-zsh levereras med en lång lista av dem också (se här). Återigen är detta upp till personlig konfiguration – ägna tid åt att bestämma vilka som kommer att fungera bäst för dig.

Plugininstallation:

Denna del av guiden för oss till en mycket viktig del i zsh-konfigurationsprocessen: zsh-konfigurationsfilen, .zshrc .

Din .zshrc-fil bör ha genererats första gången du körde zsh och/eller under oh-my-zsh-installationen. Du hittar den bland de dolda filerna i din hemkatalog.

Note: för att aktivera visning av dolda filer i din hemkatalog skriver du detta i din terminal: defaults write com.apple.finder AppleShowAllFiles YES

Den .zshrc-filen är den fil där det mesta av vår promptkonfiguration kommer att ske. Oh-my-zsh kommer att ha genererat en standardkonfiguration, med fält för tema, insticksprogram, alias med mera.

Installation av ett nytt insticksprogram är en enkel process. Om det är ett insticksprogram som levererades med oh-my-zsh, navigerar du helt enkelt till ”plugins”-delen av din .zshrc-fil och skriver dess namn inom parenteserna. Ladda om din terminal genom att skriva zsh och det borde fungera.

För insticksprogram från tredje part rekommenderar jag att du följer installationsinstruktionerna i insticksprogrammets arkiv. Installationsprocessen för de flesta insticksprogram från tredje part är dock ganska okomplicerad och bör gå till på följande sätt:

  1. Klona insticksprogrammet och flytta de klonade filerna till din /custom-mapp inom oh-my-zsh-installationen, som du hittar i din hemkatalog.
  2. I din .zshrc-fil lägger du till insticksmodulets namn inom parenteserna i fältet ”plugins”, som vi gjorde ovan.
  3. Reload zsh, så bör det vara redo att användas.

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

credit: spaceship prompt

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.

Din kommandoradsprompt kan vara vad du vill att den ska vara – minimal, utförlig, informativ, vacker, pragmatisk eller allt av ovanstående. För våra syften har jag valt ett bra tema för zsh-prompten, Spaceship. Det är den bästa kombinationen av var och en av attributen ovan som jag har stött på hittills.

The Spaceship Prompt’s github repository kan hittas här.

Spaceship prompt installation:

Clone the repository:

git clone https://github.com/denysdovhan/spaceship-prompt.git "$ZSH_CUSTOM/themes/spaceship-prompt"

Symlink spaceship.zsh-theme to your oh-my-zsh custom themes directory:

ln -s "$ZSH_CUSTOM/themes/spaceship-prompt/spaceship.zsh-theme" "$ZSH_CUSTOM/themes/spaceship.zsh-theme"

Sätt ZSH_THEME="spaceship" i din .zshrcs sektion ”theme”.

Anpassning av prompt i rymdskepp:

När du nu har installerat din prompt finns det en lång lista med anpassningar och finjusteringar som kan göras för att passa ditt arbetsflöde eller din stil. Deras repository har en bra uppsättning dokument som visar dig några av möjligheterna. 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:

Spaceship prompt in iTerm2

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. Nerd fonts är speciellt patchade för att inkludera alla de fantastiska symboler/glyfer som diskuteras i den här artikeln.

Finn nerd fonts här och här.

  1. För att installera nerd fonts:
  • Manuell installation – ladda ner/klona typsnittsfilerna. I nerd fonts repository finns detaljerade instruktioner om hur du laddar ner antingen hela paketet eller enskilda typsnitt.
  • Navigera in i katalogen för det eller de nyligen nedladdade typsnitten. Hitta de faktiska teckensnittsfilerna, som vanligtvis slutar i .ttf – öppna samtidigt det ursprungliga programmet ”Font Book” som levereras med OS X.
  • Drag teckensnittsfilerna ( .ttf ) direkt in i Font Book:s lista över teckensnitt. Din markör bör ändras till en grön ”+”-symbol när du drar. Släpp markören och dina teckensnitt installeras.

3. Ytterligare alternativ för installation av teckensnitt finns beskrivna i Github-arkivet för nerd fonts, och inkluderar installation via Homebrew, installationsskript och ad hoc curl-hämtning. Var och en av dem har sina fördelar/avvikelser – jag rekommenderar att du läser arkivet för att avgöra vilket som är enklast/bäst för dina behov.

4. När du har laddat ner och installerat dina nerd-teckensnitt öppnar du din terminalemulator (iTerm eller Hyper) och trycker på Command + , . Detta kommer att öppna dina användarinställningar. I iTerm kommer detta att ske i form av ett GUI-dialogfönster. I Hyper öppnas din Hyper-konfigurationsfil, .hyper.js i din standardtextredigerare.

  • I iTerm kan teckensnitt ställas in i ”Profiler” -> {namn på profil} -> avsnittet ”Text”. I avsnittet ”Text” navigerar du till avsnittet ”Font”. Ändra det primära typsnittet till ditt nya nördtypsnitt och kryssa i rutan ”Använd ett annat typsnitt för icke-ASCII-text”. Markera den här rutan, liksom rutan ”Använd ligaturer”. Ställ in det sekundära teckensnittet till ett nördteckensnitt också. See below:

Your configuration should be similar.

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):

pictured: vs code with monoid nerd font, material darker syntax theme.

Now that you have Spaceship prompt and nerd fonts installed and selected within your terminal, you can begin customizing the prompt:

  1. 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.

  1. I din .zshrc-fil klistrar du in följande efter avsnittet ”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”

Ovanstående kommer att få din prompt att se ut som min, förutsatt att du har installerat ett nördtypsnitt. Om du vill ändra ikonerna i prompten är det i fälten SPACESHIP_CHAR_SYMBOL= och SPACESHIP_CHAR_PREFIX= som du ska sätta in ikonkoderna från nördtypsnitt som jag noterade ovan. Du kan lägga till logotyper från programmeringsspråk, ramverk och bibliotek. Du hittar också glyfer, pilar, blixtar, meteorer – för dem som är besatta av anpassning finns det mycket att jobba med.

4. En annan sak som kan vara av intresse inom min terminal är de färgade ikonerna för mappar/filer. 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. Som en varning rekommenderar jag bara att man gör detta på mindre kataloger – det kan bli långsamt när man indexerar större mappar.

Slutanmärkningar om min Prompt:

I iTerm använder jag ett färgschema som heter termnk – du kan hitta det här.

Det finns dessutom en lång lista över färgteman i iTerm här.

För Hyper är min konfiguration följande:

plugins: ,

Mile 5: Slutsats: Vid det här laget bör du ha en fungerande zsh-terminal med en bra start på din egen anpassade konfiguration. Efter att ha sett min personliga konfiguration, och eventuellt emulerat delar av den, bör du nu ha en god uppfattning om några av de vackra och oändliga alternativ som finns för zsh-skalet på Mac. Detta är dock bara början på resan. Den här guiden är inte tänkt att vara uttömmande – det finns så många fler möjligheter och fantastiska resurser för att justera ditt skal och arbetsflöde till vad du vill att det ska se ut, kännas och fungera som. Denna sista del är tillägnad att beskriva några fantastiska resurser för att fortsätta ditt lärande och fortsätta utforska härifrån.

Rekommenderad läsning:

Det finns så många fler fantastiska zsh-plugins som kan hjälpa till med att söka, greppa, lägga till skärmsläckare till din terminal som pipes.sh, eller informativa on-load prompts som Neofetch. Jag rekommenderar att du läser igenom och hittar några fler plugins som passar ditt arbetsflöde.

Samma, ett kompendium av användbara resurser relaterade till allt som har med zsh att göra.

En gemenskap som fokuserar på ricing/anpassning av allt som har med Unix att göra. Linux är visserligen den dominerande kraften här, men en snabb sökning på ”OSX” ger dig några inspirerande exempel.

Som sagt, en lista över ramverk, tillägg och resurser för Terminal. Detta är en bra referens – rekommenderas starkt.

En interaktiv testkörningsapplikation för att förhandsgranska några av de bästa tillgängliga teckensnitten för programmering. De flesta/alla är gratis och har en patchad version för nedladdning från nerd fonts.

Den definitiva listan över Hyper themes & plugins. Om du bestämmer dig för att använda Hyper bör detta vara ett av dina första stopp.

Slutsats:

Fortsätt att utforska och arbeta med din terminalupplevelse. Att bli entusiastisk över hur din kommandorad ser ut och känns kommer att hjälpa dig att bli mer entusiastisk över att lära dig att använda den, om programmering (om tillämpligt), och är bara roligt.

När fler användare ger sig in i världen av kommandoradsanpassning kommer säkert fler alternativ och innovationer att följa. Trots att Linux generellt sett har mer stöd för den här typen av personalisering hoppas jag att detta har öppnat några läsares ögon för några av de fantastiska terminalkonfigurationer som är möjliga i OS X.

Se mitt andra arbete som täcker Mac-ikonen & dockanpassning här.

Lämna ett svar

Din e-postadress kommer inte publiceras.