all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Kaushal Modi <kaushal.modi@gmail.com>
To: help-gnu-emacs@gnu.org
Subject: Re: use-package
Date: Tue, 03 May 2016 14:01:07 +0000	[thread overview]
Message-ID: <CAFyQvY0iFrcXm_cpcZHjimM8Apm_3eEYCvydW1V3G_ByNYy30g@mail.gmail.com> (raw)
In-Reply-To: <87d1p38ll6.fsf@mat.ucm.es>

>
> Thanks. Just one question, for example my emacs_keys file contains stuff
> like
>
> (defun some-funny functions ()
> )
> (global-set-key [(f1)] 'save-buffer)
> (global-set-key [(f2)] 'some-funny-function)
>
> (provide 'emacs_keys)
>
> So using
>
>     -  use-package is possible?
>

Yes. Assuming that your emacs_keys.el is already in the load-path (i.e. you
are able to successfully do (require 'emacs_keys), you can do instead

    (use-package emacs_keys)

    -  and if so: would it shorten startup?
>

Most likely, not.

use-package speeds up startup times by delaying the loading the packages
that you can afford to.. for example, you do not need to load org-mode
until you are in a buffer with org-mode major mode or you call one of the
commands like org-agenda that autoloads org-mode. So if you load org-mode
using use-package and its ":defer t" or ":commands (...)" or similar
load-deferring options, you will see an improvement in the startup time.

use-package, very broadly put, is syntax sugar, a very elaborate macro, in
a good way.

To understand what it does, type the below, place cursor after the closing
parenthesis and do M-x pp-macroexpand-last-sexp.

    (use-package org-mode)

Now do the same with

    (use-package org-mode
      :defer t)

And once again do it with

    (use-package org-mode
      :mode ("\\.org\\'" . org-mode))

Study the raw elisp that all of the 3 macros above expand to and understand
them. That, in conjunction with reading the documentation on
https://github.com/jwiegley/use-package will make you understand what
use-package exactly does and how it saves you startup time.

If it helps, you can also go through few of my setup-*.el files here (
https://github.com/kaushalmodi/.emacs.d/tree/master/setup-files ) and see
how I use use-package for various packages. You can ignore the :config and
:init blocks in my use-package blocks and focus only on blocks like :defer,
:mode, :commands, :bind, etc which help me speedup my emacs startup.


-- 

-- 
Kaushal Modi


  reply	other threads:[~2016-05-03 14:01 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-05-02 17:07 use-package Uwe Brauer
2016-05-02 18:47 ` use-package Kaushal Modi
2016-05-03 10:47   ` use-package Uwe Brauer
2016-05-03 14:01     ` Kaushal Modi [this message]
2016-05-03 22:28       ` use-package Stefan Monnier
2016-05-04  3:33         ` use-package Kaushal Modi
2016-05-04 12:09           ` use-package Stefan Monnier
2016-05-04 16:22         ` use-package Phillip Lord
2016-05-04 16:44           ` use-package Drew Adams
2016-05-05 13:34             ` use-package Phillip Lord
2016-05-05 14:00               ` use-package Drew Adams
2016-05-05 15:56                 ` use-package Kaushal Modi
2016-05-05 16:12                   ` use-package Drew Adams
2016-05-10  9:20                     ` use-package Phillip Lord
2016-05-10  9:18                   ` use-package Phillip Lord
2016-05-11 11:42                     ` use-package Kaushal Modi
2016-05-12 21:04                       ` use-package Phillip Lord
2016-05-13 11:56                         ` use-package Stefan Monnier
2016-05-14 22:27                           ` use-package Phillip Lord
2016-05-15  3:22                             ` use-package Stefan Monnier
2016-05-13 15:38                         ` use-package Drew Adams
2016-05-16 15:16                           ` use-package Phillip Lord
2016-05-16 16:49                             ` use-package Drew Adams
     [not found]                         ` <mailman.2761.1463153947.7477.help-gnu-emacs@gnu.org>
2016-05-14  7:37                           ` use-package Rusi
2016-05-10  9:13                 ` use-package Phillip Lord
2016-05-05  9:51       ` use-package Uwe Brauer
2016-05-05 13:38         ` use-package Phillip Lord
2016-05-03 22:21 ` use-package Stefan Monnier
2016-05-05 10:15   ` use-package Uwe Brauer
2016-05-05 23:41     ` use-package Stefan Monnier

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=CAFyQvY0iFrcXm_cpcZHjimM8Apm_3eEYCvydW1V3G_ByNYy30g@mail.gmail.com \
    --to=kaushal.modi@gmail.com \
    --cc=help-gnu-emacs@gnu.org \
    /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.