Hej! Dom av er som har varit med ett tag behöver nog inte läsa mycket längre men om det finns fler nybörjare än jag på listan så kanske det här kan hjälpa någon.
Jag har en SBCL i ett jail på en FreeBSD-maskin i andra änden av stan. Jag vill kunna sitta i en Emacs hemma och hacka. Jag vill kunna sitta i en annan Emacs på jobbet och hacka i samma SBCL-instans. Låter lite utopiskt, jag vet. Men vänta lite. 0. Några definitioner. Lokal maskin #0: hemmadatan Lokal maskin #1: jobbdatan Maskin med SBCL: servern Namn på jail i servern: lntest Portnummer för att nå sshd i jailet: 60226 Användarnamn på servern: linus 1. Starta SBCL på servern. servern$ SWANK_PORT=4711 /usr/local/bin/sbcl \ --eval "(require :asdf)" \ --eval "(asdf:oos 'asdf:load-op :swank)" \ --eval "(setf swank:*use-dedicated-output-stream* nil)" \ --eval "(setf swank:*communication-style* :fd-handler)" \ --eval "(swank:create-server :port $SWANK_PORT :dont-close t)" (Det här kan med fördel göras med detachtty(1) så gör det inget om man tappar kontakten med servern nån gång emellanåt.) 2. Sätt upp ssh-tunnel mellan lokal maskin och server. hemmadatan$ ssh -Nf -L 4711:localhost:4711 -p 60226 servern (Ev. kör man på port 4005 istället, som är SLIME:s defaultport.) 3. Konfa SLIME. Jag kör f.n. CVS från 2007-11-11. Se till att ha samma version i båda ändarna. Ur ~/.emacs: --8<---------------cut here---------------start------------->8--- (add-to-list 'load-path "/u/src/slime-20071111/slime/") (add-to-list 'load-path "/u/src/slime-20071111/slime/contrib/") (add-hook 'slime-load-hook (lambda () (require 'slime-fancy) (require 'slime-typeout-frame) (require 'slime-asdf) (require 'slime-fuzzy) (require 'slime-tramp) )) (require 'slime) (push (slime-create-filename-translator :machine-instance "lntest" :remote-host "servern#60226" :username "linus") slime-filename-translations) (global-set-key "\C-cs" 'slime-selector) ;; Local copy of the CLHS, supplied by the devel/clisp-hyperspec port. ;; Invoke in SLIME with `C-c C-d h'. (setq common-lisp-hyperspec-root "file:/usr/local/share/doc/clisp-hyperspec/HyperSpec/") ;; Or, C-M-h for the info version (configure common-lisp-hyperspec-root above). (global-set-key [(control meta h)] '(lambda () (interactive) (ignore-errors (info (concatenate 'string "(gcl) " (thing-at-point 'symbol)))))) --8<---------------cut here---------------end--------------->8--- Observera ssh-portnummret till slime-create-filename-translator ovan. (En del av detta har inte med SLIME att göra men kan vara kul att ha ändå. Hyperspecen i Info-format genom C-M-h är god.) 4. Starta SLIME i Emacs. M-x slime-connect Ange 127.0.0.1 och 4711. That's it, om jag inte har glömt nåt här. Den riktigt magiska känslan infinner sig när man CL-USER> (require 'mitt-hack) och sen `M-. min-funktion' och Emacs börjar spela scp med rätt switchar och *plopp* så har man sin egen kod från remote-maskinen i en buffer lokalt! Helt genialiskt. Gör sen samma sak på jobbdatan och njut av en riktig utvecklingsmiljö. Tack till Mats Westin som kommit med tips och glada tillrop. -- Linus _______________________________________________ Lisp mailing list Lisp@lisp.se http://mailman.nocrew.org/cgi-bin/mailman/listinfo/lisp