Redigerer
GNU Emacs
(avsnitt)
Hopp til navigering
Hopp til søk
Advarsel:
Du er ikke innlogget. IP-adressen din vil bli vist offentlig om du redigerer. Hvis du
logger inn
eller
oppretter en konto
vil redigeringene dine tilskrives brukernavnet ditt, og du vil få flere andre fordeler.
Antispamsjekk.
Ikke
fyll inn dette feltet!
==Bruken av Emacs== ===Kommandoer=== [[Fil:Emacs-screenshot.png|thumb|Skjermbilde av GNU Emacs 22.0.91.1 fra [[Ubuntu (operativsystem)|Ubuntu's]] <code>emacs-snapshot-gtk</code>.{{byline|Foto: Fd0man|25. mai 2007}}]] I vanlig redigeringsmodus oppfører GNU Emacs seg som andre teksteditorer. Man setter inn tegn med tilhørende taster og flytter redigeringspunktet med piltastene. Brukeren trykker på [[modifiseringstaster]], sammen med vanlige taster for å påkalle funksjoner fra Emacs Lisp. Modifiseringstastene som brukes er:<ref name="Waclena2009"/> * <code>[[Escape (tast)|Escape]]</code><ref name="Waclena2009"/> * <code>[[Control]]</code> (Ctrl) og/eller <code>[[Meta (tast)|Meta]]</code> (på enkelte tastaturer)<ref name="Waclena2009"/> * <code>[[Alt (tast)|Alt]]</code> eller <code>[[super (tast)|Super]]</code> (på noen tastaturer)<ref name="Waclena2009"/> Nedenfor har vi vist en del vanlige kommandoer. Mange av disse kombinerer flere modifiseringsnøkler.<ref name="Waclena2009"/> ====Starte og lukke GNU Emacs==== *<code>emacs</code>. Denne kommandoen starter GNU Emacs i [[Unix-liknende]] operativsystemer. I Microsoft Windows og Mac OS startes programmet ved å taste på dets [[Ikon (data)|ikon]].<ref name="Waclena2009"/> *<code>C-x C-c</code> eller <code>save-buffers-kill-emacs</code> lagrer alle buffere og avslutter GNU Emacs.<ref name="Waclena2009"/> *<code>C-x C-z</code> eller <code>suspend-emacs</code>, ''suspenderer'' GNU Emacs i Unix-terminologien (stanser programmet og plasserer det i bakgrunnen). Hvordan programmet restartes avhenger av skallet (mest sannsynlig via kommandoen <code>fg</code>)<ref name="Waclena2009"/> ====Modifisering av datafiler==== [[Fil:Command-line-completion-example.gif|right|thumb|402px|[[Kommandolinjeavslutning]] i [[Unix-skall]]et [[Bash]]. GNU Emacs støtter kommandolinjeavslutning i minibufferet.{{byline|Foto: Renku|10. januar 2009}}]] * <code>C-x C-f</code> eller <code>find-file</code>. Denne kommandoen leser en datafil inn i et buffer for redigering. Når du utfører denne kommandoen, vil GNU Emacs be deg om navnet på datafilen. Deretter sjekkes det om du allerede redigerer denne datafilen i et buffer; dersom du gjør det svitsjer den til dette bufferet og leser ikke datafilen igjen. Dersom du ikke gjør det, skapes et nytt buffer, som er oppkalt etter datafilen, og initialisert med en kopi av filen. I begge tilfeller svitsjer vinduet til å vise dette bufferet.<ref name="Waclena2009"/> * <code>C-x C-s</code> eller <code>save-buffer</code> lagrer en datafil ved å skrive en kopi av bufferet til harddisken, og overskrive bufferets fil, samtidig som den håndterer [[sikkerhetskopi]]er.<ref name="Waclena2009"/> * <code>C-x s</code> eller <code>save-some-buffers</code>. Denne kommandoen lagrer alle buffere som besøker datafiler, med spørsmål og opsjoner for hver enkelt.<ref name="Waclena2009"/> ====Manipulering av databuffere==== [[Fil:Emacs23.3.1-screenshot-minibuffer.png|thumb|GNU Emacs 23.3.1 med minibuffer nederst.{{byline|Foto: Fugjuyo|3. oktober 2012}}]] Følgende kommandoer brukes til å manipulere datafiler:<ref name="Waclena2009"/> * <code>C-x b</code> eller <code>switch-to-buffer</code>. Ber om et buffernavn og bytter til bufferets nåværende vindu. Vinduskonfigurasjonen endres ikke. Denne kommandoen skaper også et nytt vindu hvis du skriver et nytt navn; det nye bufferet vil ikke besøke noen datafil<ref name="Waclena2009"/> * <code>C-x C-b</code> eller <code>list-buffers</code>. Åpner et nytt vindu med liste over alle buffere, viser hvorvidt de er modifisert, viser også deres størrelse i [[byte]]s, deres store modus og datafilen som bufferet besøker<ref name="Waclena2009"/> * <code>C-x k</code> eller <code>kill-buffer</code>. Ber om et buffernavn og fjerner hele datastrukturen for dette bufferet fra GNU Emacs. Hvis bufferet er modifisert, vil du få mulighet til å lagre det (dette fjerner ikke den assosierte datafilen).<ref name="Waclena2009"/> * <code>C-x C-q</code> eller <code>vc-toggle-read-only</code>. Skrivebeskytter et buffer slik at dets innhold bare kan leses, eller gjør det skrivbart hvis det er skrivebeskyttet. Hvis filene er under versjonskontroll, vil kommandoen også sjekke filene for deg.<ref name="Waclena2009"/> ====Manipulering av vinduer==== * <code>C-v</code> eller <code>scroll-up</code>. Kommando som ruller fremover en skjerm av gangen.<ref name="Waclena2009"/> * <code>M-v</code> eller <code>scroll-down</code>. Kommando som ruller bakover en skjerm av gangen.<ref name="Waclena2009"/> * <code>C-x o</code> eller <code>other-window</code>. Svitsjer til et annet vindu og gjør det aktivt. Gjentatte bruk av denne kommandoen beveger seg gjennom alle vinduer, fra venstre til høyre og fra toppen til bunnen, og sirkulerer deretter gjennom alle igjen.<ref name="Waclena2009"/> * <code>C-x 1</code> eller <code>delete-other-windows</code>. Lukk alle andre vinduer enn det som er aktivt. Kommandoen sletter ikke bufferene eller datafilene som er assosiert med vinduene.<ref name="Waclena2009"/> * <code>C-x 0</code> eller <code>delete-window</code>. Sletter det nærværende vindu, og endrer størrelsen på de andre.<ref name="Waclena2009"/> * <code>C-x 2</code> eller <code>split-window-vertically</code>. Deler et vindu i to, vertikalt. Det skaper et nytt vindu, men ikke et nytt buffer, for det samme buffer vil nå vises i to vinduer. Slik kan man se to deler av samme buffer samtidig.<ref name="Waclena2009"/> * <code>C-x 3</code> eller <code>split-window-horizontally</code>. Deler et vindu i to, horisontalt.<ref name="Waclena2009"/> * <code>C-M-v</code> eller <code>scroll-other-window</code>. Liksom <code>C-v</code>, men ruller fremover til neste vindu. Hvis det er mer enn to vinduer, vil neste vindu være det som <code>C-x o</code> svitsjer til.<ref name="Waclena2009"/> ====Hjelpefunksjoner==== * <code>C-h a</code> eller <code>command-apropos</code>. Ber om et nøkkelord og lister deretter alle kommandoer med dette nøkkelordet i lange navn.<ref name="Waclena2009"/> * <code>C-h k</code> eller <code>describe-key</code>. Ber om en tast og beskriver kommandoer knyttet til denne tasten.<ref name="Waclena2009"/> * <code>C-h i</code> eller <code>info</code>. Ber om hypertekst-dokumentleseren Info.<ref name="Waclena2009"/> * <code>C-h m</code> eller <code>describe-mode</code>. Beskriver den gjeldende store modus og dens spesielle bindinger til taster.<ref name="Waclena2009"/> * <code>C-h p</code> eller <code>finder-by-keyword</code>. Kjører en interaktiv emneorientert leser av Emacs-pakker<ref name="Waclena2009"/> * <code>C-h t</code> eller <code>help-with-tutorial</code>. Kjører en opplæring i GNU Emacs.<ref name="Waclena2009"/> ====Modifisering av eksterne programmer==== [[Fil:Emacs statusline.png|thumb|right|upright=2.1|[[Statuslinje]]n i GNU Emacs.{{byline|Foto: Heptite|6. desember 2006}}]] Enkelte kommandoer påkaller et eksternt program, slik som <code>ispell</code> for stavekontroll eller [[GNU Compiler Collection]] (gcc) for [[kompilering]], parsing og visning av resultatet i GNU Emacs. Emacs støtter også «underordnede prosesser» — langvarige prosesser som samspiller med et Emacs-buffer. Dette brukes for å implementere {{mono|shell-mode}}, hvor [[Unix-skall]]et er en underordnet prosess. Det brukes også i moduser med [[read–eval–print løkke]]r (REPL) for ulike programmeringsspråk. Støtten for eksterne prosesser, gjør GNU Emacs attraktiv for interaktiv programmering i tråd med prinsippene i [[Interlisp]] eller [[Smalltalk]].<ref>{{cite journal|title=GNU Emacs as a dynamically extensible programming environment |url=https://archive.org/details/sim_software-practice-experience_1988-10_18_10/page/999 | doi=10.1002/spe.4380181006 | volume=18| issue=10 |journal=Software: Practice and Experience|pages=999–1009|year = 1988|last1 = Halme|first1 = Heikki| last2=Heinänen | first2=Juha }}</ref> De som foretrekker taster som er i stil med [[IBM Common User Access]] kan bruke {{mono|cua-mode}}. Dette var opprinnelig en tredjeparts tilføyelse, og ble inkludert i GNU Emacs i versjon 22.1 i 2007. ===Minibuffer=== [[Fil:Pantallazo Emacs.png|thumb|Redigering av [[spania|spansk]] [[wikipedia]] under GNU Emacs.{{byline|Foto: ManuelGR|5. november 2006}}]] [[Fil:Eww GNU Emacs 24.4.png|thumb|[[Nettleser]]en [[Emacs Web Wowser]] ''(eww)'' i GNU Emacs viser Emacs-artikkelen i [[england|engelsk]] [[wikipedia]]. Skrivebordsmiljøet er [[KDE Software Compilation|KDE]] 4.13.2{{byline|Foto: Inops|5. februar 2015}}]] Emacs benytter et «minibuffer», vanligvis linjen i bunnen, til å presentere status- og kommandoinformasjon. Dette er funksjoner som vanligvis utføres av [[dialogboks]]er i de fleste [[grafisk brukergrensesnitt|grafiske brukergrensesnitt]]. Minibufferet holder informasjon slik som filnavn når man søker etter navnet på en datafil som skal leses eller skrives. [[Kommandolinjeavslutning]] er tilgjengelig ved å trykke <code>[[Alt (tast)|Alt]]</code> eller [[tabulator]]en. ===Filhåndtering og visning=== GNU Emacs holder tekst i [[datastruktur]]er kjent som [[databuffer]]e. Slike buffere kan vises på skjermen, og egenskapene til bufferene er både tilgjengelig for et program skrevet i Emacs Lisp og for brukergrensesnittet.<ref>{{cite book|url=https://books.google.com/books?id=h34pwy005nYC&pg=PA264&lpg=PA264|title=Beautiful Architecture: Leading Thinkers Reveal the Hidden Beauty in Software Design|isbn=9780596554392|last1=Spinellis|first1=Diomidis|last2=Gousios|first2=Georgios|date=2009-01-15}}</ref> Brukeren kan skape nye buffere, og forkaste uønskede, og mange buffere kan eksistere samtidig. Det er ingen øvre grense på antall buffere, bortsett fra grensen i datamaskinens [[RAM|minne]]. Avanserte brukere kan samle hundrevis av åpne buffere av forskjellige typer mens de arbeider.<ref>{{cite book|url=https://books.google.com/books?id=t0NECwAAQBAJ&pg=PA853&lpg=PA853|title=Statistical Analysis and Data Display: An Intermediate Course with Examples in R|isbn=9781493921225|last1=Heiberger|first1=Richard M.|last2=Holland|first2=Burt|date=2015-12-23}}</ref> GNU Emacs kan konfigureres til å lagre listen av åpne buffere når programmet avsluttes, og gjenåpne denne listen når det startes på nytt.<ref>{{cite web|url=https://www.gnu.org/software/emacs/manual/html_node/emacs/Saving-Emacs-Sessions.html|title=Saving Emacs Sessions}}</ref> Enkelte buffere inneholder tekst som er lastet fra [[tekstfil]]er, som brukeren kan redigere og lagre permanent. Slike buffere kalles «besøkende [[datafil]]er». Buffere kan også vise andre data, slik som utmatningen av Emacs-kommandoer, [[Mappe (filsystem)|kataloglistinger]] ved hjelp av ''[[dired]]'', [[Streng (informatikk)|tekststrenger]] med dokumentasjon fra biblioteket «hjelp» og meldinger og beskjeder som andre teksteditorer viser i en [[dialogboks]]. Noen av disse meldinger vises kort i minibufferet, og GNU Emacs har et eget buffer (<code>*Messages*</code>) som holder historien om de mest nylige meldinger av denne type. Når minibufferet brukes for utmatninger av GNU Emacs, kalles det «ekko-området».<ref>{{cite web|url=https://www.gnu.org/software/emacs/manual/html_node/emacs/Echo-Area.html|title=Echo Area}}</ref> Lengre meldinger vises i egne buffere. Den maksimale lengden på meldinger som viser i minibufferet er konfigurerbart. Buffere kan tjene som områder for innmatning og utmatning av en ekstern prosess, slik som et [[Skall (programvare)|skall]] eller miljøer med en [[read–eval–print løkke]] (REPL). Buffere som GNU Emacs skaper selv har typisk et navn merket med [[asterisk]]er på slutten, for å skille dem fra brukerbuffere. Også listen over åpne buffere vises i et buffer. De fleste tastekombinasjoner er funksjonelle i et hvilket som helst buffer. <code>Ctrl-s</code> <code>isearch</code>, kan for eksempel brukes til å søke etter et filnavn i flere ''dired''-buffere, og fil-listen kan lagres i en tekstfil på samme måte som i ethvert annet buffer. Modusen til ''dired''-buffere kan byttes slik at de blir skrivbare, og slik at filnavnene og attributtene kan redigeres som tekst; når bufferet blir lagret, blir endringene skrevet til filsystemet. Dette gjør det mulig for mange datafiler å bli omdøpt, ved å bruke søke- og erstatt-funksjonene i GNU Emacs. I slike tilfeller viser GNU Emacs [[Diskbilde|bildefilene]] i bufferene. GNU Emacs er binærtrygg og [[8-biter]]s ren.<ref>{{cite web|url=https://www2.lib.uchicago.edu/keith/tcl-course/emacs-tutorial.html|title=A Tutorial Introduction to GNU Emacs}}</ref> [[Fil:Parabola GNU+Linux-libre+GNOME+Emacs.png|thumb|GNU Emacs på distribusjonen [[Parabola GNU/Linux-libre]] med skrivebordsmiljøet [[GNOME]].{{byline|Foto: Sisgeo|26. mars 2018}}]] GNU Emacs kan splitte redigeringsområdet inn i flere separate ikke-overlappende seksjoner kalt «vinduer». Denne egenskapen har vært tilgjengelig siden 1975, og går forut for de [[grafisk brukergrensesnitt|grafiske brukergrensesnitt]] som idag er i vanlig bruk. I Emacs-terminologien tilsvarer «vinduer» det som i [[HTML]] kalles «[[Ramme (internett)|rammer]]» og i [[vindussystem]]er kalles «[[panert vindu (grafiske brukergrensesnitt)|panerte vinduer]]». Dette er rektangulære deler av programmets skjermbilde som kan oppdateres og som man har interaksjon med uavhengig av hverandre. Hvert Emacs-vindu har en [[statuslinje]] («moduslinje») som vises i bunnen av vinduet. Emacs-vinduer er tilgjengelige både som tekst-terminaler og i grafisk modus og tillater flere buffere, eller flere deler av et buffer, å vises samtidig. Vanligvis viser et ''dired''-buffer alle datafilene i den nåværende katalogen (det er også spesielle moduser som lar filbufferet følge datafilen som er fremhevet i ''dired''). [[Kildekode]]n til et program kan vises i et annet vindu, mens et tredje vindu kan vise et skall-buffer med resultatet av å kompilere programmet. I et fjerde vindu kjøres en [[avluser]] sammen med et skall-buffer som kjører programmet. I et femte vindu kan det vises frem en [[Man (Unix)|man-side]] eller annen dokumentasjon (som også kan lastes ned via [[internett]] ved å bruke en av GNU Emacs sine innebygde [[nettleser]]e). Det er også mulig å vise flere datafiler for redigering samtidig, slik som en filheader sammen med dens implementasjon i et C-basert programmeringsspråk. <code>follow-mode</code> er en mindre modus hvor vinduer lenkes sammen for å vise ikke-overlappende deler av et buffer. I <code>follow-mode</code> kan en enkelt datafil vises i flere vinduer side-om-side som oppdateres når de [[Rullefelt|rulles]]. GNU Emacs støtter også «innsnevring» av et buffer for å vise bare deler av en datafil, mens toppen/bunnen av bufferet navigerer funksjonelt og kalkulasjoner av bufferstørrelsen bare reflekterer det valgte område. Emacs-vinduer er [[flisleggende vindushåndterer|flislagte]] og kan ikke opptre «over» eller «under» et annet vindu. GNU Emacs kan starte flere «rammer» som vises som individuelle [[Vindu (informatikk)|vinduer]] i et grafisk brukergrensesnitt. På en tekstbasert [[dataterminal]] vises flere rammer på en stakk som fyller hele terminalvinduet, og man kan svitsje mellom dem med standard Emacs-kommandoer.<ref>{{cite web|url=https://www.gnu.org/software/emacs/manual/html_node/emacs/Frames.html|quote=However, it is still possible to create multiple “frames” on text terminals; such frames are displayed one at a time, filling the entire terminal screen|title=Frames - GNU Emacs Manual}}</ref> ===Store modi=== [[Fil:Guixsd-xfce-icecat-emacs.png|thumb|GNU Emacs sammen med [[GNU Icecat]] og [[Xterm]] på [[skrivebordsmiljø]]et [[Xfce]] på distribusjonen [[GNU Guix System]].{{byline|Foto: GuixSD project|16. august 2015}}]] GNU Emacs kan vise eller redigere forskjellige typer tekst og kan oppføre seg i henhold til de [[programvareutvidelse]]ne som kalles «[[Emacs#Egenskaper|store modi]]». Det finnes mange store modi for forskjellige hensikter. Eksempler er redigering av ordinære tekstfiler, såvel som av kildekoden til mange [[markeringsspråk]] og programmeringsspråk, visning av [[nettside]]r, [[Mappe (filsystem)|mapper]] og annen systeminformasjon. Hver stor modus involverer et program skrevet i Emacs Lisp, som utvider egenskapene til GNU Emacs. Store modi sørger vanligvis for noen eller alle av følgende egenskaper: * [[Syntaksfremheving]] (''font lock''): Kombinering av [[font]]er og farger (''«faces»'')<ref> {{cite book | first1 = Debra | last1 = Cameron | first2 = Bill | last2 = Rosenblatt | first3 = Eric S. | last3 = Raymond | author3-link = Eric S. Raymond | title = Learning GNU Emacs | url = https://books.google.com/books?id=-RtYk55cqfgC | accessdate = 2010-11-02 | edition = 2 | series = In a Nutshell Series | year = 1996 | publisher = O'Reilly Media, Inc. | isbn = 978-1-56592-152-8 | page = 533 | quote = A face is a font and colour combination. }}</ref> som skiller mellom [[Reservert ord|reserverte ord]] og kommentarer i et dataprogram * Automatiske innrykk for å opprettholde konsistent formatering i en datafil * Automatisk innsetting av åpenrom, linjeskift og [[parantes]]er * Spesielle redigeringskommandoer, slik som kommandoer for å hoppe til begynnelsen eller slutten av en funksjon mens man redigerer et dataprogram eller kommandoer for å validere dokumenter eller sette inn avsluttende koder når man arbeider med markeringsspråk som [[XML]] ===Mindre modi=== [[Fil:Guix-edit+evince.png|thumb|GNU Emacs sammen med en PDF-leser og [[Xterm]] på [[skrivebordsmiljø]]et [[Xfce]] på distribusjonen [[GNU Guix System]].{{byline|Foto: GuixSD project|16. august 2015}}]] «Mindre modi» åpner for videre tilpasninger. Et buffer kan bruke bare en stor modus av gangen, men flere mindre modi kan operere samtidig. De kan operere direkte på dokumenter, på samme måte som den store modus for programmeringsspråket C definerer en separat mindre modus for hver enkelt av dens [[innrykkstil]]er, eller de kan endre redigeringsmiljøet. Eksempler på det siste inkluderer en modus som tilføyer muligheten til å angre på endringer i vinduskonfigurasjonen og en som utfører syntakssjekking under kjøring. Det er også en stor modus som tillater flere store moduser å brukes i en enkelt datafil, for enkelthets skyld når du redigerer et dokument hvor flere programmeringsspråk er innbakt. ===Batchmoduser=== GNU Emacs støtter muligheten for å bruke [[Emacs Lisp]] som en kommandotolk uten å vise teksteditoren i brukergrensesnittet. I batchmodus blir brukerkonfigurasjonen ikke lastet, og teksten som redigeres blir ikke vist til <code>stdout</code> gjennom kommandoene <code>prin1</code>, <code>princ</code> eller <code>print</code> (eller <code>stderr</code> ved feil). [[Interrupt]]-tegnene <code>C-c</code> og <code>C-z</code> vil ha deres vanlige effekt å avslutte et program eller suspendere utførelsen istedet for å påkalle Emacs-tastebindinger. GNU Emacs har [[kommandolinje|kommandolinje-opsjoner]] som spesifiserer enten en fil som skal lastes og utføres, eller en Emacs Lisp-funksjon som kan sendes inn fra kommandolinjen. GNU Emacs vil starte opp, utføre den innsendte datafil eller funksjon, skrive ut resultatet, og så avslutte.<ref>{{cite web|url=https://www.gnu.org/software/emacs/manual/html_node/emacs/Initial-Options.html#Initial-Options|title=Initial Options}}</ref> [[shebang (Unix)|Shebang]]-linjen <code>#!/usr/bin/emacs --script</code> kan skape frittstående skript i Emacs Lisp.<ref>{{cite web|url=https://www.emacswiki.org/emacs/BatchMode|title=BatchMode}}</ref> Batchmodus er ikke en Emacs-modus ''per se'', men beskriver en alternativ utførelse for Emacs-programmet.
Redigeringsforklaring:
Merk at alle bidrag til Wikisida.no anses som frigitt under Creative Commons Navngivelse-DelPåSammeVilkår (se
Wikisida.no:Opphavsrett
for detaljer). Om du ikke vil at ditt materiale skal kunne redigeres og distribueres fritt må du ikke lagre det her.
Du lover oss også at du har skrevet teksten selv, eller kopiert den fra en kilde i offentlig eie eller en annen fri ressurs.
Ikke lagre opphavsrettsbeskyttet materiale uten tillatelse!
Avbryt
Redigeringshjelp
(åpnes i et nytt vindu)
Denne siden er medlem av 2 skjulte kategorier:
Kategori:Artikler med offisielle lenker og uten kobling til Wikidata
Kategori:Artikler uten offisielle lenker fra Wikidata
Navigasjonsmeny
Personlige verktøy
Ikke logget inn
Brukerdiskusjon
Bidrag
Opprett konto
Logg inn
Navnerom
Side
Diskusjon
norsk bokmål
Visninger
Les
Rediger
Rediger kilde
Vis historikk
Mer
Navigasjon
Forside
Siste endringer
Tilfeldig side
Hjelp til MediaWiki
Verktøy
Lenker hit
Relaterte endringer
Spesialsider
Sideinformasjon