Emacs/common-lisp
Środowisku :
- OS : linux
- Ubuntu
- IDE : Emacs 22.2.1
- mode :
- major mode : inferior-lisp
- minor mode : slime
- mode :
Przygotowania
edytujAby przygotować Emacsa do pracy z Common Lispem ( tu SBCL) należy
- Zainstalować sbcl, slime i cl-swank. W tym celu w konsoli wpisujemy :
sudo apt-get install slime cl-swank sbcl
- Dodać do pliku .emacs w swoim katalogu domowym comendę : (setq inferior-lisp-program "sbcl"). W konsoli wpisujemy :
echo '(setq inferior-lisp-program "sbcl")' >> ~/.emacs
- Uruchomić emacsa poprzez wpisanie w konsoli :
emacs
- Jesteśmy w emacsie. Przełączamy się na slime. Wpisujemy :
M-x slime
To znaczy naciśnij Alt (i nie puszczaj ) oraz x, napisz : slime i wciśnij Enter.
- Teraz jesteś w SBCL.
Wprowadzanie poleceń
edytujMamy kilka sposobów :
- wybrać z menu ( nie wszystkie polecenia mają swój odpowiednik w menu)
- wpisać w slime-repl , np. : (load "a.lisp")
- użyć kombinacji klawiszy :
- M-x slime-load-file
- C-c C-l
Programowanie w Lispie
edytujMamy kilka sposobów :
- wprowadzać pojedyncze polecenia ( patrz wyżej)
- wczytać plik z programem ( tryb wsadowy , ang. batch mode )
- wczytać biblioteki, a następnie wprowadzić polecenia
- utworzyć plik w Emacsie , wpisać do niego polecenia i uruchomić go. W tym przypadku wykorzystujemy Emacsa na 2 sposoby : jako edytor tekstu i IDE.
Tworzenie i edycja pliku
edytujC-x C-f lub z menu File/Visit New File.
Jeśli plik istnieje to zostanie otwarty, jeśli nie istnieje to utworzony w nowym buforze. Jeśli nadamy plikowi odpowiednie rozszerzenie np. lsp lub lisp ) to automatycznie zostanie wybrane podświetlanie składni dla Lisp.
Wpisujemy polecenia do edytowanego pliku.
Możemy wkleić zawartość schowka za pomocą polecenia C-y, chyba że wolimy C-v.
Wtedy możemy zmienić to za pomocą komendy menu ( Options/C-x .... ) lub oczywiście poprzez odpowiedni wpis w pliku .emacs .
Kompilacja i uruchomienie programu
edytujMożemy wybrać z menu SLIME/Compilation/Compile File a następnie SLIME/Evaluation/Eval Region
Polecenia slime | Skrót klawiszowy Emacsa | Opis |
---|---|---|
slime-load-file |
C-c C-l |
Wczytać plik |
. |
C-c C-k |
Wczytać i skompilować plik |
Przykładowe programy
edytujMinifract
edytuj
Aby uruchomić potrzebujesz :
- linux ( OS )
- emacsa ( editor, and more )
- SBCL = SB Common Lisp
- ZPNG ( library for png )
- ffmpeg
- minifract
Instalujemy zpng
edytujPo zainstalowaniu w Emacsie / Slime wpisujemy :
(asdf:oos 'asdf:load-op :asdf-install) (asdf-install:install :zpng)
Instalujemy minifract
edytuj# in a shell # download mini-fract-0.6 # extract it # I have done it to /home/adam/mini-fract-0.6/ ln -s ~/mini-fract-0.6/mini-fract.asd ~/.sbcl/systems
Uruchamiamy
edytuj; in a lisp ( in emacs, in the slime buffer ) ; load mini-fract (load "/home/adam/mini-fract-0.6/mini-fract.lisp") ;change-package mini-fract (in-package mini-fract) ; to make a movie ; it makes one movie using values from second item from list *interesting-regions* ; directory mov-index nb-movs (make-movie "/tmp/movs/" 1 1) ; you will find it in /tmp/movs/ directory