From a72f18a58b0de82028454a0688d45b537905f0c4 Mon Sep 17 00:00:00 2001 From: Alex Kost Date: Sun, 7 Jun 2015 21:43:58 +0300 Subject: [PATCH] doc emacs: Improve documentation on initial setup. Reported by ngz on #guix. * doc/emacs.texi (Emacs Initial Setup): Describe how to configure "guix.el" in the case of binary installation and when Guix is not installed. --- doc/emacs.texi | 52 +++++++++++++++++++++++++++++++++++++------------- 1 file changed, 39 insertions(+), 13 deletions(-) diff --git a/doc/emacs.texi b/doc/emacs.texi index 00cd5c1396..17682c3a51 100644 --- a/doc/emacs.texi +++ b/doc/emacs.texi @@ -45,24 +45,50 @@ used for interacting with the Guile process. @end itemize -When it is done, add the following into your init file (@pxref{Init -File,,, emacs, The GNU Emacs Manual}): - -@example -(require 'guix-init nil t) -@end example - -However there is a chance that @code{load-path} of your Emacs does not -contain a directory with ``guix.el'' (usually it is -@file{/usr/share/emacs/site-lisp/}). In that case you need to add it -before requiring (@pxref{Lisp Libraries,,, emacs, The GNU Emacs -Manual}): +When it is done ``guix.el'' may be configured by requiring a special +@code{guix-init} file---i.e., by adding the following code into your +init file (@pxref{Init File,,, emacs, The GNU Emacs Manual}): @example (add-to-list 'load-path "/path/to/directory-with-guix.el") -(require 'guix-init) +(require 'guix-init nil t) @end example +So the only thing you need to figure out is where the directory with +elisp files for Guix is placed. It depends on how you installed Guix: + +@itemize +@item +If it was installed by a package manager of your distribution or by a +usual @code{./configure && make && make install} command sequence, then +elisp files are placed in a standard directory with Emacs packages +(usually it is @file{/usr/share/emacs/site-lisp/}), which is already in +@code{load-path}, so there is no need to add that directory there. + +@item +If you used a binary installation method (@pxref{Binary Installation}), +then Guix is installed somewhere in the store, so the elisp files are +placed in @file{/gnu/store/@dots{}-guix-0.8.2/share/emacs/site-lisp/} or +alike. However it is not recommended to refer directly to a store +directory. Instead you can install Guix using Guix itself with +@command{guix package -i guix} command (@pxref{Invoking guix package}) +and add @file{~/.guix-profile/share/emacs/site-lisp/} directory to +@code{load-path} variable. + +@item +If you did not install Guix at all and prefer a hacking way +(@pxref{Running Guix Before It Is Installed}), along with augmenting +@code{load-path} you need to set @code{guix-load-path} variable to the +same directory, so your final configuration will look like this: + +@example +(let ((dir "/path/to/your-guix-git-tree/emacs")) + (add-to-list 'load-path dir) + (setq guix-load-path dir)) +(require 'guix-init nil t) +@end example +@end itemize + By default, along with autoloading (@pxref{Autoload,,, elisp, The GNU Emacs Lisp Reference Manual}) the main interactive commands for ``guix.el'' (@pxref{Emacs Commands}), requiring @code{guix-init} will