GNU Emacs 101 for Beginners

Uansett hvor sleip Linux på skrivebordet blir, vil det nok alltid være en kløft mellom nye brukere og veteraner for hvem Linux-miljøet har blitt andre natur. Root kontoer, filsystemet hierarki, den svimlende rekke distribusjoner – de synes rart i begynnelsen, men etter hvert nye brukere lære at er ingenting å være redd for. Så også med " programmererens redaktører " Emacs og Vi /Vim: det første møtet kan være skremmende på grunn av fremmedhet av enten editor. Som en Emacs bruker, er jeg interessert i å gi noen advokatvirksomhet, så hvis du har vært lurer bare på hva poenget med en redaktør som Emacs er, eller hvis du er usikker på hvordan du skal komme i gang, les videre for en forsiktig introduksjon .

Hvorfor Emacs?

Naturligvis, du kan velge en av flere dusin søknader til å redigere filer med, fra lette verktøy som Nano til full grafiske systemer med plug-ins. Så hvorfor folk liker Emacs? To grunner.

Først i kjernen av Emacs 'appell er det faktum at det er lett tilpasses. Teknisk sett, Emacs selv er tolk for Lisp programmeringsspråk, og det bare starter opp med å kjøre en tekst-redigering. Men du kan endre alt om det, legge til og fjerne funksjoner, endre egenskaper, og binde i andre programmer. Selv om folk flest ikke studere Lisp, er det veldig lett å lære, og det er nok av enkle modifikasjoner du kan gjøre å bøye Emacs til din vilje i bare minutter. Det er ikke sant for de fleste redaktører.

Når det er sagt, trenger du ikke
endre noe om det for å komme i gang. Noe som fører til grunn nummer to: utviklermiljøet rundt Emacs er stort, og som et resultat er det et stort økosystem av tilpasninger og utvidelser som du kan finne og installere uten anstrengelse. Jada, kan du skrive din egen re-programmerbar redaktør fra bunnen av, men å bygge opp et levende fellesskap av brukere og bidragsytere ville ta en evighet.

Kort sagt, du kan tenke på Emacs som Firefox redaktører. Det finnes andre alternativer, og mange av dem er gode. Noen kan også tilby mer fart eller en mindre minne fotavtrykk. Men fordelen Emacs tilbyr er dens customizability; med tilleggsprogrammer kan du skreddersy programmet til å passe nøyaktig hvordan du vil jobbe.

Grunnleggende

En god del av Emacs 'trusler faktor stammer fra den konvensjonelle visdommen at grensesnittet er helt i motsetning til andre Linux-programmer, så du må lære mye bare for å komme i gang. Det er
sant at Emacs har eksistert lenger enn alle GUI skrivebordsmiljøer, og som et resultat har en arv tastetilordninger (og navn på ting) som avviker fra normene vi har plukket opp fra Windows og Mac verdener.

Men du trenger ikke å bry seg om dem, fordi på dagens stasjonære systemer, kan du kjøre Emacs som en fullverdig GTK + GUI editor, komplett med verktøylinjen, menylinjer, bla-hjulet støtte, og alle de andre bekvemmeligheter. Dermed er min anbefaling på alle Emacs jukse-ark og referanser enkel: ikke bry. Hvis du bare ønsker å komme i gang, fyre opp Emacs og bruke menyene – du kan se inn tastetilordninger senere

Hvis det bekymrer deg ... greit, bare huske denne kommandoen, og du har ingen problemer med.: Ctrl]. Det er å holde nede Kontroll
nøkkel og treffer høyre brakett nøkkel. Hva denne kommandoen gjør er å stoppe den kommando sekvens eller fungere du nå inn, og gå tilbake til vanlig ole redigering. Uansett hva problemer du tror du har fått inn (for eksempel en feilstavet tastetrykk som starter noe ukjent), Ctrl-] vil avslutte den og sette deg ned på føttene, pronto.

Emacs er en standard applikasjons disse dager, slik at du kan installere det fra din distribusjon pakken manager. Du kan også finne flere versjoner tilgjengelig, fordi folk liker å punge det og opprettholde spesialiserte bygger. Er du i tvil, velger vanilje Emacs pakken. Den nyeste versjonen er 23,3, fra mai 2011.

Når du fyrer opp Emacs for første gang, vil du se noen oppstartsmeldinger blinke over det nye vinduet, men i et øyeblikk vil det slå seg ned og være klar å bruke. Øverst er menyene og verktøylinjen, nedover siden er scrollbar, og nederst er to spesielle linjer beslektet med en ". Statusfeltet " Den nest nederste linjen er stort sett streker, og er der for å skille redigering delen av skjermen fra linjen nedenfor. Men denne linjen vil også fortelle deg linjenummeret markøren er på, navnet på den tiden åpne filen, og fremheve et par av stjernene om filen er blitt endret. Den aller nederste linjen kalles " minibuffret " i Emacs-tale. Det viser meldinger og varsler, og når du skriver en kontrolltast-sekvens, de tastene du trykker på nett slik at du kan se at du har skrevet riktig.

Som standard når du starter Emacs det åpner en midlertidig fil som heter " scratch " i hoveddelen av vinduet. Emacs refererer til filene den har åpent som " buffere " (som gjenspeiler det faktum at de ikke får skrevet til fil på disken før du sier det). Scratch buffer har et kort avsnitt på toppen forklarer at ingenting du skriver i grunnen blir lagret. Nevnte punkt starter med semikolon, fordi semikolon er kommentaren-skilletegn i Lisp. Se, kan du faktisk skriver Lisp-koden inn bunnen av og ha det utført. Men du trenger ikke å.

På dette punktet, kan du åpne en fil fra menyen, redigere den, klippe og lime, og lagre alt fra menyene. Når du gjør det, vil du plukke opp på noen Emacs-ismer. For eksempel Emacs sjelden eller aldri bruker pop-up dialoger. Hvis det er behov for å spørre deg om noe (for eksempel hva ordet du vil søke etter i et tekstsøk), gjør den det i minibuffer – eller, worst-case-scenario, vil det utvide minibuffret opp noen linjer, for eksempel å la deg velge en fil fra en katalogoppføring. Dette er fordi Emacs forut moderne Unix vindussystemer, og til denne dag sine forfattere sørge for at det fortsatt fungerer riktig i et vindu miljø.

Du kan også se Emacs 'tastetilordninger ved siden av sine respektive kommandoer i menyene. Dette er en god måte å bli vant til tastetilordninger. En annen Emacs-isme er det faktum at måten flere kommandoer har
tastetilordninger, fordi Emacs kan du binde to bokstaver kommandoer. For eksempel åpner Ctrl-X Ctrl-F en ny fil. Som virker uvanlig i begynnelsen, før du legger merke til at alle de fil-ledelse tastetilordninger bor i samme " blokk ": Ctrl-X Ctrl-S lagrer en fil. Dessuten er den andre viktige tasten Meta
. Det er en anakronistisk navn — på nesten alle tastaturene du bruker Alt for denne nøkkelen, men det er fortsatt noen unntak, så navnet pinner. Ctrl og Meta vises i minibuffer og menyer som henholdsvis C- og M-.

Modes

Nå la oss snakke om det (Lisp Interaksjon)
etiketten på bunnen av skjermen i scratch buffer. Den forteller deg at du arbeider i Lisp modus. Hvis du åpner eller oppretter en ren tekstfil, vil modus endres til (tekst)
.

Emacs moduser er en stor del av grunnen til at programmerere som redaktør. Det er moduser for alle tenkelige programmeringsspråk, og de hjelper deg med å skrive kode på flere måter. De kan markere syntaks, auto-innrykk, komplett kommandoer, kamp parentes, og tillater deg å hoppe gjennom store deler av koden på en gang (for eksempel hoppe direkte til en funksjon definisjon, hvis du har kjørt over et funksjonskall og trenger å oppdatere hukommelsen)

I tillegg til programmeringsspråk, det er moduser å forenkle arbeidet med bestemte filformater (for eksempel TeX) og verktøy (slik nroff) og ". bimodus " som endrer mindre aspekter av deres overordnede modus. Et eksempel på dette ville være tekstbasert tabell modus, som lar deg navigere rundt en WYSIWYG-stil bord i klartekst, langt raskere enn manuelt stille opp dine kolonner og rader.

Det er også Emacs redigeringsmodi som har ingenting å gjøre med programmering, som Bildemodus for " ASCII art " og utkastmodus, som lar deg skjule og utvide nestet skisserer. I begge disse tilfellene, er det bare endrer spesiell modus måten markøren beveger seg rundt i dokumentet, i stedet for å endre innholdet i fila på uvanlige måter. Men disse tilleggene er ikke bare kosmetisk; du kan også gjøre seriøst arbeid med dem, for eksempel kryptere og dekryptere filene, eller samle og bygge kode.

Enda lenger ut i venstre felt er rene programmer som er skrevet som Emacs moduser. Det er moduser for å lese e-post, sjekke sosiale nettverk, surfe på nettet, og spille spill. I virkeligheten, disse er Lisp programmer, men ved å binde inn til Emacs rammen, kan du bytte over til en av dem og bruke mindre ressurser enn du ville skyte opp et eget program.

Dine første kraft triks, din første tilpasninger

Modi er vel og bra, men du kom ikke hit for å redigere kildekoden. For å skjerpe appetitten, la oss se på noen av Emacs er triks.

Emacs har flere kraftige søk-og-erstatt alternativer, inkludert full støtte for regulære uttrykk. Men kanskje det mest spennende for nye brukere i inkrementell søk. Dette søket kommandoen lar du begynner å skrive inn søkeordet, og hopper rett til neste kamp med hver ekstra tegn du skriver. Hvis du gjør det din standard søkemetode, skriver du færre tegn enn alt.

Det rekursive redigere kommandoen, som du utløser med Ctrl-r lar deg pause uansett handling du gjør nå og fortsette redigering (eller lese) en fil, eller til å utføre en annen kommando. Du kan gjenoppta suspendert handling med Ctrl-Meta-c. Dette kan være spesielt nyttig når du er i midten av en lang prosess, for eksempel stavekontroll et dokument.

Når det gjelder å tilpasse redaktøren, er et bra sted å starte med en ColorTheme. Jeg bruker en mørk GTK + tema på skrivebordet mitt, og ikke bryr seg for høy kontrast sort på hvitt tekst i Emacs 'standard utseende. Så jeg bruker et egendefinert fargevalg i stedet. Den ColorTheme pakken er en add-on skrevet i Lisp, som du kan installere via pakkebehandleren.

For å aktivere den, må du følge instruksjonene på ColorTheme prosjektsiden, som forteller deg hvordan du kan spare høyre kommandoer inn i din personlige tilpasninger filen, som er lagret i ~ /.emacs
. Denne filen inneholder noen Lisp kommandoer du vil Emacs å kjøre når du starter den opp, og det kan laste innstillingene, starte add-ons, eller til og med definere nye funksjoner som du skriver selv.

Når du blir komfortabel redigering. emacs, oddsen er du vil med jevne mellomrom finne en ny kommando du vil lagre for daglig bruk. For eksempel har jeg (FSET "ja-eller-nei-p 'y-eller-np) i min .emacs fil, en innstilling som slår av Emacs' krav om at du skriver ut hele ord " ja " eller " no " når den ber deg et ja /nei-spørsmål. Jeg vet ikke spare mye tid ved å skrive " y " og " n " i stedet, men jeg spare mye forverring.

Mer moro er å definere nye funksjoner helt. Her er et bra sted å starte er Emacs Wiki, med en nyttig funksjon som ordtelling. Du vil få en følelse for Lisp programmering, og legge til en nyttig ny funksjon samtidig

Emacs Wiki er et bra sted å begynne å lete når det ". Jeg lurer på om det er en måte å ... " spørsmål begynner å poppe opp. Det er fylt til randen med tips og kodebiter du kan bruke umiddelbart, og lenker til langt mer som opprettholdes andre steder. Plus, det er aktivt vedlikeholdt, så det er ingen reell fare for å finne innhold out-of-date nok til å gjøre noen skade. Bla rundt, og du vil få en idé om hva andre folk gjør med Emacs, samt hvorfor de liker det. Du kan selv komme opp med noen ideer til din egen. Anmeldelser