Giter VIP home page Giter VIP logo

emacs24-starter-kit's Introduction

This is a Literate Programming fork of the original Emacs Starter Kit

This should provide a saner set of defaults than you get normally with
Emacs. It's intended for beginners, but provides a good elisp
initialization structure for all levels of users.

The main advantages of this Emacs Starter Kit are
- better default settings
- easy loading of many useful libraries and configurations
- "literate" customization embedded in Org-mode files
- an organizational directory structure
- git provides for version control, backup, and sharing
- easy installation with no need to compile external packages

The latest version is at http://github.com/eschulte/emacs24-starter-kit/

For more information including use and installation instructions see
http://eschulte.github.com/emacs24-starter-kit/

emacs24-starter-kit's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

emacs24-starter-kit's Issues

Please add USERNAME in the search for the username.

At this moment when searching for an appropriate file name .el or .org it looks for the USER variable which returns empty on windows and throws an error. Can you please also add USERNAME in the search path or notify users to add the USER environment variable explicitly.
What I did at the moment was to map the one to the other within init.el which obviously will be overwritten whenever I update.

Regards,

Nikos Tzanos

"Package `emacs-24.4' is unavailable"

I am running emacs24.3. If I try to run this starter kit from a dedicated directory as described in the readme, I get the message "Package `emacs-24.4' is unavailable".

emacs foo.txt does not open foo.txt

After instalation of the emacs24-starter-kit, the instruction "emacs foo.txt" does open the file foo.txt, but after adding a single notes.org file with
#+begin_src emacs-lisp
(starter-kit-load "python")
#+end_src
the instruction "emacs foo.txt" does not open the file foo.txt.

Should personal configuration files contain something special?

custom.el not loading

I dont know why but it seems to be starter-kit is not loading custom.el file. Do i have to load it myself? Im also using a username.el file to config my user settings.

starter-kit-lisp.org breaks the SLIME debugger

In starter-kit-lisp.org:

(defalias 'sldb-toggle-details 'slime-jump-to-trace)

This makes inspecting stack frames in the SLIME debugger fail with the following message:

Search failed: "[0-9]: \\([^$(]+\\).*?\\([0-9]*\\))"

I suppose it does something useful for Clojure, but it should not break compatibility with Common Lisp as a side-effect.

why three elisp code in starter-kit.org no run?

(starter-kit-loads "python")
(starter-kit-load "gnus" "pretty-summary")
(starter-kit-load "gnus" "visual")
i'm a newer,there three code in starter-kit.org but not in starter-kit.el.why?
them also marked :#+begin_src emacs-lisp
thank you

head of packaged python-mode needs python-mode installation dir set

Recent versions of packaged (https://github.com/emacsmirror/python-mode) python-mode seem to require a py-install-directory variable set and provide default-directory as a fallback if the var is not set. We should likely add in something like this before the (require 'python-mode) in starter-kit-python.org to properly set this variable to the installed package version:

(setq py-install-directory
  (car (directory-files package-user-dir t "python-mode-.*")) )

This is probably a relatively fragile gist: it pulls the first item out of the (not reliably sorted) list of file/dirs that match the pattern out of the package directory. It might be useful to have a "get directory for loaded package" function or something to properly get the place that a loaded package ends up at here.

I'm using this setq in my starter-kit-python.el, and it seems to work just fine.

Doesn't work with emacs24 packaged for Debian using -q -l

I'm trying to test it using something like:
emacs24 -q -l ~/git/github.com/eschulte/emacs24-starter-kit/init.el

But that doesn't work : Messages tells nothing about a loaded init.el

Also, using M-x load-file on the init.el doesn't acknowledge org-mode loaded from the Debian package (through /etc/emacs/site-start.d/50org-mode.el).

I guess the org detection code should be adapted...

Hope this helps.

setting $HOME/.emacs.d/ in the load-path causes initialization warning.

If one follows the [installation instructions](git clone http://github.com/eschulte/emacs24-starter-kit.git), upon startup an initialization warning is generated, stating:

Warning (initialization): Your `load-path' seems to contain
your `.emacs.d' directory: /home/user/.emacs.d/
This is likely to cause problems...
Consider using a subdirectory instead, e.g.: /home/user/.emacs.d/lisp

Not a huge issue for sure, but one that's likely to confuse a new user...
System details, if you need them...

% apt-cache show emacs-snapshot | grep Version
Version: 2:20140101-1~ppa1~saucy1
% cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=13.10
DISTRIB_CODENAME=saucy
DISTRIB_DESCRIPTION="Ubuntu 13.10"
% dpkg-query -l | grep emacs | sed -e 's/ \+/ /g' | cut -d' ' -f2 | tr '\n' ' '
emacs-snapshot emacs-snapshot-bin-common emacs-snapshot-common emacs-snapshot-el emacs-snapshot-gtk emacsen-common

org-mode source directory

The code that loads babel in starter-kit-org.org looks for an org directory in the src directory. This wasn't an issue in the previous starter kit, since the org source was pulled into the starter kit by default. Now that they are separate, simply cloning the org git repository creates an org-mode directory. This creates a pause during initialization that is only noticeable when running emacs as a daemon, so this isn't a huge issue.

What I'm wondering is whether we should expect users to rename their org directories, or whether the starter kit should look, by default, for org-mode instead of org. I'm just not familiar with emacs package folder naming conventions and the like. I'd be happy to submit a patch if needed (I have two others on the back burner at the moment).

activate starter-kit-python error

When I activate the python starter kit, it gives me a error: "Symbol's value as variable is void: py-python-command"
I use the newest GNU Emacs 24.1.1. I search the web and find something seems helpful. (ipython/ipython#853)
And I add this two lines :
(setq ipython-command "/usr/local/bin/ipython")
(setq py-python-command "/usr/local/bin/ipython")
to starter-kit-python.el. But it doesn't work.
Do you ever met this problem, how do you handle it?

Thanks!

How to override buildin CEDET

I am using Emacs 24.3.1 on Ubuntu and clone the CEDET repo at ~/project/cedet. When I try to load "cedet-devel-load.el" in $USER.org file. I got error message like this.

progn: eieio is already loaded. Removing CEDET now would be unwise.

It seams I load it too late. Where should be the right place to load it to override the built-in one?

Thanks.

Byte-Compiling org-mode files

Eric,

To speed a stable load up, a byte-compile of org-files may be generally useful. I have it in my fork.

(defun starter-kit-load-org (file)
  "Loads Emacs Lisp source code blocks like `org-babel-load-file'.  However, byte-compiles the files as well as tangles them..."
  (flet ((age (file)
              (float-time
               (time-subtract (current-time)
                              (nth 5 (or (file-attributes (file-truename file))
                                         (file-attributes file)))))))
    (let* ((base-name (file-name-sans-extension file))
           (exported-file (concat base-name ".el"))
           (compiled-file (concat base-name ".elc")))
      (unless (and (file-exists-p exported-file)
                   (> (age file) (age exported-file)))
    (message "Trying to Tangle %s" file)
        (condition-case err
        (progn
          (org-babel-tangle-file file exported-file "emacs-lisp")
              (starter-kit-m (format "Tangled %s to %s"
                                      file exported-file)))
          (error (message "Error Tangling %s" file))))
      (when (file-exists-p exported-file)
        (if (and (file-exists-p compiled-file)
                 (> (age exported-file) (age compiled-file)))
            (progn
              (load-file compiled-file)
              (starter-kit-m (format "Loaded %s" compiled-file)))
          (byte-compile-file exported-file t)
          (starter-kit-m (format "Byte-compiled & loaded %s" exported-file))
          ;; Fallback and load source
          (if (file-exists-p compiled-file)
              (set-file-times compiled-file) ; Touch file.
            (load-file exported-file)
            (starter-kit-m (format "Loaded %s since byte-compile failed."
                                   exported-file))))))))

package-compute-transaction: Package `magit-' is unavailable

(Total emacs noob)

I installed emacs 24.3.50 from binary package for OSX. Then, I followed the emacs24-starter-kit installation instructions.

When I start emacs, this shows up in the *Messages* buffer:

Wrote /Users/nooga/.emacs.d/starter-kit-bindings.el [15 times]
Tangled 15 code blocks from starter-kit-bindings.org
Loading /Users/nooga/.emacs.d/starter-kit-bindings.el (source)...done
Loaded /Users/nooga/.emacs.d/starter-kit-bindings.el
(No changes need to be saved)
Wrote /Users/nooga/.emacs.d/starter-kit-misc.el [11 times]
Tangled 11 code blocks from starter-kit-misc.org
Loading /Users/nooga/.emacs.d/starter-kit-misc.el (source)...
package-compute-transaction: Package `magit-' is unavailable

I don't have clue what's wrong and how to fix it. Another thing is that I don't really want magit.

I couldn't find any information on that kind of error in the install instructions. Please help :)

request for comment: removing marmalade and cleaning up the list of ELPA sources

Currently the starter kit uses the following sites as sources for ELPA packages.

 (setq package-archives
       '(("gnu"         . "http://elpa.gnu.org/packages/")
         ("original"    . "http://tromey.com/elpa/")
         ("org"         . "http://orgmode.org/elpa/")
         ("marmalade"   . "http://marmalade-repo.org/packages/")
         ("melpa"       . "http://melpa.milkbox.net/packages/")))

I'm thinking of removing marmalade, and maybe the original sites as well. Both because melpa has very good coverage, and because I've run into occasions where old marmalade versions of packages prevented newer melpa versions from being installed.

Please share your thoughts, specifically are there any starter kit users who use packages which are not available in melpa? I've leave this open for at least a week so everyone has a chance to comment before making any changes.

Thanks,

hippie-exp customization breaks ESK in emacs-snapshot

I'm using an up-to-date Emacs from Damien Cassou's emacs-snapshot PPA. After a recent upgrade to version 2:20121004-1ppa1precise1, emacs24-starter-kit fails to start. With the --debug-init option, I get the following traceback (file paths un-prefixed for brevity):

Debugger entered--Lisp error: (void-variable hippie-expand-try-functions-list)
  (delete (quote try-expand-line) hippie-expand-try-functions-list)
  eval-buffer(#<buffer  *load*-217193> nil "starter-kit-misc.el" nil t)  ; Reading at buffer position 1999
  load-with-code-conversion("starter-kit-misc.el" "starter-kit-misc.el" nil nil)
  load("starter-kit-misc.el" nil nil t)
  load-file("starter-kit-misc.el")
  org-babel-load-file("starter-kit-misc.org")
  (let ((file (expand-file-name (if (string-match "starter-kit-.+.org" file) file (format "starter-kit-%s.org" file)) starter-kit-dir))) (org-babel-load-file (if header-or-tag (let* ((base (file-name-nondirectory file)) (dir (file-name-directory file)) (partial-file (expand-file-name (concat "." ... ".part." header-or-tag ".org") dir))) (if (file-exists-p partial-file) nil (let ((temp-file partial-file) (temp-buffer ...)) (unwind-protect (prog1 ... ...) (and ... ...)))) partial-file) file)))
  starter-kit-load("starter-kit-misc.org")
  eval-buffer(#<buffer  *load*-922140> nil "starter-kit.el" nil t)  ; Reading at buffer position 3319
  load-with-code-conversion("starter-kit.el" "starter-kit.el" nil nil)
  load("starter-kit.el" nil nil t)
  load-file("starter-kit.el")
  org-babel-load-file("starter-kit.org")
  eval-buffer(#<buffer  *load*> nil "init.el" nil t)  ; Reading at buffer position 348
  load-with-code-conversion("init.el" "init.el" t t)
  load("init" t t)
  #[0 "�\205\262

If I insert (require 'hippie-exp) at the top of init.el, it works.

I should probably just use a Emacs 24 release, but consider this as a heads-up for possible future breakage.

init.el throws "wrong number of arguments"

After installing org-mode and elpa and tweaking init.el, I encountered this error when firing up emacs:

Warning (initialization): An error occurred while loading `/home/akaihola/.emacs.d/init.el':

Wrong number of arguments: (lambda (package version) (let ((pkg-desc (assq package package-alist))) (and pkg-desc (package-version-compare version (package-desc-vers (cdr pkg-desc)) (quote >=))))), 1

To ensure normal operation, you should investigate and remove the
cause of the error in your initialization file.  Start Emacs with
the `--debug-init' option to view a complete error backtrace

With this one I'm a bit lost...

Auto completion of C-x-C-f

If I have file test.cpp under this directory, then I have no way to use C-x-C-f to make a new file called test, since the auto completion always completes it into test.cpp. Can this behaviour be overridden?

package archives should include MELPA for Emacs24?

Package mode's description at emacswiki (http://www.emacswiki.org/emacs/ELPA) lists the MELPA archive as one to include, but starter-kit doesn't. Perhaps it should?

diff --git a/starter-kit.org b/starter-kit.org
index dfd73f1..efff96a 100644
--- a/starter-kit.org
+++ b/starter-kit.org
@@ -263,6 +263,7 @@ interested in the actual code implementing the starter kit.
           '(("gnu"         . "http://elpa.gnu.org/packages/")
             ("original"    . "http://tromey.com/elpa/")
             ("org"         . "http://orgmode.org/elpa/")
+            ("melpa"       . "http://melpa.milkbox.net/packages/")
             ("marmalade"   . "http://marmalade-repo.org/packages/")))
     (package-initialize)

./src/ files missing?

I'm trying to switch to the new starter kit. When booting up, emacs complains that it can't find ipython.el when loading init.el. I had the old directory, so I copied it over, and then emacs complained that it could find cython.el. Should there be anything in the src directory after a fresh clone? I copied over a few personalized files that worked fine in the other starter kit, but I don't think they'd cause this issue.

Wrong order of loading literate files?

Eric,

I am reluctant to suggest that there is an error in your code, since I've been a shameless parasite on your programming for some time now. Also, I'm not really an elisp programmer. So take this cum grano sal.

  1. It looks like the starter kit is looking for and loading .el files before looking for a .org file. I'm looking at starter-kit.org,
    the code under "System/User specific customizations". At the end, it appears to look for and load in the wrong order.
    I've changed the order below, and many errors I was getting went away.

    ;; load any files in the user's directory
    (when (file-exists-p user-specific-dir)
    (let ((default-directory user-specific-dir))
    ;; N.B.: I changed the order of the following two clauses
    (mapc #'org-babel-load-file
    (directory-files user-specific-dir nil "._org$"))
    (mapc #'load
    (directory-files user-specific-dir nil "._el$"))))))

  2. Along the same lines, the function org-babel-load-file in ob-tangle.el looks like its comparing the age of
    the input "file" and the output "exported-file" in the wrong direction.
    Here is the snippet as I've changed it.
    (unless (and (file-exists-p exported-file)
    ;; N.B: the following has the order reversed from the official version
    (> (age exported-file) (age file)))
    (org-babel-tangle-file file exported-file "emacs-lisp"))

I'm not at all confident about these, but I can't seem to get my literate elisp files to work otherwise. After an edit, the older .el
file still gets loaded without a re-tangle.

Regards,

Dan Doherty

org-babel-load-file not found

On a fresh install of Ubuntu 11.04 with the emacs-snapshot package, I first checked out and installed org-mode from its repository. I then checked out emacs24-starter-kit in the ~/.emacs.d directory and fired up Emacs. Got this:

Warning (initialization): An error occurred while loading `/home/akaihola/.emacs.d/init.el':

Symbol's function definition is void: org-babel-load-file

To ensure normal operation, you should investigate and remove the
cause of the error in your initialization file.  Start Emacs with
the `--debug-init' option to view a complete error backtrace.

I can get past the error manually by running emacs -q and executing first M-x org-mode and then load-file ~/.emacs.d/init.el.

How to best fix this bootstrapping issue?

Put src directory in front of load path

Eric,

I'm giving starter-kit a workout. I tried to use your workaraound for the color-theme loading error by downloading version 6.6.0 into the ~/.emacs.d/src directory, assuming that it would go to the front of the load-path. But it comes after, so emacs tries to load the elpa version anyway.

Also, can't just delete the elpa version because starter-kit insists on loading it on start up as part of the core.

Seems that it should not be part of the core. I've always had problems with it, but have high hopes for emacs 24, so I want to try it.

Also seems that src and its subdirecories, recursively, should go to the front of the load-path so they override anything from elpa.

Still having fun.

Thanks, Eric,

Dan Doherty

void function recentf-ido-find-file

Somewhere, I got used to functionality similar to that provided by this function on emacs wiki:

    (defun recentf-ido-find-file ()
      "Find a recent file using Ido."
      (interactive)
      (let* ((file-assoc-list
          (mapcar (lambda (x)
                (cons (file-name-nondirectory x)
                  x))
              recentf-list))
         (filename-list
          (remove-duplicates (mapcar #'car file-assoc-list)
                     :test #'string=))
         (filename (ido-completing-read "Choose recent file: "
                        filename-list
                        nil
                        t)))
        (when filename
          (find-file (cdr (assoc filename
                     file-assoc-list))))))

I think this (or something similar) was defined in an earlier version of the starter kit. I haven't been able to find it in related core libraries, and it isn't in any of my customization files. It's very handy, especially since it's bound to C-x f in starter-kit-bindings.org.

conflict between `org-src-tab-acts-natively` and yasnippet

org-src-tab-acts-natively should be turned off if yasnippet is enabled.

Otherwise, pressing tab in a source block will not only throw up an error. Much more importantly, it will add indentations to every line of the source block which, strangely and confusingly, cannot easily be undone as far as I can tell.

rinari-major-modes set to hooks

Eric,

Looks to me as though there is an error in starter-kit-ruby.org

#+begin_src emacs-lisp
    (setq rinari-major-modes
      (list 'mumamo-after-change-major-mode-hook 'dired-mode-hook 'ruby-mode-hook
        'css-mode-hook 'yaml-mode-hook 'javascript-mode-hook))
#+end_src

should be something like:

#+begin_src emacs-lisp
    (setq rinari-major-modes
      (list '(dired-mode 'ruby-mode  'css-mode 'yaml-mode 'javascript-mode))
#+end_src

The symptom is not running rinari-launch automatically. THe fix worked for me, though I'm not sure what to do with mumamo.

Regards,

Python-mode fails - cannot find cython-mode

I have just installed emacs24 and the starter kit on fedora.
When starter-kit-load ptyhon is added to init.el it boots and adds the python dependecies. However on reboot emacs fails beause of a file error not able to locate cython-mode.

This is the --debug-init

Debugger entered--Lisp error: (file-error "Cannot open load file" "cython-mode")
require(cython-mode)
eval-buffer(#<buffer load<4>> nil "/home/sayth/.emacs.d/starter-kit-python.el" nil t) ; Reading at buffer position 386
load-with-code-conversion("/home/sayth/.emacs.d/starter-kit-python.el" "/home/sayth/.emacs.d/starter-kit-python.el" nil nil)
load("/home/sayth/.emacs.d/starter-kit-python.el" nil nil t)
load-file("/home/sayth/.emacs.d/starter-kit-python.el")
org-babel-load-file("/home/sayth/.emacs.d/starter-kit-python.org")
(let ((file (expand-file-name (if (string-match "starter-kit-.+.org" file) file (format "starter-kit-%s.org" file)) starter-kit-dir))) (org-babel-load-file (if header-or-tag (let* ((base (file-name-nondirectory file)) (dir (file-name-directory file)) (partial-file (expand-file-name (concat "." ... ".part." header-or-tag ".org") dir))) (unless (file-exists-p partial-file) (with-temp-file partial-file (insert (with-temp-buffer ... ...)))) partial-file) file)))
starter-kit-load("python")
eval-buffer(#<buffer load<3>> nil "/home/sayth/.emacs.d/sayth.el" nil t) ; Reading at buffer position 28
load-with-code-conversion("/home/sayth/.emacs.d/sayth.el" "/home/sayth/.emacs.d/sayth.el" nil nil)
load("/home/sayth/.emacs.d/sayth.el")
(cond ((file-exists-p encrypted-org) (org-babel-load-file encrypted-org)) ((file-exists-p encrypted-el) (load encrypted-el)) ((file-exists-p literate) (org-babel-load-file literate)) ((file-exists-p plain) (load plain)))
(let* ((path (expand-file-name base starter-kit-dir)) (literate (concat path ".org")) (encrypted-org (concat path ".org.gpg")) (plain (concat path ".el")) (encrypted-el (concat path ".el.gpg"))) (cond ((file-exists-p encrypted-org) (org-babel-load-file encrypted-org)) ((file-exists-p encrypted-el) (load encrypted-el)) ((file-exists-p literate) (org-babel-load-file literate)) ((file-exists-p plain) (load plain))))
(catch (quote --cl-block-sk-load--) (let* ((path (expand-file-name base starter-kit-dir)) (literate (concat path ".org")) (encrypted-org (concat path ".org.gpg")) (plain (concat path ".el")) (encrypted-el (concat path ".el.gpg"))) (cond ((file-exists-p encrypted-org) (org-babel-load-file encrypted-org)) ((file-exists-p encrypted-el) (load encrypted-el)) ((file-exists-p literate) (org-babel-load-file literate)) ((file-exists-p plain) (load plain)))))
(cl-block-wrapper (catch (quote --cl-block-sk-load--) (let* ((path (expand-file-name base starter-kit-dir)) (literate (concat path ".org")) (encrypted-org (concat path ".org.gpg")) (plain (concat path ".el")) (encrypted-el (concat path ".el.gpg"))) (cond ((file-exists-p encrypted-org) (org-babel-load-file encrypted-org)) ((file-exists-p encrypted-el) (load encrypted-el)) ((file-exists-p literate) (org-babel-load-file literate)) ((file-exists-p plain) (load plain))))))
(block sk-load (let* ((path (expand-file-name base starter-kit-dir)) (literate (concat path ".org")) (encrypted-org (concat path ".org.gpg")) (plain (concat path ".el")) (encrypted-el (concat path ".el.gpg"))) (cond ((file-exists-p encrypted-org) (org-babel-load-file encrypted-org)) ((file-exists-p encrypted-el) (load encrypted-el)) ((file-exists-p literate) (org-babel-load-file literate)) ((file-exists-p plain) (load plain)))))
sk-load("sayth")
(let ((elisp-dir (expand-file-name "src" starter-kit-dir)) (user-dir (expand-file-name user-login-name starter-kit-dir))) (add-to-list (quote load-path) elisp-dir) (when (file-exists-p elisp-dir) (let ((default-directory elisp-dir)) (normal-top-level-add-subdirs-to-load-path))) (sk-load system-name) (sk-load user-login-name) (when (file-exists-p user-dir) (add-to-list (quote load-path) user-dir) (mapc (function sk-load) (remove-duplicates (mapcar (function remove-extension) (directory-files user-dir t "..(org|el)(.gpg)?$")) :test (function string=)))))
(progn (fset (quote remove-extension) (function
(lambda (name) (block remove-extension (string-match "(.?).(org(.el)?|el)(.gpg)?$" name) (match-string 1 name))))) (let ((elisp-dir (expand-file-name "src" starter-kit-dir)) (user-dir (expand-file-name user-login-name starter-kit-dir))) (add-to-list (quote load-path) elisp-dir) (when (file-exists-p elisp-dir) (let ((default-directory elisp-dir)) (normal-top-level-add-subdirs-to-load-path))) (sk-load system-name) (sk-load user-login-name) (when (file-exists-p user-dir) (add-to-list (quote load-path) user-dir) (mapc (function sk-load) (remove-duplicates (mapcar (function remove-extension) (directory-files user-dir t "..(org|el)(.gpg)?$")) :test (function string=))))))
(unwind-protect (progn (fset (quote remove-extension) (function* (lambda (name) (block remove-extension (string-match "(.?).(org(.el)?|el)(.gpg)?$" name) (match-string 1 name))))) (let ((elisp-dir (expand-file-name "src" starter-kit-dir)) (user-dir (expand-file-name user-login-name starter-kit-dir))) (add-to-list (quote load-path) elisp-dir) (when (file-exists-p elisp-dir) (let ((default-directory elisp-dir)) (normal-top-level-add-subdirs-to-load-path))) (sk-load system-name) (sk-load user-login-name) (when (file-exists-p user-dir) (add-to-list (quote load-path) user-dir) (mapc (function sk-load) (remove-duplicates (mapcar (function remove-extension) (directory-files user-dir t "..(org|el)(.gpg)?$")) :test (function string=)))))) (if --cl-letf-bound-- (fset (quote remove-extension) --cl-letf-save--) (fmakunbound (quote remove-extension))))
(let* ((--cl-letf-bound-- (fboundp (quote remove-extension))) (--cl-letf-save-- (and --cl-letf-bound-- (symbol-function (quote remove-extension))))) (unwind-protect (progn (fset (quote remove-extension) (function* (lambda (name) (block remove-extension (string-match "(.?).(org(.el)?|el)(.gpg)?$" name) (match-string 1 name))))) (let ((elisp-dir (expand-file-name "src" starter-kit-dir)) (user-dir (expand-file-name user-login-name starter-kit-dir))) (add-to-list (quote load-path) elisp-dir) (when (file-exists-p elisp-dir) (let ((default-directory elisp-dir)) (normal-top-level-add-subdirs-to-load-path))) (sk-load system-name) (sk-load user-login-name) (when (file-exists-p user-dir) (add-to-list (quote load-path) user-dir) (mapc (function sk-load) (remove-duplicates (mapcar ... ...) :test (function string=)))))) (if --cl-letf-bound-- (fset (quote remove-extension) --cl-letf-save--) (fmakunbound (quote remove-extension)))))
(letf (((symbol-function (quote remove-extension)) (function
(lambda (name) (block remove-extension (string-match "(.?).(org(.el)?|el)(.gpg)?$" name) (match-string 1 name)))))) (let ((elisp-dir (expand-file-name "src" starter-kit-dir)) (user-dir (expand-file-name user-login-name starter-kit-dir))) (add-to-list (quote load-path) elisp-dir) (when (file-exists-p elisp-dir) (let ((default-directory elisp-dir)) (normal-top-level-add-subdirs-to-load-path))) (sk-load system-name) (sk-load user-login-name) (when (file-exists-p user-dir) (add-to-list (quote load-path) user-dir) (mapc (function sk-load) (remove-duplicates (mapcar (function remove-extension) (directory-files user-dir t "..(org|el)(.gpg)?$")) :test (function string=))))))
(progn (fset (quote sk-load) (function* (lambda (base) (block sk-load (let* ((path ...) (literate ...) (encrypted-org ...) (plain ...) (encrypted-el ...)) (cond (... ...) (... ...) (... ...) (... ...))))))) (letf (((symbol-function (quote remove-extension)) (function* (lambda (name) (block remove-extension (string-match "(.?).(org(.el)?|el)(.gpg)?$" name) (match-string 1 name)))))) (let ((elisp-dir (expand-file-name "src" starter-kit-dir)) (user-dir (expand-file-name user-login-name starter-kit-dir))) (add-to-list (quote load-path) elisp-dir) (when (file-exists-p elisp-dir) (let ((default-directory elisp-dir)) (normal-top-level-add-subdirs-to-load-path))) (sk-load system-name) (sk-load user-login-name) (when (file-exists-p user-dir) (add-to-list (quote load-path) user-dir) (mapc (function sk-load) (remove-duplicates (mapcar (function remove-extension) (directory-files user-dir t "..(org|el)(.gpg)?$")) :test (function string=)))))))
(unwind-protect (progn (fset (quote sk-load) (function* (lambda (base) (block sk-load (let* (... ... ... ... ...) (cond ... ... ... ...)))))) (letf (((symbol-function (quote remove-extension)) (function* (lambda (name) (block remove-extension ... ...))))) (let ((elisp-dir (expand-file-name "src" starter-kit-dir)) (user-dir (expand-file-name user-login-name starter-kit-dir))) (add-to-list (quote load-path) elisp-dir) (when (file-exists-p elisp-dir) (let ((default-directory elisp-dir)) (normal-top-level-add-subdirs-to-load-path))) (sk-load system-name) (sk-load user-login-name) (when (file-exists-p user-dir) (add-to-list (quote load-path) user-dir) (mapc (function sk-load) (remove-duplicates (mapcar ... ...) :test (function string=))))))) (if --cl-letf-bound-- (fset (quote sk-load) --cl-letf-save--) (fmakunbound (quote sk-load))))
(let* ((--cl-letf-bound-- (fboundp (quote sk-load))) (--cl-letf-save-- (and --cl-letf-bound-- (symbol-function (quote sk-load))))) (unwind-protect (progn (fset (quote sk-load) (function* (lambda (base) (block sk-load (let* ... ...))))) (letf (((symbol-function (quote remove-extension)) (function* (lambda ... ...)))) (let ((elisp-dir (expand-file-name "src" starter-kit-dir)) (user-dir (expand-file-name user-login-name starter-kit-dir))) (add-to-list (quote load-path) elisp-dir) (when (file-exists-p elisp-dir) (let (...) (normal-top-level-add-subdirs-to-load-path))) (sk-load system-name) (sk-load user-login-name) (when (file-exists-p user-dir) (add-to-list (quote load-path) user-dir) (mapc (function sk-load) (remove-duplicates ... :test ...)))))) (if --cl-letf-bound-- (fset (quote sk-load) --cl-letf-save--) (fmakunbound (quote sk-load)))))
(letf (((symbol-function (quote sk-load)) (function* (lambda (base) (block sk-load (let* (... ... ... ... ...) (cond ... ... ... ...))))))) (letf (((symbol-function (quote remove-extension)) (function* (lambda (name) (block remove-extension (string-match "(.?).(org(.el)?|el)(.gpg)?$" name) (match-string 1 name)))))) (let ((elisp-dir (expand-file-name "src" starter-kit-dir)) (user-dir (expand-file-name user-login-name starter-kit-dir))) (add-to-list (quote load-path) elisp-dir) (when (file-exists-p elisp-dir) (let ((default-directory elisp-dir)) (normal-top-level-add-subdirs-to-load-path))) (sk-load system-name) (sk-load user-login-name) (when (file-exists-p user-dir) (add-to-list (quote load-path) user-dir) (mapc (function sk-load) (remove-duplicates (mapcar (function remove-extension) (directory-files user-dir t "..(org|el)(.gpg)?$")) :test (function string=)))))))
(letf* (((symbol-function (quote sk-load)) (function* (lambda (base) (block sk-load (let* (... ... ... ... ...) (cond ... ... ... ...)))))) ((symbol-function (quote remove-extension)) (function* (lambda (name) (block remove-extension (string-match "(.?).(org(.el)?|el)(.gpg)?$" name) (match-string 1 name)))))) (let ((elisp-dir (expand-file-name "src" starter-kit-dir)) (user-dir (expand-file-name user-login-name starter-kit-dir))) (add-to-list (quote load-path) elisp-dir) (when (file-exists-p elisp-dir) (let ((default-directory elisp-dir)) (normal-top-level-add-subdirs-to-load-path))) (sk-load system-name) (sk-load user-login-name) (when (file-exists-p user-dir) (add-to-list (quote load-path) user-dir) (mapc (function sk-load) (remove-duplicates (mapcar (function remove-extension) (directory-files user-dir t "..(org|el)(.gpg)?$")) :test (function string=))))))
(flet ((sk-load (base) (let* ((path (expand-file-name base starter-kit-dir)) (literate (concat path ".org")) (encrypted-org (concat path ".org.gpg")) (plain (concat path ".el")) (encrypted-el (concat path ".el.gpg"))) (cond ((file-exists-p encrypted-org) (org-babel-load-file encrypted-org)) ((file-exists-p encrypted-el) (load encrypted-el)) ((file-exists-p literate) (org-babel-load-file literate)) ((file-exists-p plain) (load plain))))) (remove-extension (name) (string-match "(.?).(org(.el)?|el)(.gpg)?$" name) (match-string 1 name))) (let ((elisp-dir (expand-file-name "src" starter-kit-dir)) (user-dir (expand-file-name user-login-name starter-kit-dir))) (add-to-list (quote load-path) elisp-dir) (when (file-exists-p elisp-dir) (let ((default-directory elisp-dir)) (normal-top-level-add-subdirs-to-load-path))) (sk-load system-name) (sk-load user-login-name) (when (file-exists-p user-dir) (add-to-list (quote load-path) user-dir) (mapc (function sk-load) (remove-duplicates (mapcar (function remove-extension) (directory-files user-dir t "..(org|el)(.gpg)?$")) :test (function string=))))))
eval-buffer(#<buffer load<2>> nil "/home/sayth/.emacs.d/starter-kit.el" nil t) ; Reading at buffer position 5662
load-with-code-conversion("/home/sayth/.emacs.d/starter-kit.el" "/home/sayth/.emacs.d/starter-kit.el" nil nil)
load("/home/sayth/.emacs.d/starter-kit.el" nil nil t)
load-file("/home/sayth/.emacs.d/starter-kit.el")
org-babel-load-file("/home/sayth/.emacs.d/starter-kit.org")
eval-buffer(#<buffer load> nil "/home/sayth/.emacs.d/init.el" nil t) ; Reading at buffer position 348
load-with-code-conversion("/home/sayth/.emacs.d/init.el" "/home/sayth/.emacs.d/init.el" t t)
load("/home/sayth/.emacs.d/init" t t)
#[0 "�\205\262

Publish to MELPA?

This might be a dumb question, but why not publish the emacs24-starter-kit to melpa? (or another package archive?) Or perhaps each language-specific starter kit as a separate package?

I prefer to install packages (even starter kits) from a package archive rather than using git, because I find it easier to manage.

Warnings while compiling color-theme

Hi,

I've just found your starting kit and I would like to give it a shot. However when I start Emacs I get the following warnings about color-theme:

Compiling no file at Mon Nov 14 13:57:53 2011
Leaving directory /Users/stelianiancu/.emacs.d/elpa/color-theme-6.6.1' Compiling file /Users/stelianiancu/.emacs.d/elpa/color-theme-6.6.1/color-theme-pkg.el at Mon Nov 14 13:57:53 2011 Entering directory/Users/stelianiancu/.emacs.d/elpa/color-theme-6.6.1/'

Compiling file /Users/stelianiancu/.emacs.d/elpa/color-theme-6.6.1/color-theme.el at Mon Nov 14 13:57:53 2011
color-theme.el:50:1:Warning: cl package required at runtime

In color-theme-install-variables:
color-theme.el:1208:57:Warning: `make-variable-frame-local' is an obsolete
function (as of Emacs 22.2); explicitly check for a frame-parameter
instead.

In end of data:
color-theme.el:1379:1:Warning: the following functions are not known to be defined:
color-theme-initialize, color-theme-face-attr-construct,
set-face-property, color-theme-spec-compat

Any idea why they appear and how can they be solved?

Thanks!

ido-imenu missing?

Eric,

Unless I missed it somewhere, is ido-imenu missing? It is bound in the global key bindings, but I can't find it.

Regards,

Dan

User-specific directory files getting loaded twice

Eric,

In starter-kit.org, when a user-specific directory is found, it looks like all the .org files are loaded, then all the .el files. So if you
use .org files for a literate init.el, it gets loaded as init.org, and again as init.el.

I use elscreen to setup four tabs, but I actually get eight. I think its the reloading that's doing it. I think there is a similar issue for standalone user and system-specific files, but I just use a system-specific directory.

BTW, loving org mode to comment my init.el. Thanks for literate starter-kit.

Regards,

Dan Doherty

"Symbol's function definition is void: mouse-wheel-mode" after first run

This is what I see after cloning the latest repository and running emacs from my OSX box using 24.2:

arning (initialization): An error occurred while loading `/Users/ydewit/.emacs.d/init.el':

Symbol's function definition is void: mouse-wheel-mode

To ensure normal operation, you should investigate and remove the
cause of the error in your initialization file.  Start Emacs with
the `--debug-init' option to view a complete error backtrace.

Doc update wrt user-specific customisations ?

Hi,
First, thanks for sharing this excellent project.
Forgive my noobishness but the recommanded way to define user specific customisations is not clear to me.
I went for the $USERNAME.org way but I then got caught by the fact that "make" did create the $USERNAME.el[c] files, but "make clean" did not remove them.

I fully understand why you would not want to delete .el[c] files outside of starter-kit-* but maybe a warning would be helpful
(or documenting the proper to achieve user specific customisation if I am mistaken).

Best Regards,

B.

start-kit-ruby File mode specification error: (void-function inf-ruby-keys)

Doing (starter-kit-load "ruby") causes the following to appear in Messages

Loading /Users/pat/.emacs.d/starter-kit-ruby.el (source)...
(lambda (line) ...) quoted with ' rather than with #'
Loading /Users/pat/.emacs.d/starter-kit-ruby.el (source)...done

And then later, when visiting a ruby file:

File mode specification error: (void-function inf-ruby-keys)
add-hook: Wrong type argument: symbolp, (quote ruby-mode)

And, weirdly, it causes the current window to not switch to the buffer of the newly visited file - I have to do C-x b and switch to it.

Docs update for emacs24-starter-kit probably useful

The "installation and usage" documentation for emacs24-starter-kit still mention that the latest version of the sources is at "http://github.com/eschulte/emacs-starter-kit/" (in several places: in the Introduction, and in the Contributing section), when it should point to "https://github.com/eschulte/emacs24-starter-kit", I think.

This should probably get updated, because it can lead people who aren't paying attention to install the wrong version of the starter kit when they're using Emacs24 builds... (yes, I know, I wasn't paying attention... 8/).

How to get this working in Windows

I had to run this in a cmd prompt before Emacs would load: setx USER my-user-name
Would probably be a good idea to mention it in the docs? :)
I put the .emacs.d directory in my user-directory/AppData/Roaming btw.

I will probably report something else, but at least it starts now.
My main OS is Linux, but sometimes I use Windows.. ;)

flet is deprecated

The use of flet in starter-kit.org is deprecated. This is fixed in my pull request

How to use starter kit with desktop.el and other init-dependant functions?

First, thank you for making a literate version of starter kit (and Org Babel for that matter). It's been a tremendous learning experience and the structure and literate format makes it much easier to understand what is going on and what I was thinking when I made decisions.

Now, the part that leaves me scratching my head for the past few days is this: is there any way to avoid using emacs's Customize facility and custom.el? The only thing missing from this setup is literate documentation of variables set through M-x customize-*, so I've tried to move as many of them as possible into <username>.org. But some built-in functions seem to rely on variables being set before after-init-hook is called whereas starter kit kicks into action after all packages are loaded.

I submit the following as an example. I'd like to document (desktop-save-mode 1) in <username>.org. I've tried all sorts of tricks to set it and then call (desktop-read), but I always start getting random errors such as:

File mode specification error: (error "Don't know how to make a localized variable an alias")

It seems that desktop.el is designed not to work the way I would like it to as can be seen in the last few lines of the file:

;; ----------------------------------------------------------------------------
;; When `desktop-save-mode' is non-nil and "--no-desktop" is not specified on the
;; command line, we do the rest of what it takes to use desktop, but do it
;; after finishing loading the init file.
;; We cannot use `command-switch-alist' to process "--no-desktop" because these
;; functions are processed after `after-init-hook'.
(add-hook
  'after-init-hook
  (lambda ()
    (let ((key "--no-desktop"))
      (when (member key command-line-args)
        (setq command-line-args (delete key command-line-args))
        (setq desktop-save-mode nil)))
    (when desktop-save-mode
      (desktop-read)
      (setq inhibit-startup-screen t))))

So is there any way of setting desktop.el to load the saved desktop on startup without essentially rewriting that code into <username>.el? And beyond that specific example, is there a particular pattern or technique that would make it possible to document all settings from /Customize/?

I guess a line could be added to init.el which would look for something like starter-kit-init.org and execute that code as part of init.el, but I didn't want to go down that path unless there is no other / better way.

color-theme-initialize not defined?

I followed the instructions on your blog, installed emacs24, and started emacs in daemon mode using emacs --daemon, got no errors, then did emacsclient -c, which opens an emacs window with no errors. Then I do M_x color-theme-select, and it complains saying function definition is void: color-theme-initialize.

This is using the bare-bones out-of-the-box emacs24-starter-kit, with none of my personal stuff

yasnippet-bundle based on old version of yasnippet

Eric,

The starter-kit installs yasnippet-bundle-0.6.0, which appears to install an old version of yasnippet where the external commands are prefixed with yas/... rather than yas-...
as in the current yasnippet version 0.8.0. here:

https://github.com/capitaomorte/yasnippet

It includes a default set of snippets, so yasnippet-bundle would seem no longer necessary.

Maybe there are issues I don't see, but thought I would bring it up.

Thanks for all your work on this and org-mode, by the way.

Autocompletion?

Hi

I just downloaded your package. No need to say that I am an Emacs beginner. One thing that I seem to miss is Autocomplete and not sure how to go ahead with your setup. Do you mind including one or explaining how to add without breaking your package?

I already did very basic custom stuff with git branching and adding a custom theme.

thanks

cython-mode File error

Im new to all of this git stuff so excuse me if im being dumb.
I put all the fles in my ~/.emacs.d folder and launched emacs and everything load without any issues. Then I make a new file called Paulo.el and paste (starter-kit-load "python") inside of it. It returns an error - File error: Cannot open load file, cython-mode

How can I fix this?
Again excuse me for my noobish.

Ruby mode RET bound to newline (without indent), and cannot reassign

Hi. I'm using the latest emacs24 starter kit, but it seems to be broken with regard to the RET key in Ruby mode.
When I type C-h k to see what is bound to the return key, it tells me that it is newline (not the newline and indent) function that is.
I cannot see where this reassignment is happening to correct it, and (as I am a Ruby dev), this makes everything pretty unusable.
I've tried reassigning the key for ruby and globally at the end of my init.el, but to no avail.
I've also tested the problem with a fresh install of the starter kit to be sure that it's not something I have done.
I'm running EMACS 24 on Ubuntu 13.04.
Cheers,
Doug.

Support for ESS

Hi,
I was just trying out your starter-kit, and was wondering if no one yet has
supplied starter-kit-ess.org. The following I miss, when working with R-script-files:

  • function-name-completition (M-Tab)
  • function-argument-completition (M-Tab)
  • showing of function-arguments at the bottom-line when the cursor is inside a
    function-arguments-specification

starter-kit-python fails to load in Emacs 24.3.1

I included the line (starter-kit-load "python") in my custom configuration. Instead of getting a nice sanely configured environment for Python programming, I got a bunch of ugly error messages.

From messages:

Loading /home/nat/.emacs.d/starter-kit-python.el (source)...
Warning: no abbrev-file found, customize `abbrev-file-name' in order to make mode-specific abbrevs work. 
byte-code: Don't know how to make a localized variable an alias
user-error: Minibuffer window is not active

adding turn-on-flyspell text-mode hook throws an error

Sometimes (add-hook 'text-mode-hook 'turn-on-flyspell) throws the following error:

Autoloading failed to define function turn-on-flyspell

There is a patch to technomancy's starter kit v2 that looks like this:

;; (add-hook 'text-mode-hook 'turn-on-flyspell)
(eval-after-load "ispell"
  '(when (executable-find ispell-program-name)
   (add-hook 'text-mode-hook 'turn-on-flyspell)))

That doesn't completely work for me; for some reason I still have to manually activate flyspell the first time after which it works.

color-theme not behaving as expected

  1. Start emacs

  2. M-x color-theme-select

  3. Observe debugger output:

    Debugger entered--Lisp error: (void-function color-theme-initialize) color-theme-initialize() color-theme-select(nil) call-interactively(color-theme-select t nil) execute-extended-command(nil) call-interactively(execute-extended-command nil nil)

Additionally, pointing to EmacsWiki and the color-theme page don't help much in the docs, since any version downloaded and installed from there will not be loaded since elpa packages are precedent in the path. I somehow had this working with the previous starter kit, but had similar problems until I abandoned the elpa package. Additionally, I do not believe the theme library is provided in the package. Will themes be picked up in a ./src/themes/, for example?

I find it a bit weird that the official version is 6.6.0 but the elpa package is at 6.6.1.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.