- I’m using Vim key binding. Please see section Tips if you prefer the Emacs key binding.
- People in Mainland China may need goagent to download packages from ELPA. Run command “http_proxy=http://127.0.0.1:8087 emacs -nw” after starting goagent server (or any proxy server).
- C++/C developers, you need tell Emacs location of header files. You MUST see section `clang` now!
- I suggest Windows users using Cygwin version Emacs to avoid overhead of setting up third party tools. But this configuration is still usable even in native windows Emacs if you set up environment variable HOME.
- I whitelist packages from melpa because it is too cutting edge. Modify variable “melpa-include-packages” in init-elpa.el if prefer some package from it.
- If you not willing to fetch packages from remote repositories, see the section Install packages without elpa/marmalade/melpa for easier way.
- In your bug report, please include details of environment (OS, Emacs version …) and the full output of `emacs –debug-init`.
- Remove bundled emacs 22 at first if you are using OS X!
My first priority is stable. So I use fewer cutting-edge packages from melpa. If you want to get all the latest package from melpa, search the line containing “(setq package-filter-function nil)” in “init-elpa.el” and un-comment it.
Most modern popular programming languages are supported (C/C++/Java/Ruby/Perl/Python/C#/Lua/Javascript …).
- All key binding and plugins are usable in terminal
- Real time HTML syntax checker enabled (you need install tidy or tidy-html5). I recommend tidy-html5.
- git or subversion is NOT needed. You DONOT need run ‘git submodule update’.
- optimized for cross-platform C++ development with CMake and wxWidgets
- emacs-w3m (console browser)
- eim (Chinese pinyin input method)
- org2blog (post wordpress blog with org-mode)
- make the configuration work on ALL platforms (Linux/Cygwin/Mac).
- The configuration work with Emacs version >=24 but still usable with Emacs version 23 (tested with Emacs 23.4.1).
- evil-mode and its plugins (Vim key binding)
- yasnippet and my customized snippets (insert code snippet by typing less keys)
Download this zip file and extract its content into ~/.emacs.d. Ensure that the ‘init.el’ contained in this repo ends up at ~/.emacs.d/init.el and old ~/.emacs IS REMOVED.
Make sure you are connected to the internet.
you may need run the below command in the terminal at least once to update the content from package repositories:
emacs -nw --batch -l ~/.emacs.d/init.el -f package-refresh-contents
If you cannot download packages from remote repository (for example, you are behind company firewall), don’t panic!
You do have USB stick, right?
Check the section Install packages without elpa/marmalade/melpa for solutions.
init.el is main file which include all the other *.el files.
init-elpa define how and what packages will be installed from elpa/marmalade/melpa by package manager.
The package manager will extract packages into ~/.emacs.d/elpa/.
I also manually download and extract some packages into ~/.emacs.d/site-lisp/. Packages in ~/.emacs.d/site-lisp/ is not visible to Emacs package manager.
My own snippets for Yasnippet is in ~/.emacs.d/snippets.
Other directoris do not matter.
These tools are OPTIONAL. Your Emacs will NOT crash if they are not installed.
- needed by `w3m` (w3m is emacs package name written in elisp)
- install through OS package manager
- please note only emacs with GUI can display image
- required by `flymake-lua`
- install through OS package manager
- needed by `flyspell`
- hunspell is the alternative of `aspell`. So you need only install either aspell or hunspell.
- install through OS package manager
- I force the dictionary to “en_US” in init-spelling.el. You can modify it in init-spelling.el.
- needed by lisp `slime`
- install through OS package manager
- needed by `web-mode` for real time HTML syntax check
- install through OS package manager
- For html5-tidy, you need download its source code and build it manually
- install `node.js` through OS package manager, then `sudo npm install -g csslint`
- needed by `org-mode` to export org to odt
- install through OS package manager
- needed by my clipboard command `copy-to-x-clipboard` and `paste-from-x-clipboard` under Linux
- install through OS package manager
- needed by `cpputils-cmake`, `flymake`, `company-clang`
- install through OS package manager
- If you use `cpputils-cmake` and `cmake`, `cpputils-cmake` will do all the set up for you. You don’t need read next item!
- If you use `company-clang`, add `(setq company-clang-arguments ‘(“-I/example1/dir” “-I/example2/dir”))` into ~/.emacs.d/init.el
- needed by MozRepl
- install using firefox
- it creates tags for code navigation
- needed by many tags related plugins
- install through OS package manager
- See How to use ctags in Emacs effectively for my guide
- needed by `ggtags.el`
- it creates index files for code navigation
- more advanced than ctags, supports references and better performance
- install through OS package manager
- You need pyflakes for real time python syntax checker like `flymake-python`
- Install pip through OS package manager, then `pip install pyflakes`
- On cygwin you need install `setuptool` in order to install `pip`.
- Only one executable `soffice` needed when converting odt file into doc (Microsoft Word 97)
- conversion will happen automatically when exporting org-mode to odt
- The conversion command is in variable `org-export-odt-convert-processes`
- Install through OS package manager
- To beautify javascript code (insert extra space, for example)
- Install pip through OS package manager, then `pip install jsbeautifier`
Here are the exact steps you need follow:
- Go to https://github.com/redguardtoo/myelpa.
- Click “Download ZIP”
- Extract zip somewhere say “~/myelpa”.
- Double check that there is a file name “archive-contents” in the directory “~/myelpa”.
- uncomment below code in ~/.emacs.d/init-elpa.el.
(setq package-archives '(("myelpa" . "~/myelpa/")))
That’s it. You will never need internet connection in the future.
Please note that all your packages are locked to the versions I’m using. So you can’t upgrade package online in the future.
I don’t recommend advanced users locking their package version.
If you are too lazy to download ZIP file, you can uncomment below code in ~/.emacs.d/init-elpa.el,
(setq package-archives '(("myelpa" . "https://raw.github.com/redguardtoo/myelpa/master/")))
Then you are good to go. Obviously you need internet connection to access github.com.
Please file bug report at https://github.com/redguardtoo/emacs.d. Don’t send me email!
By default EVIL (Vim emulation in Emacs) is used. You can comment out line containing “(require ‘init-evil)” in init.el to unload it.
Some package cannot be downloaded automatically because of network problem.
You need manually `M-x list-packages` and install it or just `M-x package-refresh-content` and restart Emacs.
If you use `gnus` for email (Gmail, for example). Check ~/.emacs.d/init-gnus.el which includes my most settings except my private stuff. Here is my Gnus tutorial.
To toggle Chinese input method (eim, for example), press `C-` or run command `M-x toggle-input-method`.
It’s publicized at http://blog.binchen.org/?p=430. It contains my personal stuff like color-theme and time locale.
Emacs23 support will be dropped in one year <2015-04-24 Thu>. Currently Emacs 23 will not support below packages:
- helm
- org-mode and its third party packages
- company-mode