Ero sivun ”Emacs” versioiden välillä
Siirry navigaatioon
Siirry hakuun
Ei muokkausyhteenvetoa |
Mainittu elisp ja kerrottu asetustiedostosta. |
||
| (20 välissä olevaa versiota 8 käyttäjän tekeminä ei näytetä) | |||
| Rivi 1: | Rivi 1: | ||
{{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> | |||
}} | |||
{{ | {{Ohje|Emacsin peruskäyttöön|Emacsin peruskäyttö}} | ||
GNU Emacs on monipuolinen ja mukautettava [[tekstieditori]] ja yleinen käyttöympäristö. | '''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 | 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. | ||
==Tiedostossa liikkuminen== | 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. | ||
Seuraavat komennot liikuttavat osoitinta puskurin sisällä. | |||
===Tiedostossa liikkuminen=== | |||
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 47: | Rivi 68: | ||
|} | |} | ||
== 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 66: | 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 76: | 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 84: | Rivi 106: | ||
|} | |} | ||
== Etsi ja korvaa == | === Etsi ja korvaa === | ||
Seuraavat komennot etsivät merkkijonoa puskurista. | Seuraavat komennot etsivät merkkijonoa puskurista. | ||
{| | {| | ||
| Rivi 96: | Rivi 118: | ||
|} | |} | ||
== Tiedostot == | === Tiedostot === | ||
{| | {| | ||
|'''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 | ||
|} | |} | ||
== Puskurit ja ikkunat == | === Puskurit ja ikkunat === | ||
{| | {| | ||
|'''C-x C-b''' | |'''C-x C-b''' | ||
|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''' | ||
| | |Piilota muut ikkunat, paitsi aktiivinen ikkuna | ||
|- | |- | ||
|'''C-x 2''' | |'''C-x 2''' | ||
| | |Jaa ikkuna pystysuunnassa | ||
|'''C-x 3''' | |'''C-x 3''' | ||
| | |Jaa ikkuna leveyssuunnassa | ||
|- | |- | ||
|'''C-x o''' | |'''C-x o''' | ||
| Rivi 132: | Rivi 157: | ||
|} | |} | ||
== Apukomennot == | === Apukomennot === | ||
{| | {| | ||
|'''C-h ?''' | |'''C-h ?''' | ||
| Rivi 145: | Rivi 170: | ||
|} | |} | ||
== Muuta == | === Muuta === | ||
{| | {| | ||
|'''C-u numero''' | |'''C-u numero''' | ||
| Rivi 159: | 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 == | ||
Dired on moodi tiedostonhallintaan. Siihen pääsee komennolla '''C-x d''' tai avaamalla hakemiston ('''C-x C-f hakemisto'''). Tällöin Dired luo puskurin, jossa hakemiston tiedostot ovat listattuna | 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 === | |||
Dired on moodi tiedostonhallintaan. Siihen pääsee komennolla '''C-x d''' tai avaamalla hakemiston ('''C-x C-f hakemisto'''). Tällöin Dired luo puskurin, jossa hakemiston tiedostot ovat listattuna [[ls|ls -l]] -komennon tavoin. Puskurin voi myös luoda [[find]]-komennon hakutuloksista komennolla '''M-x find-dired'''. Tavallisiin tiedosto-operaatiohin, kuten siirtoon, kopiointiin, poistamiseen, pakkaamiseen, salaamiseen ja niiden omistajan, oikeuksien, nimen muuttamiseen löytyy omat komentonsa. Mikäli nämä eivät riitä, voi komennolla '''!''' suorittaa kuorikomennon valituille tiedostoille. | |||
Image-dired mahdollistaa kuvien selaamisen joko pikkukuvina tai täydessä koossaan. Komento '''C-t d''' luo merkityistä tiedostoista pikkukuvat ja näyttää ne omassa puskurissaan. | Image-dired mahdollistaa kuvien selaamisen joko pikkukuvina tai täydessä koossaan. Komento '''C-t d''' luo merkityistä tiedostoista pikkukuvat ja näyttää ne omassa puskurissaan. | ||
== Kalenteri ja päiväkirja == | === Kalenteri ja päiväkirja === | ||
* '''calendar''' on Emacsin kalenteri. Se tuntee lukuisia kalenterijärjestelmiä, pystyy laskemaan auringonnousun ja -laskun ajankohdat ja kuun vaiheet ja tulostamaan kalentereita [LaTeX]- tai Html-muodossa. Kalenterissa liikkuminen sujuu pitkälti aivan tavallisilla siirtymiskomennoilla, kuten '''C-p''', '''M-a''' ja vastaavat. Ohessa on malli, jota soveltamalla Emacsin kalenteri kotoistuu. Sen voi liittää sopivasti soveltaen esim. /.emacs.d/init.el-tiedostoon. | * '''calendar''' on Emacsin kalenteri. Se tuntee lukuisia kalenterijärjestelmiä, pystyy laskemaan auringonnousun ja -laskun ajankohdat ja kuun vaiheet ja tulostamaan kalentereita [[LaTeX]]- tai Html-muodossa. Kalenterissa liikkuminen sujuu pitkälti aivan tavallisilla siirtymiskomennoilla, kuten '''C-p''', '''M-a''' ja vastaavat. Ohessa on malli, jota soveltamalla Emacsin kalenteri kotoistuu. Sen voi liittää sopivasti soveltaen esim. /.emacs.d/init.el-tiedostoon. | ||
<tt> | <tt> | ||
(setq | (setq | ||
| Rivi 181: | Rivi 220: | ||
</tt> | </tt> | ||
== Kuoria == | === Kuoria === | ||
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ää [[ | * '''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". | ||
== IRC-asiakasohjelmia == | === IRC-asiakasohjelmia === | ||
* '''ERC''' | * '''ERC''' | ||
* '''rcirc''' | * '''rcirc''' | ||
== Org == | === Org === | ||
[http://orgmode.org/ Org] kuuluu siihen harvalukuiseen sovellusten joukkoon, joiden käyttö on helpompaa kuin niiden kuvaaminen lyhyesti ja täsmällisesti. Ainakin se on Emacsin oma moodi muistiinpanojen ja todo-listojen kirjoittamiseen, projektinhallintaan ja dokumenttien laadintaan. Sitä voi käyttää esimerkiksi henkilökohtaisen Wikin tapaan. Orgilla kirjoitetut dokumentit voi viedä esimerkiksi html-sivuiksi, LaTeX-, pdf- tai odt-tiedostoiksi. | [http://orgmode.org/ Org] kuuluu siihen harvalukuiseen sovellusten joukkoon, joiden käyttö on helpompaa kuin niiden kuvaaminen lyhyesti ja täsmällisesti. Ainakin se on Emacsin oma moodi muistiinpanojen ja todo-listojen kirjoittamiseen, projektinhallintaan ja dokumenttien laadintaan. Sitä voi käyttää esimerkiksi henkilökohtaisen Wikin tapaan. Orgilla kirjoitetut dokumentit voi viedä esimerkiksi html-sivuiksi, LaTeX-, pdf- tai odt-tiedostoiksi. | ||
| Rivi 199: | Rivi 238: | ||
Lyhyt johdatus Org-moodin käyttöön on esimerkiksi [http://orgmode.org/worg/org-tutorials/orgtutorial_dto.html tämä David O'Toolen tutoriaali]. | Lyhyt johdatus Org-moodin käyttöön on esimerkiksi [http://orgmode.org/worg/org-tutorials/orgtutorial_dto.html tämä David O'Toolen tutoriaali]. | ||
=Katso myös= | === TRAMP === | ||
'''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== | |||
*[[Emacsin peruskäyttö]] | *[[Emacsin peruskäyttö]] | ||
| Rivi 205: | Rivi 270: | ||
*[[Vi]] | *[[Vi]] | ||
=Aiheesta muualla= | ==Aiheesta muualla== | ||
*[http://www.gnu.org/software/emacs/ Emacsin kotisivusto] | *[http://www.gnu.org/software/emacs/ Emacsin kotisivusto] | ||
*[ | *[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 === | ||
*[https://wiki.aalto.fi/display/unixaapinen/Emacs-tekstieditori Aalto-yliopiston Emacs-opas] | *[https://wiki.aalto.fi/display/unixaapinen/Emacs-tekstieditori Aalto-yliopiston Emacs-opas] | ||
*[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]] | ||
[[Luokka:Uutisryhmälukijat]] | [[Luokka:Uutisryhmälukijat]] | ||
[[Luokka:Sähköpostiohjelmat]] | [[Luokka:Sähköpostiohjelmat]] | ||
[[pl:Emacs]] | |||