Funksjonsrikdommen i Emacs er et resultat av den uvanlige designen hvor nesten enhver funksjon helt ned til det å legge inn et enkelt tegn inn i dokumentet er kontrollert av en Lisp-funksjon. Lisp-miljøet (Emacs Lisp) gjør det mulig å endre variabler eller metoder underveis i redigeringen uten at Emacs må rekompileres eller restartes. Oppførselen kan følgelig endres nesten uten noen grenser. Dette kan brukeren selv gjøre, men vanligvis gjøres det ved at ferdige biter Lispkode lastes inn. Disse kodebitene kalles biblioteker, pakker eller utvidelser.