5 ting jeg liker med Atom-skaperens nye Zed-editor

Remote-koding via SSH, annerledes AI, utvidelser, samarbeidsfunksjonalitet – listen over ny funksjonalitet i Zed vokser. Men én ting mangler fortsatt: Windows-støtte.

Zed-editoren er lynkjapp – men finnes dessverre ikke for Windows ennå. 📸: Ole Petter Baugerød Stokke
Zed-editoren er lynkjapp – men finnes dessverre ikke for Windows ennå. 📸: Ole Petter Baugerød Stokke Vis mer

I mars i fjor lanserte Nathan Sobo, skaperen av Atom-editoren og Electron-rammeverket, en helt ny kodeeditor – Zed.

Editoren er skrevet fra bunnen av i Rust – og skal være betydelig raskere enn for eksempel VS Code.

Med en markedsandel på 73,6 prosent ifølge den siste Stack Overflow-undersøkelsen, skal det mye til for å utfordre Microsofts VS Code-editor – men det stopper ikke Sobo fra å prøve. I januar i år ble editoren åpen kildekode og selskapet hentet inn 10 millioner dollar for å bygge opp et større utviklingsteam.

Jeg tok en kikk på Zed – og kan slå fast at editoren har gått fra å virke ganske uferdig og mangelfull for ett år siden, til nå å ha blitt et ganske godt alternativ til andre editorer.

Jeg skal ikke skryte på meg å ha testet den veldig grundig – så dette er først og fremst ment som en liten gjennomgang av noe av det jeg synes virker mest spennende med Zed.

Zed finnes for macOS og Linux, men foreløpig ikke for Windows. Kildekoden er imidlertid tilgjengelig, og Zed har laget en guide her til hvordan du kompilerer og bygger den for Windows selv.

Her er fem ting jeg liker med Zed – og som skiller den litt fra andre editorer:

#1: Den er rask!

Zed skriver på sine sider at de ønsker at editoren deres skal være "hyper-responsiv". Når du flytter cursoren eller taster inn et tegn på skjermen skal pikslene vises neste gang skjermbildet tegnes opp. Til og med små forsinkelser som du ikke oppfatter uten videre kan skape stress utover dagen, hevder selskapet.

Selskapet har skrevet en bloggartikkel om hvordan de nå har optimalisert brukergrensesnittet til å klare å opprettholde 120 bilder i sekundet.

Og, ja – editoren virker definitivt rask. Den starter opp raskere enn VS Code, og den føles kjapp i bruk.

Slik ser brukergrensesnittet ut.
Slik ser brukergrensesnittet ut. Vis mer

Skaperne av Zed har også lagt vekt på at det skal være minst mulig "støy" – altså ingen rotete eller uoversiktlige brukergrensesnitt. Hver piksel skal være der av en grunn, ifølge Zed.

Brukergrensesnittet er derfor ganske minimalistisk. Det er også hurtigtaster for det aller meste, for eksempel for å raskt vise eller skjule sidepaneler og annet som kan forstyrre deg.

#2: Rediger mange filer samtidig

En av de nyttigste funksjonene jeg vet om i VS Code (og sikkert mange andre editorer) er muligheten til å redigere med mange cursorer samtidig – for eksempel hvis du vil legge til noe flere steder samtidig i koden. Dette har selvfølgelig også Zed støtte for.

I tillegg har Zed det de kaller multibuffers, som betyr at du kan redigere ikke bare flere steder i samme fil – men på tvers av flere filer.

Multibuffere dukker opp når du søker etter noe på tvers av hele prosjektet ditt. Søketreff fra ulike filer vises da i en multibuffer – som er et skjermbilde som viser utdrag fra de ulike filene under hverandre. Du kan da klikke på det du vil redigere, eller holde inne Option-/Alt-tasten og klikke ulike steder for å opprette flere cursorer.

Du kan også velge å markere alle treff på et søkebegrep. Praktisk for eksempel hvis du har bestemt deg for å endre kode som går igjen flere steder i ulike filer.

I tillegg vil du få opp en multibuffervisning hvis du Cmd-/Ctrl-klikker på for eksempel et funksjons- eller variabelnavn. Som her hvor jeg har Cmd-klikket på en React-komponent kalt Contact:

Rediger i flere filer samtidig via ett og samme skjermbilde ("multibuffer").
Rediger i flere filer samtidig via ett og samme skjermbilde ("multibuffer"). Vis mer

#3: Remote-koding via SSH

En av de nyeste funksjonene i Zed er SSH Remoting. Det betyr at du kan åpne et prosjekt som kjører på en annen maskin som du kan SSHe deg inn til. UI-et til Zed kjører lokalt, mens språkservere, terminaler og andre ting kjører på maskinen du SSH-er deg inn til.

For å sette opp dette, velger du Connect New Server i Zed og taster inn kommandoen du bruker for å SSHe deg inn på den andre maskinen som skal brukes som server. "Remote-maskinen" vil så laste ned en "Zed headless server" og starte denne.

📸: Zed
📸: Zed Vis mer

Maskinen du vil SSHe deg inn på må være i stand til å kjøre Zeds server, og foreløpig er det kun macOS og Linux som støttes. Det finnes ingen Windows-server ennå.

#4: Zed Assistant og Zed AI

Selvfølgelig støtter Zed også "code completion", det vil si fullføring av kode etter hvert som du skriver. Dette støttes både via språkservere (LSP-er) eller via eksterne API-er som Github Copilot eller Supermaven. Github Copilot er skrudd på som standard, mens Supermaven kan aktiveres via settings.json.

Zed har sin egen en egen vri på AI-chat, som de kaller Assistant. Dette er en chat som åpnes som et sidepanel på høyre side av editoren. I stedet for at det bare er sekvensiell chat så kan du gå tilbake og redigere i chaten, og i svarene AI-en gir. Hele chat-historikken sendes tilbake og brukes som kontekst for AI-en.

Zed Assistant-vinduet til høyre har en del muligheter du ikke har i "vanlig" ChatGPT eller Copilot Chat.
Zed Assistant-vinduet til høyre har en del muligheter du ikke har i "vanlig" ChatGPT eller Copilot Chat. Vis mer

Du kan skrive / og taste inn kommandoer for å for eksempel legge til innhold fra nettsider, filer, terminalvinduet eller andre ting i chat-konteksten.

Zed har også en Inline Assistant som du aktiverer ved å trykke Ctrl-Enter når du står for eksempel et sted i koden din der du trenger hjelp. Inline Assistant kan sende markert tekst eller linjen du står på til en språkmodell, og modifisere koden for deg.

Inline Assistant-linjen øverst dukker opp når du trykker Ctrl-Enter – hvor som helst det er mulig å skrive inn tekst.
Inline Assistant-linjen øverst dukker opp når du trykker Ctrl-Enter – hvor som helst det er mulig å skrive inn tekst. Vis mer

Inline Assistant kan også brukes andre steder der du kan skrive tekst – som i Assistant-panelet – eller til og med på kommandolinjen. Sistnevnte er kjekk hvis du vil ha hjelp med kommandoer i terminalen – da vil Zed vise deg de nødvendige kommandoene og syntaksen.

Assistant bruker støtter en rekke forskjellige språkmodeller, som Anthropics Claude 3.5 Sonnet og OpenAIs modeller. Som standard vil den bruke Zed AI, som er Zeds egen løsning basert på Claude 3.5 Sonnet.

#5: Innebygget chat

Zed har også en funksjon de kaller Channels som gir deg en slags Slack-lignende chatteklient inne i kodeeditoren.

Med Channels kan flere samarbeide på kodeprosjekter. Du kan opprette så mange kanaler du vil, og invitere kollegaer inn i kanalene.

Med Channels-funksjonen kan flere samarbeide på kodeprosjekter.
Med Channels-funksjonen kan flere samarbeide på kodeprosjekter. Vis mer

Etter at du har blitt medlem av en kanal, kan du dele prosjekter du har lokalt på din egen maskin med andre for å samarbeide på prosjektene. Det gir imidlertid den du deler med tilgang til hele filsystemet ditt. Zed advarer derfor mot å dele med folk du ikke stoler hundre prosent på – og sier de vil legge til mer avansert tilgangskontroll senere.

Hver kanal har et eget notatområde der dere kan rable ned notater om prosjektet.

Konklusjon

Zed begynner å bli en stadig mer kapabel editor, og har i det siste fått støtte for mye av det den manglet i starten.

Vi har imidlertid bare såvidt skrapet i overflaten av alt Zed kan gjøre. Editoren har en masse annet som vi ikke har tatt for oss i denne artikkelen, som for eksempel en innebygget REPL som lar deg kjøre kode i en interaktiv "notatblokk" drevet av Jupyter. Du kan blant annet kjøre Python-, TypeScript og R-kode. Og den har endelig fått støtte for utvidelser.

TypeScript-støtte er innebygget.
TypeScript-støtte er innebygget. Vis mer

Vi anbefaler deg å ta en kikk selv.

Alt i alt synes jeg Zed virker lovende – selv om jeg ikke er helt klar ennå for å ta steget bort fra det som for øyeblikket er min favoritteditor: Cursor.

Du kan lese min mini-test av Cursor her: