help-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: How to delay loading of packages (when eval-after-load does notapply


From: Sebastien Vauban
Subject: Re: How to delay loading of packages (when eval-after-load does notapply)?
Date: Fri, 17 Aug 2012 14:11:24 +0200
User-agent: Gnus/5.130006 (Ma Gnus v0.6) Emacs/24.1 (windows-nt)

Hi Raffaele and Drew,

Raffaele Ricciardi wrote:
> On 08/17/2012 11:07 AM, Sebastien Vauban wrote:
>> "Drew Adams" wrote:
>>>> How could I say: load fuzzy when I will make a search for the
>>>> first time?
>>>
>>> Try `isearch-mode-hook' with `require'.
>>
>> I got:
>>
>>    Symbol's function definition is void: turn-on-fuzzy-isearch
>>
>> I don't understand why my `eval-after-load' is executed directly...
>
> You have to quote the form you are passing to `eval-after-load', like this:
>
> (eval-after-load "fuzzy"
>   '(turn-on-fuzzy-isearch))
>
> Otherwise, yes, the form is evaluated on the spot.

Excellent. That did the trick... Thanks a lot!

> Also, "fuzzy" means eval the following form after the library "fuzzy" has
> been loaded, whilst 'fuzzy means eval the following code after the feature
> 'fuzzy has been provided. I always go for the latter first, because then I'm
> able to rename a library according to its version. I would only backpedal if
> the library provided its feature on top of the file as some third-party
> libraries do - AFAIK this was a workaround for older Emacsen - and I couldn't
> fix that, but the latter has never happened.

Thanks for the comments...

Now, wanting to apply the same mechanism for other slow parts of my .emacs
file, I'm stuck with this one[1]:

--8<---------------cut here---------------start------------->8---
   ;; add the ability to copy or cut the current line without marking it
   ;; (no active region) -- idea stolen from SlickEdit
   (defadvice kill-ring-save (before slickcopy activate compile)
     "When called interactively with no active region, copy the current
   line instead."
     (interactive
      (if mark-active (list (region-beginning) (region-end))
        (message "Copied the current line")
        (list (line-beginning-position)
              (line-beginning-position 2)))))

   (defadvice kill-region (before slickcut activate compile)
     "When called interactively with no active region, kill the current
   line instead."
     (interactive
      (if mark-active (list (region-beginning) (region-end))
        (list (line-beginning-position)
              (line-beginning-position 2)))))
--8<---------------cut here---------------end--------------->8---

How could I say: apply the following when I will press `C-w' or `M-w' for the
first time?

I search for hooks in `simple.el', but only found

- activate-mark-hook
- deactivate-mark-hook

which are not exactly what I need.

Any idea?

Best regards,
  Seb

--
Sebastien Vauban

[1] As already reported here (see
http://lists.gnu.org/archive/html/help-gnu-emacs/2012-08/msg00092.html), that
chunk of code takes around 2 seconds to execute, at Emacs startup time.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]