Ero sivun ”Emacs” versioiden välillä

Siirry navigaatioon Siirry hakuun
LinuxMan (keskustelu | muokkaukset)
pEi muokkausyhteenvetoa
EgoLuser (keskustelu | muokkaukset)
Mainittu elisp ja kerrottu asetustiedostosta.
 
(8 välissä olevaa versiota 5 käyttäjän tekeminä ei näytetä)
Rivi 1: Rivi 1:
{{Ohjelma | nimi=Emacs | kuva=[[Kuva:Emacs-logo.png|150px]] | kuvateksti= | lisenssi=[[GPL]] | kotisivu=[http://www.gnu.org/software/emacs/ gnu.org/software/emacs] | käyttöliittymä=[[X]] tai teksti}}
{{Ohjelma
| nimi           = GNU Emacs
| logo          = [[Tiedosto:Emacs-logo.png|150px]]
| kuva          = [[Tiedosto:Emacs.png|250px]]
| kuvateksti     =
| tekijä        = <li>[[Richard Stallman]]</li><li>[[Free Software Foundation]]</li>
| kehittäjä      =
| moottori      =
| ensijulkaisu  = 1976
| vakaaversio    = 28.1
| vakaapvm      = 4. huhtikuuta 2022
| kehitysversio  =
| kehityspvm    =
| ohjelmoitu    = [[Emacs Lisp]], [[Roff]], [[C]]
| käyttöliittymä = [[komentorivi]]
| tyyppi        = käyttöympäristö
| lisenssi       = [[GPL]]
| kotisivu       = [https://www.gnu.org/software/emacs/ gnu.org/software/emacs]
| lähdekoodi    = <li>[https://ftp.gnu.org/gnu/emacs/ ftp.gnu.org/gnu/emacs/]</li><li>[https://github.com/emacs-mirror/emacs github.com/emacs-mirror/emacs]</li>
}}


''Tässä artikkelissa kerrotaan yleisesti ohjelmasta Emacs. Opas Emacsin peruskäyttöön löytyy artikkelista [[Emacsin peruskäyttö]]''.
{{Ohje|Emacsin peruskäyttöön|Emacsin peruskäyttö}}


'''GNU Emacs''', yleensä vain '''Emacs''' on monipuolinen ja mukautettava [[tekstieditori]] ja yleinen käyttöympäristö. GNU Emacsin kehityksen aloitti [[Richard Stallman]] vuonna 1984, joskin ensimmäiset Emacs-sukuiset editorit syntyivät jo 70-luvulla. Emacsia voi laajentaa [[Emacs Lisp]] -kielellä, jolla on toteutettu jopa mediasoitinten ja www-selainten kaltaisia sovelluksia. GNU Emacsista haarautui ([[fork]]) vuonna 1991 [[XEmacs]], jossa oli aikoinaan mm. edistyksellisempi graafinen käyttöliittymä. Nykyään XEmacsin kehitys on jäänyt jälkeen GNU Emacsista.
'''GNU Emacs''', yleensä vain '''Emacs''' on monipuolinen ja mukautettava [[tekstieditori]] ja yleinen käyttöympäristö. Emacsin ensimmäisen version kirjoitti [[Richard Stallman]] vuonna 1976. Emacsia voi laajentaa [[Emacs Lisp]] -kielellä, jolla on toteutettu jopa mediasoitinten ja www-selainten kaltaisia sovelluksia. GNU Emacsista haarautui ([[fork]]) vuonna 1991 [[XEmacs]], jossa oli aikoinaan mm. edistyksellisempi graafinen käyttöliittymä. Nykyään XEmacsin kehitys on jäänyt jälkeen GNU Emacsista.


Emacs on todella laaja ohjelma. Sen mukana tulee mm. [[sähköposti]]ohjelma (Gnus, RMail), [[uutisryhmä]]lukija (Gnus), monipuolinen kalenteri, laskin ja pelejä (löytyy <tt>Tools</tt>-valikosta). Usein vitsaillaankin, että Emacs on hyvä käyttöjärjestelmä jossa on huono tekstieditori.
Emacs on todella laaja ohjelma. Sen mukana tulee mm. [[sähköposti]]ohjelma (Gnus, RMail), [[uutisryhmä]]lukija (Gnus), monipuolinen kalenteri, laskin ja pelejä (löytyy <tt>Tools</tt>-valikosta). Usein vitsaillaankin, että Emacs on hyvä käyttöjärjestelmä, jossa on huono tekstieditori.


== Komentoja ==
== Komentoja ==
Seuraavassa on listattu joitakin yleiskäyttöisiä komentoja. Joidenkin merkitys muuttuu kulloinkin käytössä olevan moodin mukaan, ja voivatpa moodit määrittää myös omia näppäinkomentoja. Esimerkiksi [[Vi]]-editorin emulointiin on olemassa vakiona peräti kolme moodia. Näppäinkomennot, kuten monet muutkin asiat Emacsissä, voi mukauttaa mieleisekseen.
Seuraavassa on listattu joitakin yleiskäyttöisiä komentoja. Joidenkin merkitys muuttuu kulloinkin käytössä olevan moodin mukaan, ja voivatpa moodit määrittää myös omia näppäinkomentoja. Esimerkiksi [[Vi]]-editorin emulointiin on olemassa ainakin peräti kolme moodia, joista käytetyin lienee olevan '''evil'''-moodi. Näppäinkomennot, kuten monet muutkin asiat Emacsissä, voi mukauttaa mieleisekseen.


Seuraavassa luettelossa '''C''' tarkoittaa Control-näppäintä ja '''M''' Meta-näppäintä, joka on yleensä Alt, mutta Esc-näppäin toimii myös.
Seuraavassa luettelossa '''C''' tarkoittaa näppäintä {{näppäin|Ctrl}} ja '''M''' Meta-näppäintä, joka on yleensä {{näppäin|Alt}}, mutta {{näppäin|Esc}}-näppäin toimii myös.


===Tiedostossa liikkuminen===
===Tiedostossa liikkuminen===
Seuraavat komennot liikuttavat osoitinta puskurin sisällä.
Seuraavat komennot liikuttavat osoitinta puskurin (eng. ''buffer'') sisällä. Puskuri on väliaikainen paikka tekstille ja muulle tiedolle. Puskurin sisältämä tieto voidaan käyttäjän halutessa tallentaa tiedostoon (esimerkiksi näppäinkomennolla '''C-x C-s''').
{|
{|
|'''C-p'''
|'''C-p'''
Rivi 50: Rivi 69:


=== Tekstin poistaminen, palauttaminen ja valinta ===
=== Tekstin poistaminen, palauttaminen ja valinta ===
Emacsissä tekstin valinta tapahtuu asettamalla merkki ja liikuttamalla kursoria. Valinta on merkin ja kursorin väliin jäävä alue.
Emacsissä tekstin valinta tapahtuu asettamalla merkki (eng. ''point'') ja liikuttamalla kursoria. Valinta on merkin ja kursorin väliin jäävä alue.
Kopiointi ja leikkaaminen laittavat tekstin Emacsin omaan rengaspuskuriin, jossa aiemmin leikatut ja kopioidut tekstinpätkät ovat (tätä kutsutaan englanniksi käsitteellä ''kill ring'').
{|
{|
|'''C-välilyönti'''
|'''C-välilyönti'''
Rivi 68: Rivi 88:
|-
|-
|'''C-k'''
|'''C-k'''
|Leikkaa rivin loppu
|Leikkaa (eng. ''kill'') tekstiä rivin loppu
|'''M-k'''
|'''M-k'''
|Leikkaa lauseen loppu
|Leikkaa lauseen loppu
Rivi 78: Rivi 98:
|-
|-
|'''C-y'''
|'''C-y'''
|Liitä
|Liitä (eng. ''yank'')
|'''M-y'''
|'''M-y'''
|Korvaa edellinen liitos vanhemmalla leikkauksella
|Korvaa edellinen liitos vanhemmalla leikkauksella
Rivi 102: Rivi 122:
|'''C-x C-f'''
|'''C-x C-f'''
|Avaa tiedosto
|Avaa tiedosto
|-
|'''C-x C-s'''
|'''C-x C-s'''
|Tallenna tiedosto
|Tallenna tiedosto
|-
|'''C-x C-w'''
|'''C-x C-w'''
|Tallenna tiedosto nimellä
|Tallenna tiedosto nimellä
|-
|'''C-x s'''
|'''C-x s'''
|Tallenna kaikki tiedostot
|Tallenna kaikki tiedostot
Rivi 115: Rivi 138:
|Listaa puskurit
|Listaa puskurit
|'''C-x k'''
|'''C-x k'''
|Tuhoa puskuri
|Tuhoa (eng. ''kill'') puskuri
|-
|-
|'''C-x 0'''
|'''C-x 0'''
|Piilota aktiivinen ikkuna
|Piilota aktiivinen ikkuna
|'''C-x 1'''
|'''C-x 1'''
|Suurenna aktiivinen ikkuna
|Piilota muut ikkunat, paitsi aktiivinen ikkuna
|-
|-
|'''C-x 2'''
|'''C-x 2'''
|Kahdenna ikkuna pystysuunnassa
|Jaa ikkuna pystysuunnassa
|'''C-x 3'''
|'''C-x 3'''
|Kahdenna ikkuna leveyssuunnassa
|Jaa ikkuna leveyssuunnassa
|-
|-
|'''C-x o'''
|'''C-x o'''
Rivi 161: Rivi 184:
|'''F10'''
|'''F10'''
|Siirry valikkoon
|Siirry valikkoon
|-
|'''M-x'''
|Suorita Emacsin komento antamalla sen nimi
|}
==== Makrot ====
Emacsissa voi nauhoittaa näppäimistömakroja helposti.
Huomaa, että tämä opas sisältää vain Emacsin peruskäytön, ja Emacsissa on esimerkiksi makroihin liittyviä toimintoja enemmän kuin mitä tässä artikkelissa voidaan opettaa.
{|
|'''F3'''
|Aloita uuden makron nauhoittaminen. Mutta jos makron nauhoittaminen on käynnissä, syötä puskuriin uusi juoksevanumero.
|-
|'''F4'''
|Jos makroa nauhoitetaan parhaillaa, lopeta ko. makron nauhoittaminen. Mutta jos makroa ei parhaillaan nauhoteta, viimeisin makro toistetaan aktiivisessa puskurissa.
|}
|}


== Emacs-sovelluksia ==
== Emacs-sovelluksia ==


Emacs sisältää hyvin laajalti erilaisia ohjelmia. Seuraavassa listataan niistä muutamia. Useimmat käynnistyvät joko komennolla '''M-x ohjelma''', tai käynnistyvät automaattisesti esim. lähdekooditiedostoa avattaessa.
Emacs sisältää hyvin laajalti erilaisia ohjelmia. Seuraavassa listataan niistä muutamia. Useimmat käynnistyvät joko komennolla '''M-x ohjelma''', tai käynnistyvät automaattisesti esim. lähdekooditiedostoa avattaessa. Lisää paketteja (sovelluksia) voi asentaa Emacsin omalla [[paketinhallintajärjestelmä]]llä ('''M-x list-packages'''), ja sen käyttöohjeen saa tuttuun tapaan näppäilemällä '''C-h m'''.


=== Hakemistomuokkain Dired ===
=== Hakemistomuokkain Dired ===
Rivi 186: Rivi 223:
Yksittäisiä kuorikomentoja voi suorittaa komennolla '''M-!'''. Numeerisella argumentilla, esim. '''C-u M-!''' kuorikomennon tuloste kirjoitetaan nykyiseen puskuriin. '''M-|''' taas käyttää valintaa komennon standardisyötteenä. Jos nämä eivät riitä vaan tarvitaan interaktiivinen komentokuori-istunto, löytyy Emacsistä seuraavat sovellukset:
Yksittäisiä kuorikomentoja voi suorittaa komennolla '''M-!'''. Numeerisella argumentilla, esim. '''C-u M-!''' kuorikomennon tuloste kirjoitetaan nykyiseen puskuriin. '''M-|''' taas käyttää valintaa komennon standardisyötteenä. Jos nämä eivät riitä vaan tarvitaan interaktiivinen komentokuori-istunto, löytyy Emacsistä seuraavat sovellukset:
* '''shell''' on yksinkertainen, mutta "tyhmä" kuori.
* '''shell''' on yksinkertainen, mutta "tyhmä" kuori.
* '''ansi-term''' ja '''term''' käynnistävät "älykkään" kuoren, jolla voi käyttää [[Ncurses]]-sovelluksia, kuten vaikkapa Nethackia. Tämä mahdollistaa järkevän editorin, kuten Vimin, käytön Emacsissä.
* '''ansi-term''' ja '''term''' käynnistävät "älykkään" kuoren, jolla voi käyttää [[Ncurses]]-sovelluksia, kuten vaikkapa Nethackia. Tämä mahdollistaa järkevän editorin, kuten Vimin, käytön Emacsissä (jos oikeasti haluaa käyttää Vimin kaltaisia näppäinkomentoja Emacsissa, on suositeltavaa asentaa '''evil'''-mode.).  
* '''eshell''' on kokonaan elispillä ohjelmoitu kuori, joka on shelliä "tyhmempi".
* '''eshell''' on kokonaan elispillä ohjelmoitu kuori, joka on shelliä "tyhmempi".


Rivi 204: Rivi 241:


'''TRAMP''' (suomeksi 'kulkuri') eli Transparent Remote Access, Multiple Protocol tuo etätiedostojen muokkauskyvyn Emacsiin. Se tukee [[ssh]]-, [[rsh]]-, [[telnet]]-protokollia.
'''TRAMP''' (suomeksi 'kulkuri') eli Transparent Remote Access, Multiple Protocol tuo etätiedostojen muokkauskyvyn Emacsiin. Se tukee [[ssh]]-, [[rsh]]-, [[telnet]]-protokollia.
== Emacsin asetustiedosto ==
elisp (''Emacs Lisp'') on Lisp-murre, jolla toteutetaan Emacsin asetukset, sovellukset sekä suurin osa Emacsin sisäisestä toiminnoista.
Kolmannenosapuolen tekemien sovellusten vaatimat asetukset on yleensä kerrottu kyseisen sovelluksen kotisivuilla.
Oman asetustiedoston löytää yleensä omasta [[kotikansio]]sta nimellä <tt>.emacs</tt>.
Jos asetustiedostoa ei löydy, sen polun voi tarkistaa muuttujan <tt>user-init-file</tt> arvon avulla (käyttämällä näppäinkomentoa '''C-h v''').
Asetuksia ja muuta elisp-koodia voi testailla <tt>*scratch*</tt>-puskurissa.
Itse koodin voi suorittaa esimerkiksi komennolla '''M-x eval-buffer'''.
Emacsin asetuksia voi myös muuttaa käyttämällä käyttäjäystävällistä käyttöliittymää:
{|
|'''M-x customize'''
|Avaa asetuskäyttöliittymän aloitussivu.
|-
|'''M-x customize-group'''
|Hyppää johonkin asetuskategoriaan sen nimen mukaan.
|-
|'''M-x customize-themes'''
|Vaihda Emacsin käyttämä väriteema.
|}


==Katso myös==
==Katso myös==
Rivi 213: Rivi 272:
==Aiheesta muualla==
==Aiheesta muualla==
*[http://www.gnu.org/software/emacs/ Emacsin kotisivusto]
*[http://www.gnu.org/software/emacs/ Emacsin kotisivusto]
*[http://www.emacswiki.org/cgi-bin/wiki Emacs-wiki]
*[https://www.emacswiki.org/emacs/SiteMap Emacs-wiki]
*[[wikipedia:fi:Emacs|Emacs suomenkielisessä Wikipediassa]]
*[[wikipedia:fi:GNU Emacs|Emacs suomenkielisessä Wikipediassa]]
*[[wikipedia:Emacs|Emacs englanninkielisessä Wikipediassa]]
*[[wikipedia:GNU Emacs|Emacs englanninkielisessä Wikipediassa]]


=== Emacs-oppaita ===
=== Emacs-oppaita ===
Rivi 221: Rivi 280:
*[http://www.cs.tut.fi/~jkorpela/emacs/ Jukka Korpelan Emacs-opas]
*[http://www.cs.tut.fi/~jkorpela/emacs/ Jukka Korpelan Emacs-opas]
*[http://www.gnu.org/software/emacs/manual/emacs.html Emacsin manuaali verkossa]
*[http://www.gnu.org/software/emacs/manual/emacs.html Emacsin manuaali verkossa]
*[https://www.gnu.org/software/emacs/manual/html_node/eintr/index.html Emacs Lisp opas]
*[https://emacsrocks.com/ Emacs Rocks! -videosarja]


{{Kehitysympäristöt}}
[[Luokka:Tekstieditorit]]
[[Luokka:Tekstieditorit]]
[[Luokka:Kehitystyökalut]]
[[Luokka:Kehitystyökalut]]
Noudettu kohteesta ”https://www.linux.fi/wiki/Emacs