Zaradi svoje vsestranskosti in kompaktnosti je med razvijalci iger razvil ogromno ime in se zato pogosto uporablja za razvoj iger, igralnih mehanizmov in namiznih aplikacij. Ker imamo za sabo tako močno jedro, je izjemno pomembno, da imamo urejevalnik, ki nudi najboljše lastnosti in olajša potrebe uporabnikov.
Emacs je en tako priročen urejevalnik, ki je zaradi svoje prilagodljivosti in prilagodljivosti hitro postal izjemno učinkovito in močno orodje za uporabo. Funkcije, kot so integracija git, več načinov urejanja ter iskanje in zamenjava regularnih izrazov, kažejo na ukazno prisotnost med širokim naborom urejevalnikov besedil.
Ker je izjemno prilagodljiv, ga je tako enostavno konfigurirati za uporabo kot IDE C ++. Zato bomo danes preučevali, kako lahko Emacs konfigurirate za razvoj C ++ in ga spremenite v IDE C ++.
Integracija C ++ z Emacsom
Za integracijo C ++ z Emacs bomo uporabili več paketov, kot so samodejno dokončanje, flycheck, magit itd. Pojdimo zdaj na postopek.
1) Dodajanje začetnih ukazov v datoteko za inicializacijo
Ob zagonu Emacsa je prva stvar, ki se obdela, inicializacijska datoteka (datoteka init), ki vsebuje ukaze, ki uporabnikom omogočajo, da Emacs prilagodijo in nastavijo v skladu s svojimi željami.
Da bi Emacs deloval kot IDE C ++, moramo tej datoteki dodati nekaj ukazov.
Če želite to narediti, odprite terminal in vnesite naslednji ukaz, da odprete datoteko za inicializacijo:
$ emacs ~ /.emacsZdaj moramo dodati naslednje vrstice kode:
(zahteva 'paket')(dodaj na seznam 'arhiv paketov
'("melpa" . "http: // melpa.org / paketi / ") t)
(inicializiraj paket)
(razen (paket-nameščen-p 'uporabniški paket)
(paket-osveži-vsebina)
(paket-namestitev 'uporabniški paket))
(poskusite z uporabo paketa: zagotovite t)
(uporabite paket-kateri-ključ: zagotovite t: config (način-kateri-ključ))
Zgoraj navedena koda v bistvu doda arhiv Melpa na seznam skladišč paketov, najdenih v Emacsu, in mu dovoli uporabo teh paketov.
Poleg tega namesti uporabni paket, ki ga lahko uporabite za namestitev drugih paketov, nastavitev vezav tipk in konfiguriranje različnih načinov Emacs.
2) Dodajanje paketa Yasnippet
Ko bomo končali z nastavitvijo našega Emacsa z začetno vsebino, bomo zdaj dodali paket yasnippet, ki je razširitev delčka kode za Emacs in zato ponuja predloge funkcij za več jezikov, vključno s C++.
Če želite to dodati v našo inicializacijsko datoteko, jo moramo najprej namestiti. Če želite to narediti, odprite Emacs in pritisnite Alt + x in vnesite paket-seznam-paketov. Zdaj zadeti Ctrl + s in poiščite yasnippet. Nadaljujte s klikom na Ctrl + s, dokler ne najdete paketa: yasnippet-snippets.
Lahko ga kliknete in izberete namestitev ali zadetek jaz čemur sledi x za namestitev paketa yasnippet.
Po namestitvi yasnippeta pritisnite Ctrl + x, čemur sledi Ctrl + f, in odprite ~ /.datoteka emacs. Znotraj tega dodajte naslednje vrstice kode:
(zahteva 'yasnippet)(yas-globalni način 1)
Preprosto zadeti Ctrl + X, čemur sledi Ctrl + S shranite datoteko in znova zaženite Emacs. Zdaj odprite nekaj datotek C ++ in videli boste spustne možnosti, kot so te, ki vam ob kliku prikažejo odrezek.
Možnosti spustnega menija:
Delček je dan po kliku na eno od možnosti:
3) Dodajanje nekaterih dodatnih paketov
Zdaj bomo dodali nekaj dodatnih paketov, ki bi nam dali več funkcij v Emacs za razvoj C ++.
Najprej bomo dodali način samodokončanja, ki je, kot že ime pove, samodejno dokončana razširitev. V datoteko za inicializacijo dodajte naslednje vrstice kode:
(samodejno dokončajte paket uporabe: zagotovite t
:v
(progn
(ac-config-default)
(način globalnega samodejnega dokončanja t)
))
Nato bomo dodali a flycheck, ki pomaga pri preverjanju skladnje s poročanjem o napakah in opozorilih. Če želite to narediti, morate v našo datoteko init dodati naslednje:
(samodejno dokončajte paket uporabe(preverite uporabniški paket
: zagotovite t
:v
(global-flycheck-mode t))
Na koncu bomo dodali še sodobna pisava c ++ paket, ki zagotavlja sintaksni poudarek najnovejšega jezika C ++.
(uporabite paket-modern-cpp-font-lock: zagotovite t)
4) Integracija Git z uporabo Magit
Emacs omogoča tudi integracijo z Gitom s pomočjo Magita, orodja git, ki deluje kot vmesnik za Git. To lahko vključimo v Emacs, tako da v našo inicializacijsko datoteko dodamo naslednje vrstice kode:
(uporabni paket magit: zagotovite t
:v
(progn
(povezovalna tipka "C-x g" 'magit-status)))
Tukaj smo s tipkami nastavili vezavo tipk Ctrl + x čemur sledi g, ki nam omogoča, da si ogledamo stanje naših datotek (brez sledenja, predvajanja, urejanja).
Če si želite ogledati ukaze Magit, pritisnite vprašaj (?). Nekateri ukazi, ki bodo prikazani, so:
Z njimi lahko svoje datoteke integriramo s programom za nadzor različic Git.
5) Prevajanje in izvajanje kode C ++
Za prevajanje in zagon kode C ++ na Emacsu bomo uporabili funkcijo po meri in razhroščevalnik GDB. To je postopek veliko lažji v primerjavi z izdelavo datotek make in nato njihovim prevajanjem in gradnjo. Če želite to narediti, najprej v datoteko za inicializacijo dodajte naslednjo kodo:
(defun kodno prevajanje ()(interaktivno)
(razen (datoteka-obstaja-p "Makefile")
(nastavite (make-local-variable 'compile-command)
(pusti ((datoteka (ime-datoteke-ime-nedirektorski vmesni pomnilnik-ime-datoteke)))
(format "% s -o% s% s"
(če je (enako (datoteka-ime-razširitev datoteke) "cpp") "g ++" "gcc")
(datoteka-ime-sans-pripona)
mapa)))
(prevajanje prevajalskega ukaza)))
(global-set-key [f9] 'prevajanje kode)
Zgornja koda nam omogoča, da z uporabo datoteke f9 tipko.
Po prevajanju za zagon datoteke C ++ pritisnite Alt + x in vnesite gdb. Dobili boste nekaj takega:
Preprosto kliknite enter in gdb se bo zagnal. Zdaj kliknite na Teči na vrhu Emacsa za zagon programa C ++.
Naslednja slika prikazuje zagnano kodo C ++:
Zakaj uporabljati Emacs za C++?
Emacs je zelo zmogljiv urejevalnik besedil, ki svojim uporabnikom ponuja toliko neverjetnih funkcij. Ker je Emacs enostavno prilagodljiv, ga lahko uporabniki enostavno nastavijo glede na svoje potrebe in želje. Spreminjajo lahko teme, sloge pisave in še veliko več. Je urejevalnik, ki ga morajo imeti uporabniki, ki želijo več svobode pri svojem delu.