Usage
Given the modular structure of this conf, you may take just those parts that are of interest to you.
In case you want to try it all, the simplest way is saving your current configuration and cloning this repository in its place.
mv ~/.emacs.d ~/.emacs.d.bak
mv ~/.emacs ~/.emacs.bak
git clone --recursive https://github.com/jackjackk/emacs-conf.git ~/.emacs.d
Other strategies to merge an existing directory with a git repo can be found here. In particular:
git clone https://github.com/jackjackk/emacs-conf.git ~/.emacs.d/.git --mirror --config core.bare=false
will transform your emacs conf dir in a working copy of this repository.
init.el
)
The main file (All conf code is self-contained in ~/.emacs.d
dir. If no ~/.emacs
file is found, emacs will use ~/.emacs.d/init.el
(tangled from this file). This in
turn call other files in a modular fashion.
Make sure you decomment just the packages you are interested in, otherwise be aware that all missing packages on repositories will be downloaded and installed on startup, which requires time + internet bandwidth.
Load the path with configuration files.
(add-to-list 'load-path "~/.emacs.d/lisp")
Customize built-in features
Startup
(load-library "init-startup.el")
General
(load-library "init-general.el")
Visual
(load-library "init-visual.el")
Text
(load-library "init-text.el")
[[file:init-email.org][Email]
;(load-library "init-email.el")
OS integration
(load-library "init-os.el")
LaTeX
(load-library "init-latex.el")
Network
;(load-library "init-net.el")
Macros
(load-library "macros.el")
Python
(load-library "init-python.el")
Customize packages from repositories
(setq package-list '(
exec-path-from-shell)
OS integration (exec-path-from-shell
company, yasnippet, expand-region, multiple-cursors, column-marker, visual-fill-column, bm)
Text ( company
yasnippet
expand-region
multiple-cursors
writegood-mode
; column-marker
; visual-fill-column
; bm
helm, projectile, helm-projectile, helm-ag, transpose-frame, neotree)
Navigation ( helm
projectile
helm-projectile
helm-ag
transpose-frame
; neotree
org-plus-contrib, ox-textile, ox-rst toc-org, org-ref, ox-gfm, org-seek, org-bullets, org-journal, org-download, ox-pandoc, org-redmine, org-pomodoro, org2blog)
Org-mode ( org-plus-contrib
ox-textile
ox-rst
ox-gfm
toc-org
org-ref
org-seek
org-bullets
; org-journal
org-download
; ox-pandoc
; org-redmine
org-pomodoro
; org2blog
auctex, pdf-tools, latex-preview-pane, zotelo, auctex-latexmk, cdlatex)
LaTeX dev (auctex
;pdf-tools
latex-preview-pane
zotelo
auctex-latexmk
cdlatex
magit, helm-dash, eimp, spray, htmlize)
Tools ( magit
helm-dash
; eimp
spray
htmlize
osx-plist)
Mac packages (osx-plist
powershell)
Win dev (powershell
ess, markdown-mode, polymode)
R dev (ess
markdown-mode
polymode
elpy, anaconda-mode, company-anaconda, websocket ein, jedi)
Python dev ( elpy
; anaconda-mode
; company-anaconda
; websocket
; ein
; jedi
Web dev (simple-httpd, js2-mode, skewer-mode)
; simple-httpd
; js2-mode
; skewer-mode
android-mode
; android-mode
selectric-mode)
Fun (; selectric-mode
Customize packages from local subfolders
))
(setq other-package-list '(
thing-edit
thing-edit
gams
gams
ampl-mode
ampl-mode
ox-wk, ob-ampl, ob-gams)
Org-mode (; ox-wk
ob-ampl
; org-protocol-capture-html
; ob-gams
matlab
; matlab
speedread
; speedread
Finish
))
Call init-packages to load modules defined above.
(load-library "init-packages.el")
The git hook to compile changed files
changed_files="$(git diff-tree -r --name-only --no-commit-id HEAD@{1} HEAD)"
if [ ! -z "$changed_files" ]; then
sh compile-init.sh $changed_files
fi
Useful references
- http://www.emacswiki.org/emacs/Reference_Sheet_by_Aaron_Hawley
- https://org-babel.readthedocs.io/en/latest/
DISCLAIMER
THIS SOFTWARE IS PRIVIDED “AS IS” AND COMES WITH NO WARRANTY. USE AT YOUR OWN RISK. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING BUT NOT LIMITED TO LOSS OR CORRUPTION OF DATA). USE AT YOUR OWN RISK.