Sjekk ut Atom, GitHubs nye utviklingsredaktør

Det har vært en stund siden vi har sett noen oppdateringer i redigeringsområdet. Den siste store splashen ble laget av Sublime Text som tok webutviklingssamfunnet med storm, spesielt når Package Control kom rundt for å fungere som pakkeleder for redaktøren.

Vel, GitHub ser på å riste ting opp med beta-lanseringen av en ny redaktør kalt Atom. Jeg fikk hendene mine på en beta og ønsket å gi deg en oversikt over hva det tilbyr. En ting å merke seg er at dokumentasjonen er litt sparsom, så det var tøft å prøve å avgjøre hva hver funksjon gjorde, men jeg kommer til å berøre viktige aspekter nedenfor.

En Hackable Text Editor for det 21. århundre

Den første tingen å huske på er at dette er en beta-versjon; ting kommer til å forandre og noen ting kommer ikke til å være i denne utgivelsen. For eksempel fant jeg ikke en måte å lage et prosjekt ut av en katalog, noe som er litt viktig for meg. Det er ikke ideelt, men jeg er også realistisk om statusen til produktet.

Den neste tingen å ta opp er at denne redaktøren ble opprettet helt med webteknologi. For eksempel bygger den underliggende arkitekturen på Chromium (ja grunnlaget for Google Chrome), og gjør hvert vindu til en lokalt gjengitt nettside. Hvorfor bygget de ikke bare som en nettleserbasert IDE som Cloud9IDE? Fordi, til tross for mye fremgang i fil-APIer for nettleseren, er det fortsatt begrensninger når det gjelder filsystemtilgang, så bygge det som en skrivebordsapp gjort mye fornuftig.


Ja, det er Chromium Developer Tools som kjører i editoren, og jeg markerer et element med det. Det er ganske freaky å kunne endre koden i redigeringsprogrammet mitt med Chrome DevTools, men det viser at den underliggende motoren er nettbasert.

De leverte også Node.js for å tillate filsystemtilgang og gi enorm fleksibilitet og utvidbarhet i deres pakkesystem, og gjør Atom svært tilpassbar og gir den utrolig tilgang til et ton av npms.

Til slutt forklarer denne setningen best hvorfor de leverte webteknologier:

Med hele bransjen som driver webteknologi fremover, er vi sikre på at vi bygger Atom på fruktbar grunn. Native UI-teknologier kommer og går, men nettet er en standard som bare kan bli bedre og allestedsnærværende med hvert passerende år. Vi er glade for å grave dypere inn i verktøykassen.

Når du først faller inn i Atom, ser det slående ut som Sublime, noe som gjør det enkelt fra et visuelt perspektiv å skyve inn i det.


En av de første tingene jeg ønsket å sjekke var språkstøtte. Mens jeg hovedsakelig jobber med JavaScript, har jeg et brennende ønske om å komme inn i Ruby on Rails, slik at jeg får bred språkstøtte. Ikke bare støtter det Ruby-syntaks, men også Rails-rammen sammen med:

  • Python
  • CoffeeScript
  • sass
  • YAML

og massevis av andre.


Bredden på dekning er svært omfattende og på nivå med noen redaktør jeg har sett.

Men det er mer enn bare å støtte språk. Atom støtter også syntaksksnarveier (kalt utklipp) som lar deg raskt lage kodeblokker med minimal skriving.


For eksempel, hvis jeg skriver inn ife etterfulgt av a tab, Jeg får følgende:

 hvis (sant)  annet 

Og bare skrive i små bokstaver "F" etterfulgt av a tab gir meg et skjelett for en anonym funksjon:

 funksjon () 

Produkter som TextExpander og andre redaktører har gjort disse i noen tid, så det er godt å se GitHub, inkludert den første dagen.

Det er tilpassbart

En av de tingene som fremdeles irriterer meg om Sublime (selv v3), er at mange av konfigurasjonsinnstillingene må justeres manuelt. I Atom ser det ut til at alle innstillinger er tilgjengelige og tilpasses via et innstillingspanel, og gir deg muligheten til å oppdatere ting som:

  • Font familie og størrelse
  • Linjenumre
  • temaer
  • pakker

Samt enkelt deaktivere pakker som du har installert.


Personliggjøre en redaktør er en av de første tingene et program gjør, spesielt temaet siden det er det du ser på hver dag. Atom leveres med fem temaer som standard, i både lyse og mørke variasjoner, men via pakkenes leder kan du legge til flere som passer din smak:


Jeg var glad for å se temaet "Monokai" der, siden det er min personlige favoritt.

Nå husker du hvordan jeg tidligere nevnte at du hadde tilgang til utviklerverktøyene, og at Atom editor-vinduer er i utgangspunktet gjengitte nettsider? Vel, dette betyr at du har massevis av fleksibilitet ved å tilpasse utseendet på ting, fordi du er i stand til å inspisere DOM-noder og se hvilke stilarter som er brukt på dem. Atom lar deg definere dine egne stiler i et mindre stilark som heter styles.less, gir deg virkelig granulær kontroll over utseendet på bestemte typer elementer. Å komme til stilarket er like enkelt som å gå til Atom> Åpne stilarket ditt og gjør endringene i den aktuelle delen.

 .redaktør .meta.tag.sgml.doctype.html font-size: 26px; 

I dette tilfellet oppdaterte jeg .redaktør klasse ved å legge til klassene som definerer hvordan DOCTYPE av en fil vil se inne i redaktøren. Jeg gjorde skriftstørrelsen 26px å være målrettet stor. Følgende bilde viser hvordan denne oppdateringen påvirket gjengivelsen av HTML-koden min:


Som du kan se, kan du egentlig grave dypt inn i Atom og tilpasse det til ditt hjerte innhold siden det er i utgangspunktet HTML og DOM under hetten.

Sammen med å kunne installere nye temaer, tilbyr Atom også en innebygd pakkebehandling som lar deg forlenge editorens funksjonalitet. Dette er analogt med Sublime Package Control, bortsett fra at den allerede er bakt inn i redaktøren selv i motsetning til å bli tvunget til å installere et eget skript for å få det.


Å installere en pakke er like enkelt som å klikke på Installere knapp. Redaktøren gir en liste over "kjente" pakker sammen med en søkefunksjonalitet som trekker fra hovedpakkeregisteret.

Hvis du vil gjøre dette via kommandolinjen, gir Atom et CLI for det som heter apm (Atom Package Manager) som lar deg installere hvilken som helst pakke med følgende kommando:

apm installasjon 

Så installerer du Autofullfør pakken ser slik ut:


Foreløpig er antall tilgjengelige pakker små, men det kan forventes på dette stadiet.


Du kan finne gode pakker om ting som:

  • Forhåndsvisning av Markdown
  • Kommer til en bestemt linje
  • Autosave når editoren din er ute av fokus

Og mange flere. Jeg kan ikke forestille meg det vil vare lenge før GitHub rekrutterer alle de sublime pakkeskaperne til å overføre arbeidet deres. Faktisk er det allerede dokumentasjon som viser hvordan du kan konvertere din TextMate Bundle til Atom. Siden mange TextMate-pakker er kompatible med Sublime, synes det tenkelig at noen Sublime pakker kan kunne konverteres over, men hold meg ikke til det siden jeg ikke har testet det selv.

Dette er også en god mulighet for bidragsytere til å hoppe inn og tilby nye pakker. Mens Atom har det meste av det grunnleggende, mangler det noen viktige, som linters og syntax-highlighters. Det er et tomrom som må fylles, og jeg kan forestille det skjer i kort rekkefølge.

Nøkkelbindinger kan også tilpasses ved hjelp av det lokale ~ / .Atom / keymap.cson. Du kan åpne denne filen manuelt eller ved å gå til Atom> Åpne Keymap menyalternativ. Å åpne filen vil vise deg noen eksempler på hvordan du rediger nøkkelbindingene.

Den ene nøkkelen bindende du må huske er Kommando-Skift-P, som dukker opp kommandopaletten og viser alle mulige nøkkelbindinger med tilhørende funksjonalitet.


Komme i gang-veiledningen gir deg noen grunnleggende veiledning om hvordan du bruker Atom og er verdt å lese. Men bare vet at prosjektstedet er litt sparsomt på dokumentasjon akkurat nå, så noen av redaktørens evner må du lære av prøving og feiling.

Stacking opp mot andre redaktører

Mange av dere spør sannsynligvis hvordan den stabler opp mot din favorittredaktør. Siden Sublime er mitt personlige valg, kan jeg si at Atom er et ganske anstendig beta-produkt, men ikke noe jeg ville bytte til umiddelbart. Sublime er innebygd funksjonalitet pluss omfattende pakke økosystem gjør det til en veldig moden redaktør å jobbe med.

Når det er sagt, er Atom støttet av GitHub, og det inneholder massevis av vekt. Det er stor geekkredit der, og jeg er ganske sikker på at vi skal se en stor løp på nye pakker, spesielt med tanke på utvidbarheten Atom tilbyr via krom og knutepunkt.

For nå tilbyr GitHub Atom gratis i beta-perioden, noe som gir utviklere en sjanse til å tinker med det og få hendene skitne. Hvis de kan holde prissettingen konkurransedyktige og raskt bygge opp pakkeøkosystemet, tror jeg at Atom vil ende opp som min nye redaktør av valg.