dimitri/el-get — Issue #638: el-get will not load after moving directory
Author: Maahes
Created: 2012-03-05 21:05:39+00:00
State: open

So I tried to simplify my ~/.emacs.d by moving everything that was a library into ~/.emacs.d/libs. Including el-get and elpa.

Elpa immediately threw up a complaint about not being able to load its packages.elc, so I moved it back and changed my init.el to reflect and it loads fine. El-get never threw up any complaints, however it also didn't load el-get or anything in el-get's directories.

Even after I have moved it back.

Even after I have recompiled everything under ~/.emacs.d/el-get

This is the current content of my init.el:

```lisp
;; emacs kicker --- kick start emacs setup
;; Copyright (C) 2010 Dimitri Fontaine
;;
;; Author: Dimitri Fontaine
;; URL: https://github.com/dimitri/emacs-kicker
;; Created: 2011-04-15
;; Keywords: emacs setup el-get kick-start starter-kit
;; Licence: WTFPL, grab your copy here: http://sam.zoy.org/wtfpl/
;;
;; This file is NOT part of GNU Emacs.

(require 'cl) ; common lisp goodies, loop
;;(let ((default-directory "~/.emacs.d/el-get"))
;; (normal-top-level-add-subdirs-to-load-path))
(add-to-list 'load-path "~/.emacs.d/elpa")
(add-to-list 'load-path "~/.emacs.d/el-get/el-get")

(unless (require 'el-get nil t)
(url-retrieve
"https://github.com/dimitri/el-get/raw/master/el-get-install.el"
(lambda (s)
(end-of-buffer)
(eval-print-last-sexp))))

;; now either el-get is `require'd already, or have been `load'ed by the
;; el-get installer.

;; set local recipes
(setq
el-get-sources
'((:name buffer-move ; have to add your own keys
:after (lambda ()
(global-set-key (kbd "") 'buf-move-up)
(global-set-key (kbd "") 'buf-move-down)
(global-set-key (kbd "") 'buf-move-left)
(global-set-key (kbd "") 'buf-move-right)))

(:name smex ; a better (ido like) M-x
:after (lambda ()
(setq smex-save-file "~/.emacs.d/.smex-items")
(global-set-key (kbd "M-x") 'smex)
(global-set-key (kbd "M-X") 'smex-major-mode-commands)))

(:name magit ; git meet emacs, and a binding
:after (lambda ()
(global-set-key (kbd "C-x C-z") 'magit-status)))

(:name goto-last-change ; move pointer back to last change
:after (lambda ()
;; when using AZERTY keyboard, consider C-x C-_
(global-set-key (kbd "C-x C-/") 'goto-last-change)))))

;; now set our own packages
(setq
my:el-get-packages
'(el-get ; el-get is self-hosting
escreen ; screen for emacs, C-\ C-h
php-mode-improved ; if you're into php...
switch-window ; takes over C-x o
auto-complete ; complete as you type with overlays
zencoding-mode ; http://www.emacswiki.org/emacs/ZenCoding
color-theme ; nice looking emacs
color-theme-tango)) ; check out color-theme-solarized

;;
;; Some recipes require extra tools to be installed
;;
;; Note: el-get-install requires git, so we know we have at least that.
;;
(when (el-get-executable-find "cvs")
(add-to-list 'my:el-get-packages 'emacs-goodies-el)) ; the debian addons for emacs

(when (el-get-executable-find "svn")
(loop for p in '(psvn ; M-x svn-status
yasnippet ; powerful snip mode
)
do (add-to-list 'my:el-get-packages p)))

(setq my:el-get-packages
(append
my:el-get-packages
(loop for src in el-get-sources collect (el-get-source-name src))))

;; install new packages and init already installed packages
(el-get 'sync my:el-get-packages)

;; on to the visual settings
(setq inhibit-splash-screen t) ; no splash screen, thanks
(line-number-mode 1) ; have line numbers and
(column-number-mode 1) ; column numbers in the mode line

(tool-bar-mode -1) ; no tool bar with icons
(scroll-bar-mode -1) ; no scroll bars
(unless (string-match "apple-darwin" system-configuration)
;; on mac, there's always a menu bar drown, don't have it empty
(menu-bar-mode -1))

;; choose your own fonts, in a system dependant way
(if (string-match "apple-darwin" system-configuration)
(set-face-font 'default "Monaco-13")
(set-face-font 'default "Monospace-10"))

(global-hl-line-mode) ; highlight current line
(global-linum-mode 1) ; add line numbers on the left

;; avoid compiz manager rendering bugs
(add-to-list 'default-frame-alist '(alpha . 100))

;; copy/paste with C-c and C-v and C-x, check out C-RET too
(cua-mode)

;; under mac, have Command as Meta and keep Option for localized input
(when (string-match "apple-darwin" system-configuration)
(setq mac-allow-anti-aliasing t)
(setq mac-command-modifier 'meta)
(setq mac-option-modifier 'none))

;; Use the clipboard, pretty please, so that copy/paste "works"
(setq x-select-enable-clipboard t)

;; Navigate windows with M-
(windmove-default-keybindings 'meta)
(setq windmove-wrap-around t)

; winner-mode provides C- to get back to previous window layout
(winner-mode 1)

;; whenever an external process changes a file underneath emacs, and there
;; was no unsaved changes in the corresponding buffer, just revert its
;; content to reflect what's on-disk.
(global-auto-revert-mode 1)

;; M-x shell is a nice shell interface to use, let's make it colorful. If
;; you need a terminal emulator rather than just a shell, consider M-x term
;; instead.
(autoload 'ansi-color-for-comint-mode-on "ansi-color" nil t)
(add-hook 'shell-mode-hook 'ansi-color-for-comint-mode-on)

;; If you do use M-x term, you will notice there's line mode that acts like
;; emacs buffers, and there's the default char mode that will send your
;; input char-by-char, so that curses application see each of your key
;; strokes.
;;
;; The default way to toggle between them is C-c C-j and C-c C-k, let's
;; better use just one key to do the same.
(require 'term)
(define-key term-raw-map (kbd "C-'") 'term-line-mode)
(define-key term-mode-map (kbd "C-'") 'term-char-mode)

;; Have C-y act as usual in term-mode, to avoid C-' C-y C-'
;; Well the real default would be C-c C-j C-y C-c C-k.
(define-key term-raw-map (kbd "C-y") 'term-paste)

;; use ido for minibuffer completion
(require 'ido)
(ido-mode t)
(setq ido-save-directory-list-file "~/.emacs.d/.ido.last")
(setq ido-enable-flex-matching t)
(setq ido-use-filename-at-point 'guess)
(setq ido-show-dot-for-dired t)

;; default key to switch buffer is C-x b, but that's not easy enough
;;
;; when you do that, to kill emacs either close its frame from the window
;; manager or do M-x kill-emacs. Don't need a nice shortcut for a once a
;; week (or day) action.
(global-set-key (kbd "C-x C-b") 'ido-switch-buffer)
(global-set-key (kbd "C-x C-c") 'ido-switch-buffer)
(global-set-key (kbd "C-x B") 'ibuffer)

;; C-x C-j opens dired with the cursor right on the file you're editing
(require 'dired-x)

;; full screen
(defun fullscreen ()
(interactive)
(set-frame-parameter nil 'fullscreen
(if (frame-parameter nil 'fullscreen) nil 'fullboth)))
(global-set-key [f11] 'fullscreen)

;; load color-theme
(require 'color-theme')
(eval-after-load "color-theme"
'(progn
(color-theme-initialize)
(color-theme-hober))')

;; Prior to loading evil
(require 'surround)
(global-surround-mode 1)
(add-hook 'c++-mode-hook (lambda ()
(push '(?< . ("< " . " >")) surround-pairs-alist)))
(add-hook 'emacs-lisp-mode-hook (lambda ()
(push '(?` . ("`" . "'")) surround-pairs-alist)))

(require 'evil-numbers)
(define-key evil-normal-state-map (kbd "C-c +") 'evil-numbers/inc-at-pt)
(define-key evil-normal-state-map (kbd "C-c -") 'evil-numbers/dec-at-pt)

(require 'evil-leader)

;; load evil
(require 'evil)
(evil-mode 1)

;; auto-indent-mode
(setq auto-indent-on-visit-file t)
(require 'auto-indent-mode)
(auto-indent-global-mode)

;;Load textmate-mode
(add-to-list 'load-path "~/.emacs.d/el-get/textmate/textmate.el")
(require 'textmate)
(textmate-mode)
```

It's worth noting that the direct link to textmate.el *does* work, but direct linking to el-get.el doesn't get me any of el-get's functions.