Code Monkey home page Code Monkey logo

prelude's Introduction

License GPL 3 CI Patreon Discord

Emacs Prelude

Prelude is an Emacs distribution that aims to enhance the default Emacs experience. Prelude alters a lot of the default settings, bundles a plethora of additional packages and adds its own core library to the mix. The final product offers an easy to use Emacs configuration for Emacs newcomers and lots of additional power for Emacs power users.

Prelude is compatible ONLY with GNU Emacs 25.1+. In general you're advised to always run Prelude with the latest stable Emacs release.

You can support the development of Prelude via GitHub Sponsors, ko-fi, PayPal and Patreon.

Features

  • Improved UX, that's still in line with Emacs traditions
  • Sane defaults of baseline Emacs functionality
  • Automatic installation of many major programming modes on demand
  • A curated set of 3rd party packages to enhance the base functionality
  • Simple modular architecture
  • Easy customization

Check out our user manual for more information.

Fast Forward

Assuming you're using an Unix-like OS (*BSD, GNU/Linux, macOS, Solaris, etc), you already have a recent version of Emacs installed, as well as git & curl you can skip the whole manual and just type in your favorite shell the following command:

$ curl -L https://git.io/epre | sh

You can now power up your Emacs, sit back and enjoy Prelude.

There are two environment variables you can use to control the source repository and the installation directory. To change the installation directory:

$ export PRELUDE_INSTALL_DIR="$HOME/.emacs.d" && curl -L https://github.com/bbatsov/prelude/raw/master/utils/installer.sh | sh

To change the source repository:

$ export PRELUDE_URL="https://github.com/yourname/prelude.git" && curl -L https://github.com/bbatsov/prelude/raw/master/utils/installer.sh | sh

Note that the installer will back up any existing .emacs file or .emacs.d since it will unpack Prelude's code in .emacs.d. If you're doing a manual install make sure you don't have a .emacs file or back up your existing .emacs.d directory manually.

Important: Don't forget to adjust your prelude-modules.el file in your personal directory once the installation is done. By default most of the modules that ship with Prelude are not loaded.

Philosophy

Prelude's philosophy is quite simple:

  • simple
  • easy to understand and extend
  • stable
  • a foundation for you to build upon, as opposed to some end-user product

This means that it intentionally doesn't pack all the bells and whistles that it could. Prelude aims to enhance the classic Emacs experience without deviating a lot from it - e.g. it would never enable something like evil-mode (vim keybindings) by default and so on.

All the third-party packages that it bundles are carefully vetted and are known to be of good quality and to have reliable maintainers. That generally means that Prelude's unlikely to immediate adopt some shiny new package, that has established tried and true alternatives.

In practice this translates to the following:

  • Prelude is less opinionated than distros like Spacemacs and Doom Emacs (meaning it's closer to the standard Emacs experience)
  • Prelude installs relatively few additional packages by default
  • Most modules in Prelude are opt-in instead of opt-out (you'll notice the default config enables only a handful of modules)
  • Most modules (e.g. modules for programming languages) are pretty short and feature setup only for essential packages (in some cases that be just the major mode for the language in question)
  • You don't really need to track Prelude's upstream - you're encouraged to just fork it and use it as the basis for your own configuration.

Remember that the ultimate goal of every Emacs user is to create an Emacs setup that reflects their own experience, needs, goals and ideas. Just like Lisp, Emacs is nothing but a raw building material for the perfect editing experience.

More installation options are discussed here.

User Manual

While Emacs Prelude is pretty simple at its core, it does have some specifics that are worth learning - e.g. configuration options, load order of modules and personal settings and so on.

Check out our user manual for more information.

You can also find a lot of information about specific Prelude features and the rationale behind them on my Emacs blog Emacs Redux.

crux and super-save

A lot of utility commands that used to be part of Prelude were eventually extracted to the crux package, so they'd be easily available to more people. These days Prelude simply depends on that package.

The super-save package also used to be part of Prelude in the past.

Known issues

Check out the project's issue list a list of unresolved issues. By the way - feel free to fix any of them and send me a pull request. :-)

Support

Support is available via several channels:

Contributors

Here's a list of all the people who have contributed to the development of Emacs Prelude.

Bugs & Improvements

Bug reports and suggestions for improvements are always welcome. GitHub pull requests are even better! :-)

License

Copyright © 2011-2023 Bozhidar Batsov and contributors.

Distributed under the GNU General Public License, version 3

prelude's People

Contributors

abizern avatar apiraino avatar avsej avatar bbatsov avatar bixuanzju avatar bronislav avatar byronclark avatar cnborn avatar dawuwgen avatar dougm avatar gabriel4649 avatar gleber avatar haplo avatar hbin avatar hut8 avatar jehrhardt avatar ksinkar avatar ktsiligkiris avatar lukerandall avatar marknsikora avatar neurolit avatar pjkundert avatar radicalzephyr avatar roryk avatar ryukinix avatar seanfisk avatar shixiongfei avatar swaroopch avatar toctan avatar tuhdo avatar

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  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

prelude's Issues

Something is wrong after update (git and get-el related)

Hi all!

After several months using Prelude I decided to update it to the last version.
Now I'm having some problems loading the libraries.
The problem disappears when I comment:

;;(require 'prelude-el-get)

I see other Windows users have the same issue. Just in case it helps, this is the Warnings buffer output

Warning (initialization): An error occurred while loading `c:/Users/rafaelgp/.emacs':

error: el-get: *git clone magit* Could not install package magit.

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.

And this is the git clone magit buffer output

      3 [main] git-remote-http 1652 exception::handle: Exception: STATUS_ACCESS_VIOLATION
   3338 [main] git-remote-http 1652 open_stackdumpfile: Dumping stack trace to git-remote-http.exe.stackdump
      3 [main] git-remote-http 2396 fork: child -1 - died waiting for longjmp before initialization, retry 0, exit code 0x8B00, errno 11
error: cannot fork() for fetch-pack: Resource temporarily unavailable

If the problem is that I need to install 'make' or any other Linux tool I'm screwed :-D

Cheers!

Makfile tab inserted as spaces

I write a Makefile and use tab to indent. But emacs inserts 8 spaces for me. Even I insert the tab using C-q Tab, when I save the file, it's still 8 spaces...

C-p and C-n seem to (me at least) to randomly respect column cursor placement

When I hit C-a to go to the beginning of a line and then navigate up or down (using C-p or C-n) the cursor doesn't always respect the first column. I've tried to present a sequence of commands and the resulting cursor placement.

https://img.skitch.com/20111129-byf1pk9y3jpk2j18q1anruadnp.jpg

This seems confusing to me as I'd expect the cursor to hug the first column when navigating a line at a time. And indeed this is the case most of the time. It's not that big of a deal but sometimes it catches me by surprise when I've set my mark and navigated up or down to set the end, copied (or cut) and then pasted the region only to realize that the end mark was indented one column in. This is most troublesome when cutting as it requires manual fixing to go back and indent the code. Again this isn't that big of a deal except when it happens it something that syntactically requires proper indentation like HAML.

Through the years, I don't remember having this issue in other emacs implementations or with other included modules.

Thanks.

ruby-block-mode always enabled

RBlock is always enabled. I've tested it with ELisp, perl and xml files. It's even enabled in scratch or help buffers.

Edit:
If (require 'ruby-{mode,end}) are moved to prelude-ruby-mode-hook it works ok - I think.

ruby-block.el and ruby-end.el loaded everytime

It's not a big deal, but I've noticed that the minor mode RBlock loads when I start Emacs.
Apparently this mode is meant to be used within ruby-mode, but it's loaded in all modes.

I'm not sure if it's a bug, or it's actually in the process to be fixed. There is a "TODO fix ruby-end and package ruby-block for marmalade" in prelude-ruby.el

I don't use Ruby anyway, so is there a way to 'unrequire' prelude-ruby.el?

Thank you!!!

error with commit 7dc48bdb6165de801b2eddf7253b16955bf2503d

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

error: el-get: make el-get could not build magit [make all]

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.

and the output of emacs --debug-init:

Debugger entered--Lisp error: (file-error "Cannot open load file" "package")
require(package)
eval-buffer(#<buffer load<2>> nil "/home/hua/.emacs.d/modules/prelude-packages.el" nil t) ; Reading at buffer position 1205
load-with-code-conversion("/home/hua/.emacs.d/modules/prelude-packages.el" "/home/hua/.emacs.d/modules/prelude-packages.el" nil t)
require(prelude-packages)
eval-buffer(#<buffer load> nil "/home/hua/.emacs.d/init.el" nil t) ; Reading at buffer position 2459
load-with-code-conversion("/home/hua/.emacs.d/init.el" "/home/hua/.emacs.d/init.el" t t)
load("/home/hua/.emacs.d/init" t t)
#[nil "�\205\264

Switch to ack-and-a-half.el

Hello

I suggest switching to ack-and-a-half.el instead of full-ack.el. I find it much more useful.

Have you tried it yourself?

;; real Emacs hackers don't use the arrow keys

After reading your blogpost I decided to give emacs-prelude a try. Having just started I can't really feed-back, but this one thing:

Please keep in mind that there are people out there, who have problems with their wrists and so forth due to emacs key binding. (http://xahlee.org/emacs/emacs_hand_pain_celebrity.html)

"using it the way it was intended to be used" -> have you kept in mind that it was not designed for todays keyboards?(http://xahlee.org/emacs/emacs_kb_shortcuts_pain.html)

If this library is also intended to be used by new emacs users you should think about some aspects of ergonomics too. (cua-mode etc.)

Anyway, thank you for providing this package!
Silvio

A suggestion: separate policy from implementation, separate your package from hardcoded values

I've been using emacs-prelude for much of a day now, and well, I am very impressed. It's a sophisticated package and leaps frog me way beyond the various old versions of emacs to a much more modern emacs, so thank you very much.

If I had a suggestion, it would be that your various prelude modules often mix implementation of some functionality with the hardcoded use of that functionality. So for example, you automatically load the zenburn theme, turn whitespace-mode on, and do similar things in the same files that you are also just setting up various hooks and other modes.

This means that a user who wants to track what you do with emacs-prelude finds it difficult to not load the zenburn theme, or to not use whitespace-mode, or to find other ways to tweak once more what you have tweaked. I don't think that's the way out of .emacs bankruptcy.

Or, as the Emacs Lisp Coding Conventions say, http://www.gnu.org/software/emacs/manual/html_node/elisp/Coding-Conventions.html#Coding-Conventions

Simply loading a package should not change Emacs's editing behavior. Include a command or commands to enable and disable the feature, or to invoke it. This convention is mandatory for any file that includes custom definitions. If fixing such a file to follow this convention requires an incompatible change, go ahead and make the incompatible change; don't postpone it.

"feature-mode" not found

You should add "feature-mode" to "prelude-packages" in "prelude.packages.el" so it gets installed from ELPA.

Keep up the good work!

Can't append to exec-path or env PATH

Or my emacs-fu is weak. In my usual init file, I have the following (ugly) lines:

(setenv "PATH" (concat "~/GHC/bin:/usr/local/bin:/usr/texbin:/usr/local/Cellar/ruby/1.9.3-p0/bin:/usr/local/share/python:" (getenv "PATH")))
(setq exec-path (append exec-path '("~/GHC/bin")) )
(setq exec-path (append exec-path '("/usr/local/bin")) )
(setq exec-path (append exec-path '("/usr/local/texbin")) )
(setq exec-path (append exec-path '("/usr/local/Cellar/ruby/1.9.3-p0/bin")) )
(setq exec-path (append exec-path '("/usr/local/share/python")) )

But when I (getenv PATH) or (describe-variable exec-path), these don't show up, which causes a couple of the other things in personal to throw up. Am I missing something?

Magit doesn't compile with el-get

I can grab the Magit package off of the package manager just fine in linux 3 debian-based install.

From the el-get -build: magit buffer:
Wrote /home/twirm/.emacs.d/el-get/magit/magit-bisect.elc
sed -e s/@Version@/1.0.0-316-g523f365/ < magit.spec.in > magit.spec
sed -e s/@Version@/1.0.0-316-g523f365/ < magit-pkg.el.in > magit-pkg.el
makeinfo magit.texi -o magit.info
make: makeinfo: Command not found
make: *** [magit.info] Error 127

When I run --debug-init:
Debugger entered--Lisp error: (error "el-get: make el-get could not build magit [make all]")
signal(error ("el-get: make el-get could not build magit [make all]"))
error("el-get: %s %s" "make" "el-get could not build magit [make all]")
(if (eq 0 status) (message "el-get: %s" message) (set-window-buffer (selected-window) cbuf) (error "el-get: %s %s" cname er$
(let* ((startf (if shell (function call-process-shell-command) (function call-process))) (infile (when stdin (make-temp-fil$
(if sync (let* ((startf (if shell (function call-process-shell-command) (function call-process))) (infile (when stdin (make$
(let* ((c (car commands)) (cdir (plist-get c :default-directory)) (cname (plist-get c :command-name)) (cbuf (plist-get c :b$
(if commands (let* ((c (car commands)) (cdir (plist-get c :default-directory)) (cname (plist-get c :command-name)) (cbuf (p$
(condition-case err (if commands (let* ((c (car commands)) (cdir (plist-get c :default-directory)) (cname (plist-get c :com$
el-get-start-process-list("magit" ((:command-name "make" :buffer-name "el-get-build: magit" :default-directory "/home/twi$
(let* ((pdir (el-get-package-directory package)) (wdir (if subdir (concat (file-name-as-directory pdir) subdir) pdir)) (buf$
el-get-build("magit" ("make all") nil sync el-get-post-install-build)
(let* ((sync el-get-default-process-sync) (hooks (el-get-method (el-get-package-type package) :install-hook)) (commands (el$
el-get-post-install("magit")
funcall(el-get-post-install "magit")
(progn (funcall final-func package))
(if (functionp final-func) (progn (funcall final-func package)))
(when (functionp final-func) (funcall final-func package))
(if next (el-get-start-process-list package next final-func) (when (functionp final-func) (funcall final-func package)))
(let* ((startf (if shell (function call-process-shell-command) (function call-process))) (infile (when stdin (make-temp-fil$
(if sync (let* ((startf (if shell (function call-process-shell-command) (function call-process))) (infile (when stdin (make$
(let* ((c (car commands)) (cdir (plist-get c :default-directory)) (cname (plist-get c :command-name)) (cbuf (plist-get c :b$
(if commands (let* ((c (car commands)) (cdir (plist-get c :default-directory)) (cname (plist-get c :command-name)) (cbuf (p$
(condition-case err (if commands (let* ((c (car commands)) (cdir (plist-get c :default-directory)) (cname (plist-get c :com$
el-get-start-process-list("magit" ((:command-name "git submodule update" :buffer-name "git clone magit" :default-direct$
(if next (el-get-start-process-list package next final-func) (when (functionp final-func) (funcall final-func package)))
(let* ((startf (if shell (function call-process-shell-command) (function call-process))) (infile (when stdin (make-temp-fil$
(if sync (let* ((startf (if shell (function call-process-shell-command) (function call-process))) (infile (when stdin (make$ (let* ((c (car commands)) (cdir (plist-get c :default-directory)) (cname (plist-get c :command-name)) (cbuf (plist-get c :b$
(if commands (let* ((c (car commands)) (cdir (plist-get c :default-directory)) (cname (plist-get c :command-name)) (cbuf (p$
(condition-case err (if commands (let* ((c (car commands)) (cdir (plist-get c :default-directory)) (cname (plist-get c :com$
el-get-start-process-list("magit" ((:command-name "git submodule update" :buffer-name "git clone magit" :default-direct$
(if next (el-get-start-process-list package next final-func) (when (functionp final-func) (funcall final-func package)))
(let* ((startf (if shell (function call-process-shell-command) (function call-process))) (infile (when stdin (make-temp-fil$
(if sync (let* ((startf (if shell (function call-process-shell-command) (function call-process))) (infile (when stdin (make$
(let* ((c (car commands)) (cdir (plist-get c :default-directory)) (cname (plist-get c :command-name)) (cbuf (plist-get c :b$
(if commands (let* ((c (car commands)) (cdir (plist-get c :default-directory)) (cname (plist-get c :command-name)) (cbuf (p$
(condition-case err (if commands (let* ((c (car commands)) (cdir (plist-get c :default-directory)) (cname (plist-get c :com$
el-get-start-process-list("magit" ((:command-name "git clone magit" :buffer-name "git clone magit" :default-directory "$
(let* ((git-executable (el-get-executable-find "git")) (pdir (el-get-package-directory package)) (name (format "git clone $
el-get-git-clone("magit" "http://github.com/magit/magit.git" el-get-post-install)
funcall(el-get-git-clone "magit" "http://github.com/magit/magit.git" el-get-post-install)
(let
((status (el-get-read-package-status package)) (source (el-get-package-def package)) (method (el-get-package-method s$
el-get-do-install("magit")
(if (string= (el-get-package-status p) "installed") (el-get-init p) (el-get-do-install p))
(let ((p (symbol-name package))) (if (string= (el-get-package-status p) "installed") (el-get-init p) (el-get-do-install p))$
el-get-demand1(magit)
(if non-installed-dependencies nil (el-get-demand1 psym))
(unless non-installed-dependencies (el-get-demand1 psym))
(let ((non-installed-dependencies (remove-if (quote el-get-package-initialized-p) (el-get-dependencies psym)))) (dolist (de$
(if (memq (el-get-package-state psym) (quote (init installing))) nil (el-get-set-package-state psym (quote installing)) (le$
(unless (memq (el-get-package-state psym) (quote (init installing))) (el-get-set-package-state psym (quote installing)) (le$
(let* ((psym (el-get-as-symbol package)) (pname (symbol-name psym))) (unless (memq (el-get-package-state psym) (quote (init$
(condition-case err (let* ((psym (el-get-as-symbol package)) (pname (symbol-name psym))) (unless (memq (el-get-package-stat$
(if (el-get-package-is-installed package) (message "el-get: `%s' package is already installed" package) (condition-case err$
el-get-install("magit")
(while (consp --cl-var--) (setq p (car --cl-var--)) (el-get-install p) (setq done (nconc done (list p))) (setq --cl-var-- ($
(let* ((--cl-var-- to-install) (p nil) (done nil)) (while (consp --cl-var--) (setq p (car --cl-var--)) (el-get-install p) ($
(catch (quote --cl-block-nil--) (let* ((--cl-var-- to-install) (p nil) (done nil)) (while (consp --cl-var--) (setq p (car -$
(cl-block-wrapper (catch (quote --cl-block-nil--) (let* ((--cl-var-- to-install) (p nil) (done nil)) (while (consp --cl-var$
(block nil (let* ((--cl-var-- to-install) (p nil) (done nil)) (while (consp --cl-var--) (setq p (car --cl-var--)) (el-get-i$
(loop for p in to-install do (el-get-install p) collect p into done)
(let* ((required (el-get-list-package-names-with-status "required")) (installed (el-get-list-package-names-with-status "ins$
el-get-init-and-install(("magit" "yasnippet"))
(let ((packages (loop for p in packages when (listp p) append p else collect p))) (el-get-init-and-install packages))
(prog1 (let ((packages (loop for p in packages when (listp p) append p else collect p))) (el-get-init-and-install packages)$
(let ((previously-installing (el-get-currently-installing-packages)) (progress (and (eq sync (quote wait)) (make-progress-r$
el-get(sync ("magit" "yasnippet"))
eval-buffer(#<buffer load<2>> nil "/home/twirm/.emacs.d/modules/prelude-el-get.el" nil t) ; Reading at buffer position $
load-with-code-conversion("/home/twirm/.emacs.d/modules/prelude-el-get.el" "/home/twirm/.emacs.d/modules/prelude-el-get.el"$
require(prelude-el-get)
eval-buffer(#<buffer load> nil "/home/twirm/.emacs.d/init.el" nil t) ; Reading at buffer position 2417
load-with-code-conversion("/home/twirm/.emacs.d/init.el" "/home/twirm/.emacs.d/init.el" t t)
load("/home/twirm/.emacs.d/init" t t)
#[0 "^H\205\262^@ \306=\203^Q^@\307^H\310Q\202;^@ \311=\204^^^@\307^H\312Q\202;^@\313\307\314\315#\203*^@\316\202;^@\31$
command-line()
normal-top-level()

yasnippet can't load

I'm afraid there lacks a line telling the directory of snippets in file prelude-editor.el like:
;; load yasnippet
(require 'yasnippet) ;; not yasnippet-bundle
(yas/initialize)
(yas/load-directory "~/.emacs.d/elpa/yasnippet-0.6.1/snippets/")

No network

Errors when starting without network connection:

  1. error: raw.github.com/443 Name or service not known

or

  1. Symbol's value as variable is void:

In 2), I have used the "export http_proxy=..." and "export https_proxy=..." shell variables.

dbus-error "No connection to bus"

When starting emacs with emacs --init-debug I get the following error message.
OS: Archlinux
DE: xmonad
The DBus daemon is in fact running.

Debugger entered--Lisp error: (dbus-error "No connection to bus" :session)
  dbus-register-signal(:session "org.freedesktop.Notifications" "/org/freedesktop/Notifications" "org.freedesktop.Notifications" "ActionInvoked" notifications-on-action-signal)
  byte-code("\304\305!\203�^P^@\305\306^H        \n^K\307&^F\210\304\207" [notifications-service notifications-path notifications-interface notifications-action-signal fboundp dbus-register-signal :session notifications-on-action-signal] 7)
  require(notifications nil t)
  (if (fboundp (quote dbus-register-signal)) (require (quote notifications) nil t) (unless (fboundp (quote notify)) (when (featurep (quote notify)) (require (quote notify)))))
  el-get-notify("magit removed" "This package has been removed successfully by el-get.")
  el-get-post-remove-notification("magit")
  run-hook-with-args(el-get-post-remove-notification "magit")
  (let* ((hooks (el-get-method (el-get-package-method package) :remove-hook))) (run-hook-with-args hooks package) (run-hook-with-args (quote el-get-post-remove-hooks) package))
  el-get-post-remove("magit")
  funcall(el-get-post-remove "magit")
  (if (eq method (quote elpa)) (when (or (file-symlink-p (directory-file-name pdir)) (file-exists-p pdir)) (delete-file (directory-file-name pdir))) (if (file-exists-p pdir) (dired-delete-file pdir (quote always)) (message "el-get could not find package directory \"%s\"" pdir)) (funcall post-remove-fun package))
  (let* ((source (el-get-package-def package)) (method (el-get-package-method source)) (pdir (el-get-package-directory package))) (if (eq method (quote elpa)) (when (or (file-symlink-p (directory-file-name pdir)) (file-exists-p pdir)) (delete-file (directory-file-name pdir))) (if (file-exists-p pdir) (dired-delete-file pdir (quote always)) (message "el-get could not find package directory \"%s\"" pdir)) (funcall post-remove-fun package)))
  el-get-rmdir("magit" "http://github.com/magit/magit.git" el-get-post-remove)
  funcall(el-get-rmdir "magit" "http://github.com/magit/magit.git" el-get-post-remove)
  (let* ((source (el-get-package-def package)) (method (el-get-package-method source)) (remove (el-get-method method :remove)) (url (plist-get source :url))) (el-get-remove-autoloads package) (funcall remove package url (quote el-get-post-remove)) (el-get-save-package-status package "removed") (message "el-get remove %s" package))
  el-get-remove("magit")
  (progn (message "Package %s failed to install, removing it first." package) (el-get-remove package))
  (if (string= "required" status) (progn (message "Package %s failed to install, removing it first." package) (el-get-remove package)))
  (when (string= "required" status) (message "Package %s failed to install, removing it first." package) (el-get-remove package))
  (let* ((status (el-get-read-package-status package)) (source (el-get-package-def package)) (method (el-get-package-method source)) (install (el-get-method method :install)) (url (plist-get source :url))) (when (string= "installed" status) (error "Package %s is already installed." package)) (when (string= "required" status) (message "Package %s failed to install, removing it first." package) (el-get-remove package)) (el-get-check-init) (el-get-save-package-status package "required") (funcall install package url (quote el-get-post-install)) (message "el-get install %s" package))
  el-get-do-install("magit")
  (if (string= (el-get-package-status p) "installed") (el-get-init p) (el-get-do-install p))
  (let ((p (symbol-name package))) (if (string= (el-get-package-status p) "installed") (el-get-init p) (el-get-do-install p)))
  el-get-demand1(magit)
  (if non-installed-dependencies nil (el-get-demand1 psym))
  (unless non-installed-dependencies (el-get-demand1 psym))
  (let ((non-installed-dependencies (remove-if (quote el-get-package-initialized-p) (el-get-dependencies psym)))) (dolist (dep non-installed-dependencies) (el-get-add-generic-event-task (el-get-event-id dep (quote init)) (\` (lambda (data) (el-get-mark-initialized (quote (\, dep))) (el-get-dependency-installed (quote (\, psym)) (quote (\, dep)))))) (el-get-add-generic-event-task (el-get-event-id dep (quote error)) (\` (lambda (data) (el-get-set-package-state (quote (\, dep)) (list (quote error) data)) (el-get-dependency-error (quote (\, psym)) (quote (\, dep)) data)))) (el-get-install dep)) (unless non-installed-dependencies (el-get-demand1 psym)))
  (if (memq (el-get-package-state psym) (quote (init installing))) nil (el-get-set-package-state psym (quote installing)) (let ((non-installed-dependencies (remove-if (quote el-get-package-initialized-p) (el-get-dependencies psym)))) (dolist (dep non-installed-dependencies) (el-get-add-generic-event-task (el-get-event-id dep (quote init)) (\` (lambda (data) (el-get-mark-initialized (quote ...)) (el-get-dependency-installed (quote ...) (quote ...))))) (el-get-add-generic-event-task (el-get-event-id dep (quote error)) (\` (lambda (data) (el-get-set-package-state (quote ...) (list ... data)) (el-get-dependency-error (quote ...) (quote ...) data)))) (el-get-install dep)) (unless non-installed-dependencies (el-get-demand1 psym))))
  (unless (memq (el-get-package-state psym) (quote (init installing))) (el-get-set-package-state psym (quote installing)) (let ((non-installed-dependencies (remove-if (quote el-get-package-initialized-p) (el-get-dependencies psym)))) (dolist (dep non-installed-dependencies) (el-get-add-generic-event-task (el-get-event-id dep (quote init)) (\` (lambda (data) (el-get-mark-initialized (quote ...)) (el-get-dependency-installed (quote ...) (quote ...))))) (el-get-add-generic-event-task (el-get-event-id dep (quote error)) (\` (lambda (data) (el-get-set-package-state (quote ...) (list ... data)) (el-get-dependency-error (quote ...) (quote ...) data)))) (el-get-install dep)) (unless non-installed-dependencies (el-get-demand1 psym))))
  (let* ((psym (el-get-as-symbol package)) (pname (symbol-name psym))) (unless (memq (el-get-package-state psym) (quote (init installing))) (el-get-set-package-state psym (quote installing)) (let ((non-installed-dependencies (remove-if (quote el-get-package-initialized-p) (el-get-dependencies psym)))) (dolist (dep non-installed-dependencies) (el-get-add-generic-event-task (el-get-event-id dep (quote init)) (\` (lambda (data) (el-get-mark-initialized ...) (el-get-dependency-installed ... ...)))) (el-get-add-generic-event-task (el-get-event-id dep (quote error)) (\` (lambda (data) (el-get-set-package-state ... ...) (el-get-dependency-error ... ... data)))) (el-get-install dep)) (unless non-installed-dependencies (el-get-demand1 psym)))))
  (condition-case err (let* ((psym (el-get-as-symbol package)) (pname (symbol-name psym))) (unless (memq (el-get-package-state psym) (quote (init installing))) (el-get-set-package-state psym (quote installing)) (let ((non-installed-dependencies (remove-if (quote el-get-package-initialized-p) (el-get-dependencies psym)))) (dolist (dep non-installed-dependencies) (el-get-add-generic-event-task (el-get-event-id dep (quote init)) (\` (lambda ... ... ...))) (el-get-add-generic-event-task (el-get-event-id dep (quote error)) (\` (lambda ... ... ...))) (el-get-install dep)) (unless non-installed-dependencies (el-get-demand1 psym))))) ((debug error) (el-get-installation-failed package err)))
  (if (el-get-package-is-installed package) (message "el-get: `%s' package is already installed" package) (condition-case err (let* ((psym (el-get-as-symbol package)) (pname (symbol-name psym))) (unless (memq (el-get-package-state psym) (quote (init installing))) (el-get-set-package-state psym (quote installing)) (let ((non-installed-dependencies (remove-if ... ...))) (dolist (dep non-installed-dependencies) (el-get-add-generic-event-task (el-get-event-id dep ...) (\` ...)) (el-get-add-generic-event-task (el-get-event-id dep ...) (\` ...)) (el-get-install dep)) (unless non-installed-dependencies (el-get-demand1 psym))))) ((debug error) (el-get-installation-failed package err))))
  el-get-install("magit")
  (while (consp --cl-var--) (setq p (car --cl-var--)) (el-get-install p) (setq done (nconc done (list p))) (setq --cl-var-- (cdr --cl-var--)))
  (let* ((--cl-var-- to-install) (p nil) (done nil)) (while (consp --cl-var--) (setq p (car --cl-var--)) (el-get-install p) (setq done (nconc done (list p))) (setq --cl-var-- (cdr --cl-var--))) nil)
  (catch (quote --cl-block-nil--) (let* ((--cl-var-- to-install) (p nil) (done nil)) (while (consp --cl-var--) (setq p (car --cl-var--)) (el-get-install p) (setq done (nconc done (list p))) (setq --cl-var-- (cdr --cl-var--))) nil))
  (cl-block-wrapper (catch (quote --cl-block-nil--) (let* ((--cl-var-- to-install) (p nil) (done nil)) (while (consp --cl-var--) (setq p (car --cl-var--)) (el-get-install p) (setq done (nconc done (list p))) (setq --cl-var-- (cdr --cl-var--))) nil)))
  (block nil (let* ((--cl-var-- to-install) (p nil) (done nil)) (while (consp --cl-var--) (setq p (car --cl-var--)) (el-get-install p) (setq done (nconc done (list p))) (setq --cl-var-- (cdr --cl-var--))) nil))
  (loop for p in to-install do (el-get-install p) collect p into done)
  (let* ((required (el-get-list-package-names-with-status "required")) (installed (el-get-list-package-names-with-status "installed")) (to-init (if packages (loop for p in packages when (member (el-get-as-string p) installed) collect (el-get-as-string p)) installed)) (init-deps (loop for p in to-init append (mapcar (quote el-get-as-string) (el-get-dependencies (el-get-as-symbol p))))) (to-install (if packages (loop for p in packages unless (member (el-get-as-string p) to-init) collect (el-get-as-string p)) required)) done) (el-get-verbose-message "el-get-init-and-install: install %S" to-install) (el-get-verbose-message "el-get-init-and-install: init %S" to-init) (el-get-verbose-message "el-get-init-and-install: deps %S" init-deps) (loop for p in to-install do (el-get-install p) collect p into done) (loop for p in init-deps do (el-get-init p) collect p into done) (loop for p in to-init unless (member p done) do (el-get-init p) collect p into done) done)
  el-get-init-and-install(("magit" "yasnippet"))
  (let ((packages (loop for p in packages when (listp p) append p else collect p))) (el-get-init-and-install packages))
  (prog1 (let ((packages (loop for p in packages when (listp p) append p else collect p))) (el-get-init-and-install packages)) (when progress (let* ((newly-installing (set-difference (el-get-currently-installing-packages) previously-installing)) (still-installing newly-installing)) (while (> (length still-installing) 0) (sleep-for 0.2) (setq still-installing (delete-if-not (quote el-get-currently-installing-p) still-installing)) (progress-reporter-update progress (/ (* 100.0 (- newly-installing still-installing)) newly-installing))) (progress-reporter-done progress))) (unless el-get-outdated-autoloads (el-get-eval-autoloads)))
  (let ((previously-installing (el-get-currently-installing-packages)) (progress (and (eq sync (quote wait)) (make-progress-reporter "Waiting for `el-get' to complete... " 0 100 0))) (el-get-default-process-sync sync)) (prog1 (let ((packages (loop for p in packages when (listp p) append p else collect p))) (el-get-init-and-install packages)) (when progress (let* ((newly-installing (set-difference (el-get-currently-installing-packages) previously-installing)) (still-installing newly-installing)) (while (> (length still-installing) 0) (sleep-for 0.2) (setq still-installing (delete-if-not (quote el-get-currently-installing-p) still-installing)) (progress-reporter-update progress (/ (* 100.0 ...) newly-installing))) (progress-reporter-done progress))) (unless el-get-outdated-autoloads (el-get-eval-autoloads))))
  el-get(sync ("magit" "yasnippet"))
  eval-buffer(#<buffer  *load*<2>> nil "/home/rekado/.emacs.d/modules/prelude-el-get.el" nil t)  ; Reading at buffer position 2572
  load-with-code-conversion("/home/rekado/.emacs.d/modules/prelude-el-get.el" "/home/rekado/.emacs.d/modules/prelude-el-get.el" nil t)
  require(prelude-el-get)
  eval-buffer(#<buffer  *load*> nil "/home/rekado/.emacs.d/init.el" nil t)  ; Reading at buffer position 2485
  load-with-code-conversion("/home/rekado/.emacs.d/init.el" "/home/rekado/.emacs.d/init.el" t t)
  load("/home/rekado/.emacs.d/init" t t)

Flyspell lags most buffers

Flyspell introduces significant lag with a stock emacs-prelude setup. Is there an option to disable it?

Prelude steps on default org-mode keys

I realize that prelude intentionally is "disabling" the up/down/left/right keys.... However, that gets severely in the way of org-mode, which by default uses:

M-LEFT org-do-promote
M-RIGHT org-do-demote
M-S-LEFT org-promote-subtree
M-S-RIGHT org-demote-subtree
M-S-UP org-move-subtree-up
M-S-DOWN org-move-subtree-down

As a result, now all these functions are re-mapped to:

ESC org-shiftmetadown
ESC org-shiftmetaleft
ESC org-insert-todo-heading
ESC org-shiftmetaright
ESC org-shiftmetaup
ESC org-metadown
ESC org-metaleft
ESC org-meta-return
ESC org-metaright
ESC pcomplete
ESC org-metaup

This is a yucky yucky yucky configuration that is not very usable.

Add python modules?

Hi Mr Batsov

Could you add and enable the various python modules by default, like you do for Ruby and Clojure.

Thank you.

Can not finish startup

I had several problems with this project. First, I was constantly getting a timeout when trying to fetch some packages from marmalade-repo. Then I added (setq url-http-attempt-keepalives nil) to prelude-packages.el and that particular error was gone. The next problem was that it couldn't connect to https://raw.github.com (or something like that), so I installed openssl (_you should add openssl as a requirement for windows users_) and fixed that one, too.
Now I have the following problem:

  eval(read:errno=0 nil)
  eval-last-sexp-1(t)
  eval-last-sexp(t)
  eval-print-last-sexp()
  (save-current-buffer (set-buffer (url-retrieve-synchronously "https://raw.github.com/dimitri/el-get/master/el-get-install.el")) (end-of-buffer) (eval-print-last-sexp))
  (with-current-buffer (url-retrieve-synchronously "https://raw.github.com/dimitri/el-get/master/el-get-install.el") (end-of-buffer) (eval-print-last-sexp))
  (if (require (quote el-get) nil t) nil (with-current-buffer (url-retrieve-synchronously "https://raw.github.com/dimitri/el-get/master/el-get-install.el") (end-of-buffer) (eval-print-last-sexp)))
  (unless (require (quote el-get) nil t) (with-current-buffer (url-retrieve-synchronously "https://raw.github.com/dimitri/el-get/master/el-get-install.el") (end-of-buffer) (eval-print-last-sexp)))
  eval-buffer(#<buffer  *load*<2>> nil "c:/Users/Dancsi/.emacs.d/modules/prelude-el-get.el" nil t)  ; Reading at buffer position 264
  load-with-code-conversion("c:/Users/Dancsi/.emacs.d/modules/prelude-el-get.el" "c:/Users/Dancsi/.emacs.d/modules/prelude-el-get.el" nil t)
  require(prelude-el-get)
  eval-buffer(#<buffer  *load*> nil "c:/Users/Dancsi/.emacs.d/init.el" nil t)  ; Reading at buffer position 2485
  load-with-code-conversion("c:/Users/Dancsi/.emacs.d/init.el" "c:/Users/Dancsi/.emacs.d/init.el" t t)
  load("c:/Users/Dancsi/.emacs.d/init" t t)
  #[0 "�\205\262

Nevermind, I fixed that by manually copying and executing el-get-install.el, but now it stucks at installing magit, at the line

sed -e "s/@GIT_DEV_VERSION@/1.0.0-330-ge808970/" < magit.el > magit.tmp.el #NO_DIST
sed: could not read #NO_DIST: No such file or directory
make.exe: *** [magit.elc] Error 2

Get Rid of Personal Directory

The personal directory is an unnecessary complication. If you load or enable something in modules, then the user has to attempt to unload or disable it in personal. This also means that personal has to be kept in sync with modules.

emacs-prelude is under version control, and it should be used as such. Let Git's assume merge algorithms handle changes.

startup barfs if expand-region isn't installed

With emacs-20120122-r106910-bin-i386:

Debugger entered--Lisp error: (file-error "Cannot open load file" "expand-region")
require(expand-region)
eval-buffer(#<buffer load<2>> nil "c:/d/.emacs.d/modules/prelude-editor.el" nil t) ; Reading at buffer position 5389
load-with-code-conversion("c:/d/.emacs.d/modules/prelude-editor.el" "c:/d/.emacs.d/modules/prelude-editor.el" nil t)
require(prelude-editor)
eval-buffer(#<buffer load> nil "c:/d/.emacs.d/init.el" nil t) ; Reading at buffer position 2679
load-with-code-conversion("c:/d/.emacs.d/init.el" "c:/d/gjw/.emacs.d/init.el" t t)
load("c:/d/.emacs.d/init" t t)
#[0 "�\205\262

Installing package expand-region fixes the issue.

Problems closing emacs

I get this error when trying to close emacs by clicking on the cross on the window frame. The OS is Xubuntu 11.10 with all updates.
Screenshot
(could not copy the error because it contains special chars...)

indent for org mode

The indentation for org mode is off.

* task
   #it starts the next line here (three characters in), where it should be flush with the heading.

I wish I could give more/useful information, but I've just started using emacs recently and don't know all that much.

Thanks for the great configuration.

clojure-mode can't find file

It couldn't find clojure-mode so I had to install the clojure-mode from the marmelade repo manually to get everything to work.

hook for auto-complete

First of all, thanks for emacs-prelude! I'm about 10 days into my transition to emacs from MacVim, and prelude has made that process smoother and more enjoyable. Looking at prelude's source has been helpful too -- the modules have provided me with good references for figuring out how to customize my environment further.

I've got a bit of a puzzle and was wondering if you could help me figure out if I'm bumping up against an incompatibility with prelude or something else.

I'm trying to add a hook to coffee-mode so that auto-complete (which I've cloned into my ~/.emacs.d/personal directory) is always activated when I'm editing CoffeeScript:
https://github.com/michaelsbradleyjr/emacs.personal/blob/master/coffee-auto-complete.el

It "half works", i.e. when I open a .coffee file, I see AC in the mode line (which I don't see if my coffee-auto-complete.el is disabled). However, it doesn't seem to take effect unless I manually disable then re-enable auto-complete-mode via M-x.

Of course that defeats the purpose of having a hook to load auto-complete automatically. I've looked in the Messages buffer, and haven't seen any errors or warnings. So far, I haven't been able to figure this out w/ the help of Google, IRC, etc., so I was wondering if you might have any insights.

Thanks.

Error when starting for the first time

I got an error like this when I first started Emacs with your config:

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

error: Trying to parse HTTP response code in odd buffer:  *http marmalade-repo.org:80*

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.

identation of c/c++ mode is weird

When I write a function prototype like:
void foo_bar(int x, int y) {CURSOR}, just right after I insert {, electric-pair helps me insert the }. then I just type Enter, while the cursor just start from first column. If it's in a c-mode, after I type some expressions and a ;, the indentation seems alright. But if it's in a c++-mode, it seems not. This case happens when I write a class, namspace, etc...sometimes it won't indent, sometimes it indent more(esp. when write a destructor...)

syntax highlighting issue with Ruby

Not sure if this is a problem with this package or zenburn or the syntax highlighting module for Ruby. (Or any or all of the three.)

Every now and then when I'm typing a line of Ruby code it will dynamically syntax highlight as I type and all appears fine. And then the whole line will go... fuchsia. And I'm not sure why. Here are a couple examples:

https://img.skitch.com/20111129-8gwx76r5grst4eyewm44nbtbtb.jpg

https://img.skitch.com/20111129-b41w93us1y19f2fqx8ip445hji.jpg

Is this correct behavior? Is fuchsia really supposed to be my friend and not my foe?

Change settings in flyspell so it doesn't start

You suggest to avoid modifying the Prelude config itself. Changes should be done using emacs lisp files in the personal directory.

I would like to change the setting that automatically loads flyspell in prelude-editor.el

(autoload 'flyspell-mode "flyspell" "On-the-fly spelling checker." t)

but I don't know how to do it (sorry but I've been using Emacs only for a month).

If you're wondering why do I want to stop flyspell, it's because in my windows machine it takes about 30 long seconds to load.

Thank you very much for your hard work!!!

Package installation failing

I am running Ubuntu Natty. I installed emacs24 from the luanchpad PPA (https://launchpad.net/~cassou/+archive/emacs).

Starting emacs24 with:

$ emacs -q -l ~/.emacs.d/emacs-prelude/init.el

This fails with the following messages.

Emacs Prelude is powering up. Be patient, Master.
Emacs Prelude is now refreshing its package database...
Contacting host: elpa.gnu.org:80
Failed to download `gnu' archive.
Contacting host: marmalade-repo.org:80
Failed to download `marmalade' archive.
 done.
package-install: Package `auctex' is not available for installation

I am able to fetch http://elpa.gnu.org/packages/archive-contents manually.

When I comment the line (require 'prelude-packages) in init.el, I got a few notifications from el-get and a blank window. Restarting emacs after that I get the message:

Emacs Prelude is powering up. Be patient, Master.
load-theme: Unable to find theme file for `zenburn'

Am I missing something?

Why doesn't init.el grok prelude-dir from the environment?

You've convinced me to try emacs 24, so I am trying to fit it side by side with emacs 23 on windows. As part of that, I've moved the emacs-prelude dir to a different location, because I don't really use emacs.d style setup. And yet, because it's windows, I don't trust symbolic links. (Maybe I should.)

I notice in init.el that you hardcode prelude-dir as
(defvar prelude-dir "~/.emacs.d/")

I am curious if
(defvar prelude-dir (file-name-directory load-file-name))

or some variant of that might not be a better value.

the syntax highlight is weird

It seems like in comments, function prototype, etc., in C++ files, python files,etc, the syntax highlight is weird. There are always lines that's purple. I don't know why...
I can send your some screenshot I've made. But I can attach it here.

New installation - error parsing HTTP response code

I decided to make certain I had a completely clean installation of prelude, so I pulled a fresh copy, and when I install I ge the follwoing error / backtrace:

Debugger entered--Lisp error: (error "Trying to parse HTTP response code in odd buffer: http marmalade-repo.org:80")
signal(error ("Trying to parse HTTP response code in odd buffer: http marmalade-repo.org:80"))
error("Trying to parse HTTP response code in odd buffer: %s" " http marmalade-repo.org:80")
url-http-parse-response()
package-handle-response()
package-download-single(clojure-mode "1.11.4" "Major mode for Clojure code" nil)
package-download-transaction((clojure-mode))
package-install(clojure-mode)
(progn (package-install p))
(if (not (package-installed-p p)) (progn (package-install p)))
(when (not (package-installed-p p)) (package-install p))
(while --dolist-tail-- (setq p (car --dolist-tail--)) (when (not (package-installed-p p)) (package-install p)) (setq --dolist-tail-- (cdr --dolist-tail--)))
(let ((--dolist-tail-- prelude-packages) p) (while --dolist-tail-- (setq p (car --dolist-tail--)) (when (not (package-installed-p p)) (package-install p)) (setq --dolist-tail-- (cdr --dolist-tail--))))
(dolist (p prelude-packages) (when (not (package-installed-p p)) (package-install p)))
eval-buffer(#<buffer load<2>> nil "/home/gdb/.emacs.d/modules/prelude-packages.el" nil t) ; Reading at buffer position 1810
load-with-code-conversion("/home/gdb/.emacs.d/modules/prelude-packages.el" "/home/gdb/.emacs.d/modules/prelude-packages.el" nil t)
require(prelude-packages)
eval-buffer(#<buffer load> nil "/home/gdb/.emacs.d/init.el" nil t) ; Reading at buffer position 2413
load-with-code-conversion("/home/gdb/.emacs.d/init.el" "/home/gdb/.emacs.d/init.el" t t)
load("/home/gdb/.emacs.d/init" t t)
#[0 "�\205\262

I suspect this has to do with having a proxy on my system, however I don't know where to adjust the port settings to use the proxy port instead...

installation error on windows machines

installation of yasnippet via el-get fails when cloning ruby-tmbundle submodule. ruby-tmbundle seems to have invalid file names for windows operating system.

Problem with python indentation under prelude

Really enjoying your project, but I have a problem with Prelude with python indentation. The problem appears to be prelude linked as the same emacs, started with -Q, does not show the issue.

A picture is worth a thousand words so just to be clear I've done a small screencast showing the behaviour with the two configurations.

Any suggestions that you or anybody else can give would be much appreciated.

Video is at http://www.screencast.com/users/icottee/folders/Jing/media/927a78c5-7eec-4ef7-b03d-41eea8cee669

Just noticed a missed a comma in the argument list in the first example but the problem happens regardless - been coding with the new config over the last 24 hours and occurs consistently.

Once again, many thanks for any help you can give

Ian

fresh prelude won't start correctly

This is what I'm getting when I try and start a brand new clone of prelude

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

Symbol's value as variable is void: prelude-packages-installed-p

the following gist is what I get when I start emacs with --debug-init
https://gist.github.com/1683920

Whitespace-mode color issues with solarized-dark color theme

Thanks for the great your work emacs-prelude. It's fantastic.
I just applied the solarized-dark color theme https://github.com/sellout/emacs-color-theme-solarized on top of emacs-prelude.

Because of color definition of whitespace in solarzied-dark color-theme, it looks so urgly , so that I turn the whitespace-mode off.
Personally I think that it's not easy to support all various color-themes in the world, but solarized -theme is quite popular and need to be compatible with this.

I can also tune the whitespace-mode color personally, but it will be better to be supported by emacs-prelude for anybody usage.
Can you check this out ?

-- tkHWANG

Disable flyspell-mode and whitespace-mode without editing emacs-prelude files

I'm trying to disable flyspell-mode and whitespace-mode without changing the emacs-prelude files. Maybe I am doing something wrong. I have tried setting the following options in my personal/settings.el:

(flyspell-mode -1)
(flyspell-mode 0)
(flyspell-mode nil)

and

(global-whitespace-mode -1)
(global-whitespace-mode 0)
(global-whitespace-mode nil)

None of these have any effect. I'd rather not touch the files in modules/ so as to be able to update the emacs-prelude package without messing around with any branches. I thought that as the last things to be loaded in the init.el file were the contents of the personal/ folder, that my settings would override the others, but it seems that is not he case.

Thanks for the help.

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.