GitHub - xiaohanyu/oh-my-emacs: [Stopped] Provide an awesome, out-of-box, literate dotemacs for both newbies and nerds. (original) (raw)

Oh My Emacs

Announcement

Hey, emacsers,

I’ve been inactive on this project for a long long time, sorry about that since I’m busy on my personal business. And I’m looking for a new maintainer for this project since I’ve switched to spacemacs recently, and I must say that I’m really impressed by the work of spacemacs community.

The reason to switch to spacemacs:

Among all of the above, however, I still prefer oh-my-emacs’s org-mode based literate documentation. It’s an amazing experimentation and a wonderful journey for literate programming, in a modern way. This is the best part of oh-my-emacs.

And I think it’s better for emacs community to put major focus on one great project, so I think it’s time to end this experimentation. And I may contribute some of the tiny great features of oh-my-emacs to spacemacs, when I have time. If anybody still has some interest in oh-my-emacs and want to be the new maintainer, contact me and we can discuss some internal details.

Thanks. Thanks for all PR and contributions for oh-my-emacs. Happy with you in the last two years.

Introduction

https://badges.gitter.im/Join%20Chat.svg

It is said that Emacs is “a great operating system, lacking only a decent editor”[1].

Yes, it is, it really is. In fact, Emacs has basic process control and management, window and frame management(just like windows manager in modern Linux desktop environment), programming APIs(yeah, elisp to emacs is what syscall and glibc to Linux), comprehensive manuals and documentation. The only limitation with Emacs is your imagination.

You can live in Emacs if you like.

But I won’t do that, since I want to watch video with mplayer, surf the Internet with Firefox/Chrome(not with emacs-w3m), listen to music withamarok. I use Emacs to do what it is good at, namely, text editing. To me, coding and writing.

This project was born one day I want to reorganize my messy .emacs.d. I’ve tried all the famous .emacs.d projects(such as prelude, starter-kit, etc) but none of them works the way I want it to.

Then I found emacs24-starter-kit, I was deeply attracted by its literate way to organize and embed elisp code in org-mode files, I wanted to make some contribution to make it a full-blown hacking environment, but I stopped after I dived into the code a little, since I want:

The starter kit projects is just starter’s kit, what I want is a full-blown hacker’s kit. So I start my own project, oh-my-emacs, whose name is inspired by oh-my-zsh.

Features

Quick Start

Simple enough, first, ensure you have a good network(Chinese users should get rid of GFW when possible to avoid many weird problems during first startup); second, ensure that you have installed the necessary tools pointed out by the Prerequisites sections from oh-my-emacs modules. Basically, you need to install the following packages in you operating system, which is the mandatory prerequisites of ome.org:

Please backup your old .emacs and .emacs.d before you join the journey:

git clone https://github.com/xiaohanyu/oh-my-emacs $HOME/.emacs.d

Then just fire up your Emacs and make a coffee, and you should have a full-blown Emacs OS!

Evil

Note that oh-my-emacs enabled evil by default, you can disable it globally byM-x evil-mode, however, I do recommend you enable it and try to adapt, ah, finally the Emacs OS get a good editor, evil.

Helm

You may miss the old M-x when you first start with oh-my-emacs, me too, before I fall in love with helm. I highly recommend you to adapt with the helm way. Believe me, helm will bring you lots of surprise.

There’re two key points for helm beginners:

What’s in oh-my-emacs

Now you know why Emacs is “a great operating system, lacking only a decent editor”.

Module Package Description
ome-advanced evil Evil is an extensible vi layer for Emacs.
evil-leader Add shortcuts to Evil.
evil-surround Emulate Tim Pope’s surround.vim in evil.
expand-region Expand region increases the selected region by semantic units.
ace-jump-mode A quick cursor location minor mode for emacs
ome-auto-mode puppet-mode A simple mode for editing puppet manifests
wikipedia-mode Mode for editing Wikipedia articles off-line
yaml-mode Simple major mode to edit YAML file for emacs
ome-basic flycheck On-the-fly syntax checking extension
ome-cc xcscope Cscope interface for (X)Emacs
auto-complete-clang Auto-complete sources for Clang. Combine the power of AC, Clang and Yasnippet.
ome-clojure clojure-mode Emacs support for the Clojure language.
cider CIDER is a Clojure IDE and REPL.
ac-nrepl Nrepl completion source for Emacs auto-complete package
ome-common-lisp slime Superior Lisp Interaction Mode for Emacs
ac-slime Emacs auto-complete plugin for Slime symbols
ome-completion auto-complete The most intelligent auto-completion extension.
helm Emacs incremental and narrowing framework
popup Visual Popup Interface Library for Emacs
yasnippet YASnippet is a template system for Emacs.
ome-emacs-lisp elisp-slime-nav Slime-style navigation for Emacs Lisp
ome-experimental lacarte Execute menu items as commands, with completion.
sr-speedbar Same frame speedbar
smooth-scrolling Make emacs scroll smoothly.
hungry-delete Enables hungry deletion in all modes.
doxymacs Doxymacs is Doxygen + {X}Emacs.
ome-gui solarized-emacs Emacs highlighting using Ethan Schoonover’s Solarized color scheme
powerline Powerline for Emacs
yascroll Yet Another Scroll Bar Mode
ome-java eclim This project brings some of the great eclipse features to emacs developers.
ome-miscs rainbow-delimiters Color nested parentheses, brackets, and braces according to their depth.
po-mode Major mode for GNU gettext PO files
magit It’s Magit! An Emacs mode for Git.
projectile Project navigation and management library for Emacs
smartparens Autoinsert pairs of defined brackets and wrap regions
emacs-w3m A simple Emacs interface to w3m
quickrun Run commands quickly
diminish An Emacs package that diminishes the amount of space taken on the mode line by the names of minor modes.
ome-ocaml caml-mode O’Caml code editing commands for Emacs
tuareg-mode A GOOD Emacs mode to edit Objective Caml code.
ome-org org-mode Org-mode 8.x branch.
htmlize Convert buffer text and decorations to HTML.
ome-python elpy Emacs Python Development Environment
ome-ruby inf-ruby Inferior Ruby Mode - ruby process in a buffer.
ome-scheme geiser Make Scheme hacking inside Emacs (even more) fun.
ac-geiser Emacs auto-complete backend for geiser
ome-tex auctex AUCTeX is an extensible package for writing and formatting TeX files Emacs.
cdlatex-mode a minor mode which re-implements many features also found in the AUCTeX LaTeX mode.
ome-writing markdown-mode Major mode to edit Markdown files in Emacs

Here‘re some screenshots of oh-my-emacs:

screenshots/startup-screen.jpg

screenshots/org-babel-emacs-lisp.jpg

screenshots/helm-grep.jpg

screenshots/auto-complete-cpp-qt.jpg

screenshots/auto-complete-python.jpg

screenshots/auctex-outline-minor-mode.jpg

References

Tips

Support This Project

I’m just a single guy and I do not have enough time to make this project meet everybody’s needs. So if you want to support this project, you can do in the following ways:

Footnotes

[1] Editor war