Hot answers tagged

85

GNU ELPA is the official GNU Emacs package repository. It's the only one enabled by default, which means that it has the greatest reach. At the same time, submitting a package there is a bit of a hassle and requires an FSF copyright assignment, which means it has a relatively limited selection of packages. MELPA and Marmalade are both third-party package ...


50

First of all, ELPA is the name of a specification, the Emacs Lisp Package Archive. There are three widely known implementations of that specification, GNU ELPA, Marmalade and MELPA. GNU ELPA is the official GNU Emacs archive, enabled out of the box for sufficiently new Emacs installations. It is comparatively small, contributing to it requires copyright ...


49

For emacs 25 or newer refer to this answer. For emacs < 25 there's no automatically generated manifest file that you can synchronize to achieve the desired effect. That said, something you can do is add calls to package-install in your emacs configuration itself. (package-install 'auctex) The idea is that package-install is idempotent, so if the ...


49

restclient is the most "interactive" mode. This is a tool to manually explore and test HTTP REST webservices. Runs queries from a plain-text query sheet, displays results as a pretty-printed XML, JSON and even images. You can check a workflow example at http://jakemccrary.com/blog/2014/07/04/using-emacs-to-explore-an-http-api/. request.el - HTTP ...


44

The way I think of it, some repos have more overhead involved with submitting packages than others; the repos with more overhead tend to have fewer packages. In order from most to least overhead: GNU ELPA requires all code to be GPL'd and copyright assigned to the FSF. ELPA code is essentially "owned" by the core Emacs team, so there's much less of it than ...


41

I ran into this the other day. I think it was caused by an invalid package archive file. The immediate fix is to delete <user-emacs-directory>/elpa/archives/melpa/archive-contents; it will be rebuilt on the next package-initialize. Unfortunately, package.el is not very robust to this sort of failure.


40

set package-check-signature to nil, e.g. M-: (setq package-check-signature nil) RET download the package gnu-elpa-keyring-update and run the function with the same name, e.g. M-x package-install RET gnu-elpa-keyring-update RET. reset package-check-signature to the default value allow-unsigned This worked for me. As stated in the package the following holds: ...


34

I keep my .emacs.d directory in version control. Then, in my init.el and subsequent files I use use-package to define package setup. Not only does use-package lazily load your packages, it will download them on demand if they don't exist from whatever package repos you've set up. For example, I use go-mode, but not on every machine. In my init.el I have ...


31

There are several package repositories available. Official GNU ELPA is the official package repo. It's small, and requires copyright assignment (of all authors of a package) to the FSF to contribute to it. Packages on GNU ELPA are really just a git repo. The advantage of being hosted here is that the core team try to update packages if Emacs itself adds ...


26

The built in way to do this is with registers. For instance use C-xrwa to save the current window configuration to register a. Then you can use the built in binding C-x1 to run delete-other-windows after you're done looking at the single file, use C-xrja to pop back to the saved window configuration in register a. In short: C-xrwa (save config into ...


24

TL;DR: Add the following line to the top of your init file (.emacs.d/init.el or .emacs): (package-initialize) The explanation Creating more of the files which Emacs might use as the user-init-file is definitely not the right approach. Because the manual doesn't say which is preferred in case there is a conflict, at least not in the part you quoted, all ...


23

Old question, yes... But in the event that anyone Googles this; another option is using Org Babel and ob-http... (Can be installed from melpa.) With org-babel, you can make an .org file containing "http" code blocks. When these blocks are evaluated, they will make the HTTP request and return the response as the result. If these blocks have a "#+NAME:" ...


21

I use winner-mode. Here's my setup: (winner-mode) (global-set-key [f7] 'winner-undo) (global-set-key [C-f7] 'winner-redo) (global-set-key [f9] 'delete-other-windows) (global-set-key [C-f9] 'delete-window) I don't know if there's a way to bookmark a layout or something, but being able to continuously switch back to previous layout is enough for me.


20

They are different if the package is deferred, i.e. not loaded until it is needed. In that case :init will be executed at the time your emacs file is first read, but :config will be executed at the time the package is actually loaded. In your example, the use of mode implicitly defers loading the package. You have configured the package to be loaded the ...


20

You can find information about this package on the Debian webpage, which includes this: This package contains the architecture independent infrastructure that is not compliant with the Debian Free Software Guidelines. In particular, this includes some of the GNU Emacs info pages, as they are covered under the GFDL, and specify invariant sections. That is ...


19

I think the only honest answer is "because we can". According to history, the first entry lisp/play/studly.el for the GNU Emacs repository was created in 1986. Then over the years, a few additions were made, including yow.el by RMS in 1990. The hacker spirit has always been very compatible with (silly) games, and using software (like Emacs) for something ...


19

TLDR; You have to start the http server (simple-http) and load your HTML files through it. For example, let's say you have a HTML file named hello.html and a JS script file named script.js in /home/user/Documents/javascript folder. hello.html: <!doctype html> <html> <head> <!-- Include skewer.js as a script --> <script ...


19

The problem you're referring to is probably that when you upgrade a package from within an Emacs session where that package is already in use, the old version of the package will sometimes interfere during compilation of the new version, leading to miscompiled files. There is a tentative fix for that in Emacs-25, but AFAIK the problem is still present in 24....


18

In Emacs-25, there is the variable package-selected-packages, so you can customize this variable and use package-install-selected-packages to make sure they're installed.


18

Maybe refreshing package contents could help: try evaluating (package-refresh-contents) or typing M-xpackage-refresh-contents.


17

The following is now part of the Paradox package. Just invoke paradox-upgrade-packages. This should do it. (defun endless/upgrade () "Upgrade all packages, no questions asked." (interactive) (save-window-excursion (list-packages) (package-menu-mark-upgrades) (package-menu-execute 'no-query))) Just check which function is called by each ...


17

The correct way to do this with use-package is as follows: (use-package org :ensure org-plus-contrib ... The first argument makes sure that it is the org.el file being sourced. The :ensure argument makes sure that you are getting the version with all the extras. Of course you also need to have ("org" . "http://orgmode.org/elpa/") in your package-...


16

FWIW - I had this issue with the signature org-20140407.tar.sig. Like Sigma's package-check-signature is/was allow-unsigned. I changed the package-check-signature value to nil and the problem was resolved.


14

If you try to install the package gnu-elpa-keyring-update (which seems to have the purpose of updating the keys used by the package manager), you will see in its description that you can do: gpg --homedir ~/.emacs.d/elpa/gnupg --receive-keys 066DAFCB81E42C40 on the commandline to get new keys manually. To make sure you are asking for the correct key (...


14

One of the design choices in package.el was to try and make things "simple". Part of this is that package-initialize searches for all the packages that are installed, then tries to figure out which ones of those should be activated (according to pinning, and recency of versions in case where multiple versions of the same package are available), then loads ...


13

Some additional info, to supplement the other answers here. Some info about MELPA and MELPA "stable" - Start by looking at this pretty-much duplicate question, from StackOverflow, including the comments for the question itself. In particular, this comment that I posted, after exchanging email with Donald Curtis (maintainer of MELPA and MELPA stable): ...


13

If you load a library repeatedly, that file will be read and its code evaluated repeatedly (each and every time you load it). If you require a library repeatedly, it will load the library once (at most -- and not at all if the library had already been loaded). require provides this efficiency even if require wasn't used to load the library initially, ...


13

The easiest way is to install use-package. (package-initialize) (require 'package) (add-to-list 'package-archives '("melpa" . "http://melpa.milkbox.net/packages/") t) (dolist (package '(use-package)) (unless (package-installed-p package) (package-install package))) Then (use-package paredit :ensure t) The :ensure t is what ensures that ...


Only top voted, non community-wiki answers of a minimum length are eligible