I’m been wanting to install a number of new packages for Emacs. mmm-mode, multi-web-mode, and smart-tab-mode are a few examples. But I don’t seem to be able to find them when I run
M-x package-list-packages
I have this in my .emacs file:
(require 'package)
(add-to-list 'package-archives '("marmalade" . "http://marmalade-repo.org/packages/"))
(add-to-list 'package-archives '("melpa" . "http://melpa.milkbox.net/"))
(package-initialize)
And when I run package-list-packages I can see that it contacts all those different hosts. I use C-s to search for them, they aren’t there. What am I doing wrong?
My Emacs version is displayed as: Version 24.2 (9.0)
URL for Melpa was too short: it should be http://melpa.milkbox.net/packages/
You've mixed up the order. It goes like this:
(package-initialize)
(add-to-list 'package-archives '("marmalade" . "http://marmalade-repo.org/packages/"))
(add-to-list 'package-archives '("melpa" . "http://melpa.milkbox.net/packages/"))
The ELPA/package system is a relatively new addition to Emacs. It is far from the case that all libraries are available as packages, but similarly it is not necessary for a library to be packaged in order to use it with Emacs.
If a library you wish to use is unavailable through any of the package repositories, simply follow the installation/usage instructions which (generally) can be found in the accompanying documentation for the library (either in the .el file's commentary, or as a separate file).
(You will at minimum need to ensure that the files are located in a directory which is in Emacs' load-path, but the exact details thereafter will vary depending upon the purpose of the library in question.)
Related
In my emacs 24.3, I can't find the AUCTeX package.
If I enter PACKAGE-LIST-PACKAGE,
I find various packages for AUCTeX like "auctex-lua" or
"auto-complete for auctex". However, there is no auctex package that I can install. Why is it gone ?
AUCTeX is available via GNU ELPA, not MELPA.
You can configure multiple repositories, e.g. by using add-to-list instead of setting package-archives directly:
(add-to-list 'package-archives
'("melpa" . "http://melpa.org/packages/") t)
This should keep GNU ELPA in your list of archives, but in case it doesn't you can always add it back. It should look something like
("gnu" . "http://elpa.gnu.org/packages/")
Once you've done this you should be able to install AUCTeX via package.el.
Note that this is likely the one repository that most users should have in their package-archives list. It's the official GNU repository, enabled by default. Of course, feel free to add others as you wish!
I need to add various packages to my emacs installation. It comes with tromey as the only repository. The variable package-archives is not defined (!). I am running GNU Emacs version 24.3.1 on Linux. I set up the following code in my .emacs file:
(when (>= emacs-major-version 24)
(require 'package)
(setq package-enable-at-startup nil)
(setq package-archives '())
(package-initialize)
(add-to-list 'package-archives
'("melpa" . "http://melpa.milkbox.net/packages/") t)
(add-to-list 'package-archives
'("gnu" . "http://elpa.gnu.org/packages/"))
(add-to-list 'package-archives
'("marmalade" . "https://marmalade-repo.org/packages/"))
(add-to-list 'package-archives
'("org" . "http://orgmode.org/elpa/") t)
(add-to-list 'package-archives
'("tromey" . "http://tromey.com/elpa/") t)
)
By default, without this code, the variable package-archives isn't defined. After running this code, it is, and contains the right values, but doesn't seem to have any effect. I verified that this variable is not customized anywhere.
The problem is that I don't get to see any packages from the various archives I added; Only from tromey. Obviously I'm doing something wrong, but this code is supposed to work from emacs version 24 and higher.
Can someone suggest how to set up my repositories properly?
Everything worked well! What does that mean? That something in my .emacs file is conflicting with elpa?
That's exactly what it means.
Comment out half of your configuration (comment-dwim, bound to C-; by default, might be helpful here) and see if that fixes it. That will tell you which have contains the ELPA conflict. Repeat with the half that shows the problem to find which quarter is problematic, then again to find the eighth…
Pretty soon you'll find the cause, which might be a single sexp. Remove or adjust that, uncomment the rest of your config, and enjoy the plethora of packages that await.
I've read in a lot of places such as the WikEmacs (http://wikemacs.org/wiki/Evil) that Emacs24 already came with support for Evil mode, no need to install it via el-get. But I can't seem to understand how do I activate it.
I tried just adding the
(require 'evil)
(evil-mode 1)
lines to my .emacs but it can't seem to work, how do you guys use the built-in evil mode on emacs24? without cloning git repositories, etc.
The statement on WikEmacs is false; evil-mode is not included in Emacs 24. (As it's a wiki, I just edited the page and removed that text.)
There are many ways to install evil-mode. I'd suggest activating the MELPA package repository by adding the following to your .emacs file:
(require 'package)
(add-to-list 'package-archives
'("melpa" . "http://melpa.org/packages/") t)
(package-initialize)
Then type M-x list-packages, find evil in the list, and install it.
I am trying to install ENSIME for emacs. On the first step, when I integrate the ./misc/scala-tool-support/emacs .elc files, the instructions say to
(add-to-list 'load-path "/path/to/some/directory/scala-mode")
Because of the way the directory is structured (where there is no dir scala-mode but all of the .el files are called scala-mode), I am unsure what this exactly specifies. I originally thought it jsut meant to do something like:
(add-to-list 'load-path "~/...../misc/scala-tool-support/emacs/"), but reading further down to the following made me rethink my assumption.
(setq yas/my-directory "/path/to/some/directory/scala-mode/contrib/yasnippet/snippets")
(yas/load-directory yas/my-directory)
Can someone clarify this please?
Thanks much.
The yas/load-directory call has nothing to do with your load-path. Yes, you had it right originally. Is this not working? If so, what error message do you get?
Here is my setup for scala-mode and ensime on Emacs. I'm on OS X.
In the vendor/scala directory, it's just all the .el files from the compiler distribution.
And ensime/dist is bin/ elisp/ and lib/ directories from a github download.
;; Scala Mode
(add-to-list 'load-path "/Users/you/.emacs.d/vendor/scala")
(require 'scala-mode-auto)
(add-to-list 'auto-mode-alist '("\\.scala$" . scala-mode))
(add-to-list 'load-path "/path/to/ensime/dist")
(require 'ensime)
(add-hook 'scala-mode-hook 'ensime-scala-mode-hook)
I've checked the scala-tool-support repo, all of the scala-related snippets for had been included in Yasnippet now. If we use the Yasnippet release version newer than 0.5.7 , the snippets for scala-mode should be included in /path/to/yasnippet/text-mode/scala-mode, so we don't need to set yas/load-directory by ourselves.
I was following the guide and information from A gentle tutorial to Emacs/Swank/Paredit for Clojure
However after opening elpa and installing clojure-mode, slime and paredit. I restarted emacs and then attempted to use M-x slime however it continually says no match . What am I doing wrong?
I then tried to install clojure-mode from marmalade http://marmalade-repo.org/packages I byte-compiled package el and then added
(add-to-list 'package-archives '("marmalade" . "http://marmalade-repo.org/packages/")) to my.emacs. However marmalade errors with
Symbol's value as variable is void: package-archives .
Unsure exactly what I am doing wrong I am on windows7 using emacs 23.3. I have clojure installed to c:/clojure.
Any help appreciated.
My init.el has both (require 'package) and (package-initialize). It's not very big, it looks like this:
(require 'package)
;; Add the original Emacs Lisp Package Archive
(add-to-list 'package-archives
'("elpa" . "http://tromey.com/elpa/"))
;; Add the user-contributed repository
(add-to-list 'package-archives
'("marmalade" . "http://marmalade-repo.org/packages/"))
(package-initialize)
I'm on emacs 24 (a development build) on Windows 7. I had trouble getting emacs 23 to work with packages too, it was easier for me to just upgrade.
By the way, I noticed that if I set a HOME environment variable, emacs looks there for the .emacs.d directory (instead of in %USER_PROFILE%\AppData\Roaming).
Download package.el (don't follow the instructions on the ELPA site, just download the package.el provided on marmalade's site).
Put package.el in your .emacs.d directory (~/.emacs.d/).
Add the following to your .emacs file (~/.emacs):
;;Load path to my packages
(add-to-list 'load-path "~/.emacs.d/")
;;Load ELPA (the package.el you downloaded from marmalade)
(require 'package)
;;Load Marmalade (the code found on marmalade's welcome page)
(add-to-list 'package-archives '("marmalade" . "http://marmalade-repo.org/packages/"))
That's it! I really hope this helps.
EDIT: Sorry, I forgot to mention that you need to add (package-initialize) at the end of the code I provided. If you don't add this line, the packages will install, but won't load.
I think, that you need to put
(require 'package)
before 'add-to-list'
P.S. and add following call after 'add-to-list'
(package-initialize)
this command will load installed packages and activate them
P.P.S. '(require 'package)' maybe not needed, but I'm personally not using 'package.el'
It seems to me you're missing either (require 'package) or (package-initialize). You can check out my setup here - I'm using both marmalade and clojure-mode on Windows 7 and it works like a charm.
Do not know it is same problem, I faced when I were trying to use quicklisp's swank/slime
Finally I found that few /contrib/*.el packages were dependent on each other
if A's dependency package is B, if B is not byte-compiled than A will not compile
when you do
(require 'A)
it will throw
Symbol's variable value is void: A
So ensure you compile each package than try require.