[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: slime-connect paredit conflict
From: |
PJ Weisberg |
Subject: |
Re: slime-connect paredit conflict |
Date: |
Fri, 29 Oct 2010 05:14:16 +0000 |
On Thu, Oct 28, 2010 at 3:14 AM, PJ Weisberg
<pj@irregularexpressions.net> wrote:
> On Thu, Oct 28, 2010 at 12:20 AM, Glen Rubin <rubinglen@yahoo.com> wrote:
>>
>> I am using emacs, slime, swank combo. When I try to slime-connect, I
>> initially get the following error:
>>
>> error in process filter: Symbol's value as variable is void: paredit-
>> backward-delete-key
>>
>> If I then try again it works. So, it's really annoying having to
>> connect twice all the time! I was able to resolve this by removing a
>> code fragment in my .emacs file, but then end up having problems with
>> undeletable brackets as described in paredit wiki.
>>
>> Here is my .emacs file:
>>
>> ;;; This was installed by package-install.el.
>> ;;; This provides support for the package system and
>> ;;; interfacing with ELPA, the package archive.
>> ;;; Move this code earlier if you want to reference
>> ;;; packages in your .emacs.
>> (when
>> (load
>> (expand-file-name "~/.emacs.d/elpa/package.el"))
>> (package-initialize))
>>
>> (add-hook 'slime-repl-mode-hook (lambda () (paredit-mode +1)))
>> ;; Stop SLIME's REPL from grabbing DEL,
>> ;; which is annoying when backspacing over a '('
>> (defun override-slime-repl-bindings-with-paredit ()
>> (define-key slime-repl-mode-map
>> (read-kbd-macro paredit-backward-delete-key) nil))
>> (add-hook 'slime-repl-mode-hook 'override-slime-repl-
>> bindings-with-paredit)
>
> Try changing that last line to "(add-hook 'slime-repl-mode-hook
> 'override-slime-repl-bindings-with-paredit t)"
On Thu, Oct 28, 2010 at 5:55 AM, Glen Rubin <rubinglen@yahoo.com> wrote:
> worked! THX!!!
To take some of the black magic out of this, the problem was that the
file where paredit-backward-delete-key is defined isn't loaded until
the first time you call paredit-mode. "add-hook" is used to add to a
list of functions that are called when you enter slime-repl-mode, but
by default it adds to the *beginning* of the list. The extra 't'
tells it to add to the end of the list, so the function that uses the
variable gets called *after* the one that causes it to be loaded.