[
  {
    "path": ".emacs",
    "content": ";; path where settings files are kept\n(add-to-list 'load-path \"~/.emacs.d/settings\")\n;; path to where plugins are kept\n(setq plugin-path \"~/.emacs.d/el-get/\")\n\n;; define various custom functions\n(require 'custom-functions)\n\n;; configure general settings\n(require 'general-settings)\n\n;; install dependencies with el-get\n(require 'el-get-settings)\n\n;---------------;\n;;; Utilities ;;;\n;---------------;\n\n;; Git\n(include-plugin \"magit\")\n(require 'magit)\n\n;; Popup\n(include-elget-plugin \"popup\")\n(require 'popup)\n\n;; Websocket\n(include-plugin \"websocket\")\n(require 'websocket)\n\n;; Request\n(include-plugin \"request\")\n(require 'request)\n\n;; yasnippet\n(require 'yasnippet-settings)\n\n;; Auto complete\n(require 'auto-complete-settings)\n\n;; Camelcase functions\n(require 'camelcase-settings)\n\n;; Helm\n(require 'helm-settings)\n\n\n;-----------;\n;;; Modes ;;;\n;-----------;\n\n;; Ido mode\n(require 'ido)\n(ido-mode 1)\n\n;; MuMaMo\n(require 'mumamo-settings)\n\n;; Markdown mode\n(require 'markdown-settings)\n\n;; Python mode \n(require 'python-settings)\n\n;; LaTeX and Auctex\n(require 'latex-settings)\n\n;; SCSS Mode\n(require 'scss-settings)\n\n;; Matlab mode\n(require 'matlab-settings)\n\n;; Javascript\n(require 'js-settings)\n\n;; YAML mode\n(require 'yaml-settings)\n\n;; Nyancat mode!\n(nyan-mode 1)\n\n\n;---------------------------------------------------------------------\n;; Put auto 'custom' changes in a separate file (this is stuff like\n;; custom-set-faces and custom-set-variables)\n(load \n (setq custom-file (expand-file-name \"settings/custom.el\" user-emacs-directory))\n 'noerror)\n"
  },
  {
    "path": ".emacs.d/settings/auto-complete-settings.el",
    "content": ";-------------------;\n;;; Auto-Complete ;;;\n;-------------------;\n\n(setq ac-directory (make-elget-path \"auto-complete\"))\n(add-to-list 'load-path ac-directory)\n(require 'auto-complete) \n\n(require 'auto-complete-config) \n(ac-config-default)\n(global-auto-complete-mode 1)\n(setq-default ac-sources '(ac-source-yasnippet\n                           ac-source-abbrev\n                           ac-source-dictionary\n                           ac-source-words-in-same-mode-buffers))\n\n; hack to fix ac-sources after pycomplete.el breaks it\n(add-hook 'python-mode-hook\n          '(lambda ()\n             (setq ac-sources '(ac-source-pycomplete\n                                ac-source-yasnippet\n                                ac-source-abbrev\n                                ac-source-dictionary\n                                ac-source-words-in-same-mode-buffers))))\n\n;; from http://truongtx.me/2013/01/06/config-yasnippet-and-autocomplete-on-emacs/\n; set the trigger key so that it can work together with yasnippet on\n; tab key, if the word exists in yasnippet, pressing tab will cause\n; yasnippet to activate, otherwise, auto-complete will\n(ac-set-trigger-key \"TAB\")\n(ac-set-trigger-key \"<tab>\")\n\n;; from http://blog.deadpansincerity.com/2011/05/setting-up-emacs-as-a-javascript-editing-environment-for-fun-and-profit/\n; Start auto-completion after 2 characters of a word\n(setq ac-auto-start 2)\n; case sensitivity is important when finding matches\n(setq ac-ignore-case nil)\n\n(provide 'auto-complete-settings)\n"
  },
  {
    "path": ".emacs.d/settings/camelcase-settings.el",
    "content": ";; The following functions were written by dbrady, see\n;; https://gist.github.com/846766\n\n;; Grateful thanks are given to Brian Marick (@marick) for helping me\n;; write these. I got the original idea while reading through\n;; http://xahlee.org/emacs/elisp_idioms.html, but couldn't work out\n;; the elisp regexes. Brian Marick (@marick) stepped in and helped. He\n;; took my tortured and broken camelcase-region and turned it into\n;; something that actually worked. I then created\n;; camelcase-word-or-region. I then wrote the snakecase versions but I\n;; see now that all I did was copy the camelcase defuns over and,\n;; meaning to go back and finish them Real Soon Now, forgot all about\n;; them. I've had a quick look (2011-02-27) but elisp regexes are\n;; still pretty slippery to me, so I have decided to err on the side\n;; of \"Showing This To Jim Weirich\" (beacuse he expressed interest in\n;; the camelcase defun) and have just marked the offending code and\n;; left it unfixed.\n\n;; camelcase-region Given a region of text in snake_case format,\n;; changes it to camelCase.\n(defun camelcase-region (start end)\n  \"Changes region from snake_case to camelCase\"\n  (interactive \"r\")\n  (save-restriction (narrow-to-region start end)\n                    (goto-char (point-min))\n                    (while (re-search-forward \"_\\\\(.\\\\)\" nil t)\n                      (replace-match (upcase (match-string 1))))))\n\n;; cadged largely from http://xahlee.org/emacs/elisp_idioms.html:\n;; \n(defun camelcase-word-or-region ()\n  \"Changes word or region from snake_case to camelCase\"\n  (interactive)\n  (let (pos1 pos2 bds)\n    (if (and transient-mark-mode mark-active)\n        (setq pos1 (region-beginning) pos2 (region-end))\n      (progn\n        (setq bds (bounds-of-thing-at-point 'symbol))\n        (setq pos1 (car bds) pos2 (cdr bds))))\n    (camelcase-region pos1 pos2)))\n\n;; snakecase-region Given a region of text in camelCase format,\n;; changes it to snake_case.\n;; \n;; BUG: This is actually just a repeat of camelcase-region!\n(defun snakecase-region (start end)\n  \"Changes region from camelCase to snake_case\"\n  (interactive \"r\")\n  (save-restriction (narrow-to-region start end)\n                    (goto-char (point-min))\n                    (while (re-search-forward \"_\\\\(.\\\\)\" nil t)\n                      (replace-match (upcase (match-string 1))))))\n\n;; Given a region of text in camelCase format, changes it to\n;; snake_case.\n(defun snakecase-word-or-region ()\n  \"Changes word or region from camelCase to snake_case\"\n  (interactive)\n  (let (pos1 pos2 bds)\n    (if (and transient-mark-mode mark-active)\n        (setq pos1 (region-beginning) pos2 (region-end))\n      (progn\n        (setq bds (bounds-of-thing-at-point 'symbol))\n        (setq pos1 (car bds) pos2 (cdr bds))))\n    (snakecase-region pos1 pos2)))\n\n; camelcase and snakecase\n(global-set-key (kbd \"C-c C--\") 'camelcase-word-or-region)\n(global-set-key (kbd \"C-c C-_\") 'snakecase-word-or-region)\n\n(provide 'camelcase-settings)\n"
  },
  {
    "path": ".emacs.d/settings/custom-functions.el",
    "content": ";----------------------;\n;;; Custom Functions ;;;\n;----------------------;\n\n; unfill a paragraph, i.e., make it so the text does not wrap in the\n; paragraph where the cursor is\n(defun unfill-paragraph ()\n  (interactive)\n  (let ((fill-column (point-max)))\n    (fill-paragraph nil)))\n\n; unfill a region, i.e., make is so the text in that region does not\n; wrap\n(defun unfill-region ()\n  (interactive)\n  (let ((fill-column (point-max)))\n    (fill-region (region-beginning) (region-end) nil)))\n\n(defun system-is-mac ()\n  (interactive)\n  (string-equal system-type \"darwin\"))\n\n(defun system-is-linux ()\n  (interactive)\n  (string-equal system-type \"gnu/linux\"))\n\n(defun make-plugin-path (plugin)\n  (expand-file-name\n   (concat plugin-path plugin)))\n\n(defun include-plugin (plugin)\n  (add-to-list 'load-path (make-plugin-path plugin)))\n\n(defun make-elget-path (plugin)\n  (expand-file-name\n   (concat elget-path plugin)))\n\n(defun include-elget-plugin (plugin)\n  (add-to-list 'load-path (make-elget-path plugin)))\n\n(provide 'custom-functions)\n"
  },
  {
    "path": ".emacs.d/settings/custom.el",
    "content": "\n(custom-set-variables\n ;; custom-set-variables was added by Custom.\n ;; If you edit it by hand, you could mess it up, so be careful.\n ;; Your init file should contain only one such instance.\n ;; If there is more than one, they won't work right.\n )\n\n; color theme\n(add-to-list 'custom-theme-load-path (make-plugin-path \"color-theme-solarized\"))\n(load-theme 'solarized 1)\n(setq solarized-termcolors 256)\n\n(require 'faces)\n(if (system-is-mac)\n    (set-face-attribute 'default nil\n\t\t\t:foundry \"apple\" \n\t\t\t:family \"DejaVu_Sans_Mono\"))\n\n(custom-set-faces\n ;; custom-set-faces was added by Custom.\n ;; If you edit it by hand, you could mess it up, so be careful.\n ;; Your init file should contain only one such instance.\n ;; If there is more than one, they won't work right.\n (if (window-system)\n     (if (system-is-mac)\n         '(default ((t (:inherit nil :stipple nil :background \"#002b35\" :foreground \"#839496\" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :height 130 :width normal :foundry \"apple\" :family \"DejaVu_Sans_Mono\"))))\n       '(default ((t (:inherit nil :stipple nil :background \"#002b35\" :foreground \"#839496\" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :height 130 :width normal :family \"Ubuntu Mono\"))))))\n '(ein:cell-input-area ((t (:background \"#042028\"))))\n '(ein:cell-input-prompt ((t (:inherit header-line :background \"#002b35\" :foreground \"#859900\" :inverse-video nil :weight bold))))\n '(ein:cell-output-prompt ((t (:inherit header-line :background \"#002b35\" :foreground \"#dc322f\" :inverse-video nil :weight bold))))\n '(font-lock-comment-face ((t (:foreground \"#6171c4\" :inverse-video nil :underline nil :slant italic :weight normal))))\n '(font-lock-function-name-face ((t (:foreground \"#2075c7\" :inverse-video nil :underline nil :slant normal :weight bold))))\n '(font-lock-keyword-face ((t (:foreground \"#cb4b16\" :inverse-video nil :underline nil :slant normal :weight normal))))\n '(font-lock-type-face ((t (:foreground \"#d33682\" :inverse-video nil :underline nil :slant normal :weight normal))))\n '(fringe ((t (:background \"#002b35\" :foreground \"#465a61\"))))\n (if (window-system)\n     '(magit-item-highlight ((t (:inherit highlight :background \"#042028\"))))\n   '(magit-item-highlight ((t (:background \"white\" :foreground \"black\")))))\n '(markdown-header-face-1 ((t (:inherit markdown-header-face :height 210))))\n '(markdown-header-face-2 ((t (:inherit markdown-header-face :height 190))))\n '(markdown-header-face-3 ((t (:inherit markdown-header-face :height 170))))\n '(markdown-header-face-4 ((t (:inherit markdown-header-face :height 150))))\n '(markdown-header-face-5 ((t (:inherit markdown-header-face :slant italic :weight bold))))\n '(markdown-header-face-6 ((t (:inherit markdown-header-face :slant italic :weight normal))))\n '(markdown-math-face ((t (:inherit font-lock-string-face :foreground \"#cb4b16\" :slant italic))))\n (if (window-system)\n     '(mode-line ((t (:background \"#0a2832\" :foreground \"#eee8d4\" :inverse-video t :box nil :underline nil :slant normal :weight normal)))))\n '(mumamo-background-chunk-major ((t (:background \"#002b36\"))))\n '(py-variable-name-face ((t (:inherit default :foreground \"#268bd2\")))))\n\n"
  },
  {
    "path": ".emacs.d/settings/el-get-settings.el",
    "content": "; set the el-get path, and create it if it doesn't exist\n(setq elget-path plugin-path)\n(unless (file-exists-p elget-path)\n  (make-directory elget-path))\n\n; add el-get to the load path, and install it if it doesn't exist\n(add-to-list 'load-path \"~/.emacs.d/el-get/el-get\")\n(unless (require 'el-get nil 'noerror)\n  (with-current-buffer\n      (url-retrieve-synchronously\n       \"https://raw.github.com/dimitri/el-get/master/el-get-install.el\")\n    (goto-char (point-max))\n    (eval-print-last-sexp)))\n\n; packages to install\n(setq \n my-packages '(auctex\n               auto-complete\n               color-theme-solarized\n               ein\n               magit\n               markdown-mode\n               matlab-mode\n               nxhtml\n               pydoc-info\n               scss-mode\n               popup\n               jedi\n               nyan-mode\n               helm\n               helm-descbinds\n               js2-mode\n               yasnippet\n               yaml-mode\n               ))   \n\n; first enable shallow clone, so we don't need to clone the entire\n; history of every project\n(setq el-get-git-shallow-clone t)\n\n; then intsall!\n(el-get 'sync my-packages)\n\n(provide 'el-get-settings)\n\n"
  },
  {
    "path": ".emacs.d/settings/general-settings.el",
    "content": ";--------------------------------;\n;;; General or Global Settings ;;;\n;--------------------------------;\n\n; set PATH, because we don't load .bashrc\n; function from https://gist.github.com/jakemcc/3887459\n(defun set-exec-path-from-shell-PATH ()\n  (setenv \"PATH\" (concat \"/usr/local/bin:\" (getenv \"PATH\")))\n  (let ((path-from-shell (shell-command-to-string \"$SHELL -i -c 'echo -n $PATH'\")))\n    (setenv \"PATH\" path-from-shell)\n    (setq exec-path (split-string path-from-shell path-separator))))\n \n(if window-system (set-exec-path-from-shell-PATH))\n\n; language\n(setq current-language-environment \"English\")\n\n; don't show the startup screen\n(setq inhibit-startup-screen 1)\n; don't show the menu bar\n(menu-bar-mode 0)\n; don't show the tool bar\n(require 'tool-bar)\n(tool-bar-mode 0)\n; don't show the scroll bar\n(if window-system (scroll-bar-mode 0))\n\n; turn on mouse wheel support for scrolling\n(require 'mwheel)\n(mouse-wheel-mode 1)\n\n; set command key to be meta instead of option\n(if (system-is-mac)\n    (setq ns-command-modifier 'meta))\n\n; number of characters until the fill column \n(setq-default fill-column 70)\n\n; each line of text gets one line on the screen (i.e., text will run\n; off the left instead of wrapping around onto a new line)\n(setq-default truncate-lines 1)\n; truncate lines even in partial-width windows\n(setq truncate-partial-width-windows 1)\n\n; default window width and height\n(defun custom-set-frame-size ()\n  (add-to-list 'default-frame-alist '(height . 50))\n  (add-to-list 'default-frame-alist '(width . 178)))\n(custom-set-frame-size)\n(add-hook 'before-make-frame-hook 'custom-set-frame-size)\n\n; window modifications\n;; (global-set-key (kbd \"S-C-<left>\") 'shrink-window-horizontally)\n;; (global-set-key (kbd \"S-C-<right>\") 'enlarge-window-horizontally)\n;; (global-set-key (kbd \"S-C-<down>\") 'shrink-window)\n;; (global-set-key (kbd \"S-C-<up>\") 'enlarge-window)\n\n; make end and home keys go to the start/end of buffers\n(global-set-key (kbd \"<end>\") 'end-of-buffer)\n(global-set-key (kbd \"<home>\") 'beginning-of-buffer)\n(define-key input-decode-map \"\\e[1;5A\" [C-up])\n(define-key input-decode-map \"\\e[1;5B\" [C-down])\n\n; always use spaces, not tabs, when indenting\n(setq-default indent-tabs-mode nil)\n; indentation styles\n(setq c-basic-offset 8)\n(setq c-default-style (quote (\n    (c-mode . \"bsd\") \n    (java-mode . \"java\") \n    (awk-mode . \"awk\") \n    (other . \"gnu\"))))\n \n; ignore case when searching\n(setq-default case-fold-search 1)\n\n; set the keybinding so that you can use f4 for goto line\n(global-set-key [f4] 'goto-line)\n\n; require final newlines in files when they are saved\n(setq require-final-newline 1)\n; add a new line when going to the next line\n(setq next-line-add-newlines t)\n\n; show the current line and column numbers in the stats bar as well\n(line-number-mode 1)\n(column-number-mode 1)\n\n; don't blink the cursor\n(blink-cursor-mode 0)\n\n; make sure transient mark mode is enabled (it should be by default,\n; but just in case)\n(transient-mark-mode 1)\n\n; highlight parentheses when the cursor is next to them\n(require 'paren)\n(show-paren-mode 1)\n\n; text decoration\n(require 'font-lock)\n;(setq font-lock-maximum-decoration 1)\n(global-font-lock-mode 1)\n(global-hi-lock-mode nil)\n(setq jit-lock-contextually 1)\n(setq jit-lock-stealth-verbose 1)\n\n; if there is size information associated with text, change the text\n; size to reflect it\n(size-indication-mode 1)\n\n; disable backup\n(setq backup-inhibited t)\n; disable auto save\n(setq auto-save-default nil)\n\n(provide 'general-settings)\n"
  },
  {
    "path": ".emacs.d/settings/helm-settings.el",
    "content": "(require 'helm)\n(require 'helm-descbinds)\n\n(fset 'describe-bindings 'helm-descbinds)\n(helm-mode 1)\n\n(global-set-key (kbd \"C-c h\") 'helm-mini)\n\n(provide 'helm-settings)\n"
  },
  {
    "path": ".emacs.d/settings/js-settings.el",
    "content": ";----------------;\n;;; Javascript ;;;\n;----------------;\n\n(add-to-list 'auto-mode-alist '(\"\\\\.js$\" . js2-mode))\n(setq-default js2-basic-offset 4)\n\n(provide 'js-settings)\n"
  },
  {
    "path": ".emacs.d/settings/latex-settings.el",
    "content": ";-----------;\n;;; LaTeX ;;;\n;-----------;\n\n(add-to-list 'load-path \"/usr/local/share/emacs/site-lisp\")\n(include-plugin \"auctex\")\n(load \"auctex.el\" -1 1 1)\n(load \"preview-latex.el\" -1 1 1)\n\n(if (system-is-mac)\n    (progn\n      (require 'tex-site)\n      (require 'font-latex)\n      (setq TeX-view-program-list\n\t    (quote \n\t     ((\"Skim\" \n\t       (concat \"/Applications/Skim.app/Contents/SharedSupport/displayline\"\n\t\t       \" %n %o %b\")))))\n      (setq TeX-view-program-selection \n\t    (quote (((output-dvi style-pstricks) \"dvips and gv\") \n\t\t    (output-dvi \"xdvi\") \n\t\t    (output-pdf \"Skim\")\n\t\t    (output-html \"xdg-open\")))))\n\n  (if (system-is-linux)\n      (setq TeX-view-program-selection \n\t     (quote (((output-dvi style-pstricks) \"dvips and gv\") \n\t\t     (output-dvi \"xdvi\") \n\t\t     (output-pdf \"evince\")\n\t\t     (output-html \"xdg-open\"))))))\n\n; always start the server for inverse search\n(setq-default TeX-source-correlate-start-server 0)\n\n(add-hook 'LaTeX-mode-hook\n\t  (lambda ()\n\t    (tex-pdf-mode 1)\n            (TeX-source-correlate-mode 1)))\n\n(provide 'latex-settings)\n"
  },
  {
    "path": ".emacs.d/settings/markdown-settings.el",
    "content": ";-------------------;\n;;; Markdown mode ;;;\n;-------------------;\n\n(include-plugin \"markdown-mode\")\n(autoload 'markdown-mode \"markdown-mode.el\"\n  \"Major mode for editing Markdown files\" t)\n(setq auto-mode-alist\n      (append \n       (list '(\"\\\\.text\" . markdown-mode) \n\t     '(\"\\\\.md\" . markdown-mode) \n\t     '(\"\\\\.markdown\" . markdown-mode) \n\t     )\n       auto-mode-alist))\n\n(provide 'markdown-settings)\n"
  },
  {
    "path": ".emacs.d/settings/matlab-settings.el",
    "content": ";---------------------;\n;;; Matlab settings ;;;\n;---------------------;\n\n(include-plugin \"matlab\")\n(autoload 'matlab-mode \"matlab\" \"Matlab Editing Mode\" t)\n (add-to-list\n  'auto-mode-alist\n  '(\"\\\\.m$\" . matlab-mode))\n (setq matlab-indent-function t)\n (setq matlab-shell-command \"matlab\")\n\n(provide 'matlab-settings)\n"
  },
  {
    "path": ".emacs.d/settings/mumamo-settings.el",
    "content": ";---------------------;\n;;; MuMaMo / nxhtml ;;;\n;---------------------;\n\n(load (make-plugin-path \"nxhtml/elisp/autostart.el\"))\n;; Workaround the annoying warnings:\n;;    Warning (mumamo-per-buffer-local-vars):\n;;    Already 'permanent-local t: buffer-file-name\n(when (and (equal emacs-major-version 24)\n           (equal emacs-minor-version 3))\n  (eval-after-load \"mumamo\"\n    '(setq mumamo-per-buffer-local-vars\n           (delq 'buffer-file-name mumamo-per-buffer-local-vars))))\n\n(provide 'mumamo-settings)\n"
  },
  {
    "path": ".emacs.d/settings/python-settings.el",
    "content": ";------------------------;\n;;; Python Programming ;;;\n;------------------------;\n\n;; -----------------------\n;; python.el configuration\n;; -----------------------\n\n; from python.el\n(require 'python)\n\n(setq\n python-shell-interpreter \"ipython\"\n python-shell-interpreter-args (if (system-is-mac)\n\t\t\t\t   \"--matplotlib=osx --colors=Linux\"\n                                   (if (system-is-linux)\n\t\t\t\t       \"--gui=wx --matplotlib=wx --colors=Linux\"))\n python-shell-prompt-regexp \"In \\\\[[0-9]+\\\\]: \"\n python-shell-prompt-output-regexp \"Out\\\\[[0-9]+\\\\]: \"\n python-shell-completion-setup-code\n   \"from IPython.core.completerlib import module_completion\"\n python-shell-completion-module-string-code\n   \"';'.join(module_completion('''%s'''))\\n\"\n python-shell-completion-string-code\n   \"';'.join(get_ipython().Completer.all_completions('''%s'''))\\n\")\n\n\n;; -----------------------------\n;; emacs IPython notebook config\n;; -----------------------------\n\n; use autocompletion, but don't start to autocomplete after a dot\n(setq ein:complete-on-dot -1)\n(setq ein:use-auto-complete 1)\n\n; set python console args\n(setq ein:console-args\n      (if (system-is-mac)\n\t  '(\"--gui=osx\" \"--matplotlib=osx\" \"--colors=Linux\")\n\t(if (system-is-linux)\n\t    '(\"--gui=wx\" \"--matplotlib=wx\" \"--colors=Linux\"))))\n\n; timeout settings\n(setq ein:query-timeout 1000)\n\n; IPython notebook\n(include-plugin \"emacs-ipython-notebook/lisp\")\n(require 'ein)\n\n; shortcut function to load notebooklist\n(defun load-ein () \n  (ein:notebooklist-load)\n  (interactive)\n  (ein:notebooklist-open))\n\n\n;; ------------------\n;; misc python config\n;; ------------------\n\n; pydoc info\n(include-plugin \"pydoc-info-0.2\")\n(require 'pydoc-info)\n\n;; ; jedi python completion\n;; (include-elget-plugin \"ctable\")   ; required for epc\n;; (include-elget-plugin \"deferred\") ; required for epc\n;; (include-elget-plugin \"epc\")      ; required for jedi\n;; (include-elget-plugin \"jedi\")\n;; (require 'jedi)\n;; (setq jedi:setup-keys t)\n;; (autoload 'jedi:setup \"jedi\" nil t)\n;; (add-hook 'python-mode-hook 'jedi:setup)\n\n;; pyflakes flymake integration\n;; http://stackoverflow.com/a/1257306/347942\n(when (load \"flymake\" t)\n  (defun flymake-pyflakes-init ()\n    (let* ((temp-file (flymake-init-create-temp-buffer-copy\n                       'flymake-create-temp-inplace))\n           (local-file (file-relative-name\n                        temp-file\n                        (file-name-directory buffer-file-name))))\n      (list \"pycheckers\" (list local-file))))\n  (add-to-list 'flymake-allowed-file-name-masks\n               '(\"\\\\.py\\\\'\" flymake-pyflakes-init)))\n(add-hook 'python-mode-hook\n\t  (lambda ()\n\t    (unless (eq buffer-file-name nil) (flymake-mode 1))))\n\n; Set PYTHONPATH, because we don't load .bashrc\n(defun set-python-path-from-shell-PYTHONPATH ()\n  (let ((path-from-shell (shell-command-to-string \"$SHELL -i -c 'echo $PYTHONPATH'\")))\n    (setenv \"PYTHONPATH\" path-from-shell)))\n\n(if window-system (set-python-path-from-shell-PYTHONPATH))\n\n(setq auto-mode-alist\n      (append \n       (list '(\"\\\\.pyx\" . python-mode)\n             '(\"SConstruct\" . python-mode))\n       auto-mode-alist))\n\n; keybindings\n(eval-after-load 'python\n  '(define-key python-mode-map (kbd \"C-c !\") 'python-shell-switch-to-shell))\n(eval-after-load 'python\n  '(define-key python-mode-map (kbd \"C-c |\") 'python-shell-send-region))\n\n(provide 'python-settings)\n\n"
  },
  {
    "path": ".emacs.d/settings/scss-settings.el",
    "content": ";-----------------;\n;;; SCSS / SASS ;;;\n;-----------------;\n\n(include-plugin \"scss-mode\")\n(autoload 'scss-mode \"scss-mode\")\n(add-to-list 'auto-mode-alist '(\"\\\\.scss\\\\'\" . scss-mode))\n(setq scss-sass-command (expand-file-name \"~/.rvm/gems/ruby-1.9.3-p392/bin/sass\"))\n(setq scss-compile-at-save nil)\n\n(provide 'scss-settings)\n"
  },
  {
    "path": ".emacs.d/settings/yaml-settings.el",
    "content": ";-------------------;\n;;;   YAML Mode   ;;;\n;-------------------;\n\n(require 'yaml-mode)\n\n(add-to-list 'auto-mode-alist '(\"\\\\.yml$\" . yaml-mode))\n\n(add-hook 'yaml-mode-hook\n          '(lambda ()\n             (define-key yaml-mode-map \"\\C-m\" 'newline-and-indent)))\n\n(provide 'yaml-settings)\n"
  },
  {
    "path": ".emacs.d/settings/yasnippet-settings.el",
    "content": ";---------------;\n;;; yasnippet ;;;\n;---------------;\n\n(require 'yasnippet)\n(yas-global-mode 1)\n\n(provide 'yasnippet-settings)\n"
  },
  {
    "path": ".emacs.d/snippets/js-mode/doc",
    "content": "# -*- mode: snippet -*-\n#name : jsdoc\n# --\n/**\n * $0\n */"
  },
  {
    "path": ".gitignore",
    "content": "*~\n*.elc\n.emacs.d/plugins/color-theme-*\n.emacs.d/plugins/python-mode*\n.emacs.d/plugins/auctex\n.emacs.d/plugins/pydoc-info-*\n.emacs.d/plugins/matlab/\n"
  },
  {
    "path": "README.md",
    "content": "# Emacs Configuration\n\n> **Please note**: I no longer use emacs regularly and am unable to support issues on this configuration. I will leave it up for people in case it is useful, but I have disabled issues on the repository and will not respond to emails asking for help -- I receive too many emails as it is, and unfortunately I cannot respond to every one.\n\n**Tested on versions:**\n* GNU Emacs 24.3.1 (x86_64-apple-darwin13.1.0, NS apple-appkit-1265.19) of 2014-04-06\n* GNU Emacs 24.3.1 (x86_64-pc-linux-gnu, GTK+ Version 3.4.2) of 2014-02-22\n\n## Installing\n\nClone this repository, and then run the `bootstrap.sh` script. This\nwill copy all of the necessary files to `~/.emacs` and\n`~/.emacs.d`. Note that if these files exist for you already, **this\nwill overwrite those files**.\n\nOnce you have run the bootstrap script, start Emacs (make sure you are\nconnected to the internet when you do this for the first time). It\nwill install [`el-get`](https://github.com/dimitri/el-get) and all of\nthe other plugins listed in the next section. This initial\ninstallation may take a while, so be patient.\n\n## Dependencies\n\nFor some of the plugins to work, you will need to have some external\ndependencies installed, such as Python, IPython, git, etc. If the\ninstallation gives you an error, it might mean you are missing a\nrequired dependency that el-get doesn't install.\n\n## Emacs plugins\n\nThis configuration installs several plugins using\n[`el-get`](https://github.com/dimitri/el-get). These plugins are\nspecified in `.emacs.d/settings/el-get-settings.el`, and are also\nlisted below:\n\n* `auctex` -- LaTeX plugin\n* `ein` -- [IPython notebook](http://ipython.org/notebook) plugin\n* `jedi` -- general Python support\n* `pydoc-info` -- Python documentation\n* `auto-complete` -- auto completion\n* `popup` -- visual popup (e.g., for auto completion)\n* `color-theme-solarized` -- the [solarized](http://ethanschoonover.com/solarized) color theme\n* `magit` -- git plugin\n* `markdown-mode` -- support for [Markdown](http://daringfireball.net/projects/markdown/) files\n* `matlab-mode` -- support Matlab files\n* `nxhtml` (MuMaMo)\n* `scss-mode` -- support for [SCSS](http://sass-lang.com/) files\n* `nyan-mode` -- silly mode that renders a nyan cat to display how far\n  you are through a file\n* `helm` -- [completion and selection](https://github.com/emacs-helm/helm) narrowing framework\n* `helm-descbinds` -- describe keybindings using helm\n* `yaml-mode` -- support [YAML](https://github.com/yoshiki/yaml-mode) files\n\n## Gotchas\n\nHere are some issues I or others have run into when installing this configuration.\n\n### Version control systems\n\nTo install all the plugins above, you need to have several different version control systems installed, including `hg`, `git`, `bzr`, and `cvs`.\n\n### Trouble building AUCTeX\n\nIf you get the following error:\n\n`error: el-get: ./autogen.sh el-get could not build auctex [./autogen.sh]`\n\nThere are a few possible causes. Try these steps:\n\n1. Make sure you have `automake` and `texlive-full` installed (if you are on Ubuntu) or MacTeX (if you are on Mac).\n2. Try running emacs from the command line (it could be an issue with not finding the right path).\n3. If that doesn't work, run emacs from the command line with the `--debug-init` flag. This will give you more information about the error, and possibly point you towards the solution.\n\n### No such file or directory: pycheckers\n\n`pycheckers` is a little script to check that your Python code\nconforms to the\n[PEP8 style guide](http://legacy.python.org/dev/peps/pep-0008/) using\nthe [pep8](https://pypi.python.org/pypi/pep8) and\n[pyflakes](https://pypi.python.org/pypi/pyflakes/0.8.1) Python\npackages.\n\nIf you do not want this functionality, you can comment out the block\nof code in `python-settings.el` that starts with \"pyflakes flymake\nintegration\". Otherwise, read on.\n\n1. In your `~/.bashrc`, add `$HOME/bin` to your `$PATH` environment variable like so:\n  \n  ```\n  export PATH=\"$HOME/bin:$PATH\"\n  ```\n\n2. Create a file in `~/bin/pycheckers` with the following contents:\n\n  ```\n  #!/bin/bash\n  \n  pyflakes \"$1\"\n  pep8 --ignore=E261 --repeat \"$1\"\n  true\n  ```\n\n3. Make it executable with `chmod +x ~/bin/pycheckers`.\n\n4. Make sure you have `pep8` and `pyflakes` installed (run `pip\n   install pep8 pyflakes`).\n\n5. Now it should work! If not, please submit a bug report and let me\n   know.\n\n### Tramp is timing out\n\nIf you get the error `tramp ssh: connect to host c port 22: Operation timed out` and you are running OS X Mavericks with Emacs installed using Homebrew, then this is probably due to the Mavericks upgrade. Try reinstalling Emacs through Homebrew and remove the folder `~/.emacs.d/el-get` (note: this will remove all your el-get plugins, and they will need to be reinstalled).\n\n### Auto-complete disappears from python mode\nThe python mode needs to have the `jedi`, `epc`, and `pylint` packages added to your Python installation. Run this command:\n\n  ```\n  pip install jedi epc pylint\n  ```\n\nHint provided by Andrea Crotti's EuroPython 2013 Conference talk, [Emacs and shell as your best friends](https://www.youtube.com/watch?v=0cZ7szFuz18), and the [minimal Emacs configuration](https://github.com/AndreaCrotti/minimal-emacs-configuration) used in the talk.\n"
  },
  {
    "path": "bootstrap.sh",
    "content": "#!/usr/bin/env bash\n\n# Based on bootstrap.sh by Mathias Bynens, retrieved 04/28/2013:\n# https://github.com/mathiasbynens/dotfiles/blob/5d1850e041f955c48f5a2241faabddd7af895b58/bootstrap.sh\n\ncd \"$(dirname \"${BASH_SOURCE}\")\"\ngit pull origin master\n\ngitExitCode=$?\nif [[ $gitExitCode != 0 ]]; then\n    exit $gitExitCode\nfi\n\nfunction clean() {\n        git clean -nx\n\tread -p \"Clean the above files? (y/n) \" -n 1\n\techo\n\tif [[ $REPLY =~ ^[Yy]$ ]]; then\n\t\tgit clean -fx\n\tfi\n}\n\nfunction doIt() {\n    for i in $(ls -a); do \n\tif [ $i != '.' -a $i != '..' -a $i != '.git' -a $i != '.DS_Store' -a $i != 'bootstrap.sh' -a $i != 'README.md' -a $i != '.gitignore' -a $i != '.gitmodules' ]; then \n            if [ $(uname) == \"Darwin\" ]; then\n\t        echo \"$i\"\n\t        gcp -alrf \"$i\" \"$HOME/\"\n            else\n                echo \"$i\"\n                cp -alrf \"$i\" \"$HOME/\"\n            fi\n\tfi\n    done\n}\n\nclean\nif [ \"$1\" == \"--force\" -o \"$1\" == \"-f\" ]; then\n\tdoIt\nelse\n\tread -p \"This may overwrite existing files in your home directory. Are you sure? (y/n) \" -n 1\n\techo\n\tif [[ $REPLY =~ ^[Yy]$ ]]; then\n\t\tdoIt\n\tfi\nfi\nunset clean\nunset doIt\n"
  }
]