From: Victor Kryukov <victor.kryukov+news@gmail.com>
Subject: Several questions on SLIME customizations
Date: Sat, 18 Nov 2006 23:32:45 -0600 [thread overview]
Message-ID: <m2hcwwypaa.fsf@victor-kryukovs-computer.local> (raw)
Hello list,
I've a couple emacs customization/elisp questions, which are not very
closely related, except that they have one unifying theme: making life
under SLIME better (as I understand it). I would appreciate if you
could answer at least some of them - and of course, feel free to share
you strategies to customize SLIME!
= Redefining TAB. =
I tried TextMate recently (yes, luckily I live under Mac OS X; no, I
don't want to start another flame war), and I especially like how it
treats TAB key - ok, ok, I know that their behaviour is risky because
it's context-dependent, but vim users somehow manage to accomodate to
multiple contexts ;).
Anyway, TAB is too valuable key to spare, as it's very easy to type,
and in my use case, I never need to use it _alone_: most often during
editing I need to wrap a bunch of lines into let statement, say, so I
need to indent a whole region anyway. Hence my strategy was like this:
(global-set-key "\r" 'newline-and-indent)
makes Return indent next line automatically, and the following function
indents the whole defun:
(defun indent-defun ()
(interactive)
(let (a b)
(beginning-of-defun)
(setq a (point))
(end-of-defun)
(setq b (point))
(indent-region a b)))
After that, we don't need TAB for any indenting purposes, and can
redefine it to something more useful (we redefined default key binding
for indent-region, as we don't need it that often):
(add-hook 'slime-mode-hook
(lambda ()
(local-set-key "\C-i" 'slime-complete-symbol)
(local-set-key "\C-\M-\\" 'indent-defun)))
So far so good - pressing TAB auto-completes all known symbols, and
makes typing code much easier (at least for me). Here is the questions
I have:
1. indent-defun looks terribly ugly for many reasons: a/ it is not LISPish -
more like a BASIC program directly translated into Lisp; I would like
to write something like
(defun indent-defun ()
(interactive)
(indent-region (beginning-of-defun) (end-of-defun)))
but I don't know which elisp function(s) to use. b/ it will not work with
defmacro, or with any other top-level form. I would like to have something
like (beginning-of-top-level-form) - again, I don't know if such beast
exists and my elisp skills are too weak yet to program it myself - any
suggestions?
= Renaming buffers =
I am playing with several lisp implementations - clisp, Allegro CL
Express and SBCL to be precise. I would like their slime buffers to
have names like *clisp*, *allegro* and *sbcl* instead of *slime-repl
sbcl* etc. I tried to rename these buffers:
(defun sbcl ()
(interactive)
(setq inferior-lisp-program "/usr/local/bin/sbcl")
(slime)
(rename-buffer "*sbcl*"))
but what happens is that buffer is renamed _before_ slime finishes
loading lisp, and after it finish, it renames the buffer back. Can I
attach a function to the moment when slime finish it's load process -
like defining hook for a major mode?
Best,
Victor.
next reply other threads:[~2006-11-19 5:32 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-11-19 5:32 Victor Kryukov [this message]
2006-11-20 19:42 ` Several questions on SLIME customizations Robert Thorpe
2006-11-21 0:54 ` Victor Kryukov
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=m2hcwwypaa.fsf@victor-kryukovs-computer.local \
--to=victor.kryukov+news@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.