;; store all backup and autosave files in the tmp dir
;; (setq backup-directory-alist
;; `((".*" . ,temporary-file-directory)))
;; (setq auto-save-file-name-transforms
;; `((".*" . ,temporary-file-directory)))
;; autosave the undo-tree history
;; (setq undo-tree-history-directory-alist
;; `((".*" . ,temporary-file-directory)))
;; (setq undo-tree-auto-save-history t)
(setq require-final-newline t)
(global-auto-revert-mode t)
Globally enable Projectile
(projectile-mode)
;;(setq projectile-switch-project-action 'helm-projectile)
(setq projectile-switch-project-action 'magit-status)
(setq indent-tabs-mode nil)
(setq-default indent-tabs-mode nil)
(setq js-indent-level 2)
(setq js-indent-level 4)
(setq c-basic-offset 4)
This is how to bootstrap my emacs config using org-mode.
(package-initialize nil)
(add-to-list 'package-archives '("org" . "http://orgmode.org/elpa/") t)
(unless (assoc-default "melpa" package-archives)
(add-to-list 'package-archives '("melpa" . "http://melpa.org/packages/") t)
(package-refresh-contents))
(unless (package-installed-p 'use-package)
(package-install 'use-package))
(require 'use-package)
(use-package org)
(org-babel-load-file "~/.emacs.d/jsamsa.org")
(setq user-full-name "Jason Samsa"
user-mail-address "")
orgmode-mediawiki provides an org-mode export to media wiki format
(when (file-directory-p "~/elisp/orgmode-mediawiki")
(add-to-list 'load-path "~/elisp/orgmode-mediawiki")
(require 'ox-mediawiki))
Make command key meta and option key super
(setq mac-command-modifier 'meta)
(setq mac-option-modifier 'super)
(use-package exec-path-from-shell
:init (progn
(exec-path-from-shell-initialize)
(exec-path-from-shell-copy-env "SSH_AGENT_PID")
(exec-path-from-shell-copy-env "SSH_AUTH_SOCK")))
(set-face-attribute 'default nil :height 160)
;; quiet, please! No dinging!
(setq visible-bell nil)
(setq ring-bell-function 'ignore)
(use-package helm
:ensure helm
:init
(progn
(require 'helm-config)
(setq helm-candidate-number-limit 100)
(setq helm-idle-delay 0.0
helm-quick-update t
helm-M-x-requires-pattern nil
helm-ff-skip-boring-files t)
(helm-mode))
:bind (("C-c h" . helm-mini)
("C-h a" . helm-apropos)
("C-x C-b" . helm-buffers-list)
("C-x b" . helm-buffers-list)
("M-y" . helm-show-kill-ring)
("M-x" . helm-M-x)
("C-x C-f" . helm-find-files)
("C-x c o" . helm-occur)
("C-x c s" . helm-swoop)
("C-x c SPC" . helm-all-mark-rings)
("C-x c r" . helm-register))
:config (setq helm-M-x-fuzzy-match t)
)
(ido-mode -1)
(fset 'yes-or-no-p 'y-or-n-p)
(column-number-mode)
(setq backup-directory-alist '(("." . "~/.emacs.d/backups")))
Shhhh….
(when window-system
(tooltip-mode -1)
(tool-bar-mode -1)
(menu-bar-mode 1)
(scroll-bar-mode -1))
(setq inhibit-startup-message t)
(when window-system (set-frame-size (selected-frame) 120 40))
From http://www.wisdomandwonder.com/wordpress/wp-content/uploads/2014/03/C3F.html
(prefer-coding-system 'utf-8)
(when (display-graphic-p)
(setq x-select-request-type '(UTF8_STRING COMPOUND_TEXT TEXT STRING)))
;; gruber-darker-theme
;; (use-package color-theme :ensure t)
;; (use-package gruber-darker-theme :ensure t)
;; (load-theme 'tango t)
;; (disable-theme 'tango)
(load-theme 'dracula t)
(use-package main-line :ensure t)
(setq main-line-separator-style 'slant-right)
(use-package smart-mode-line :ensure t)
(set-register ?e '(file . "~/.emacs.d/jsamsa.org"))
(set-register ?t '(file . "~/org/todo.org"))
(global-set-key (kbd "C-x C-m") 'helm-M-x)
Enable narrowing without warning
(put 'narrow-to-region 'disabled nil)
(global-set-key (kbd "C-c s") 'speedbar)
(add-hook 'speedbar-after-create-hook
(lambda ()
(speedbar-toggle-show-all-files)))
My org files are in ~/org
(setq org-directory "~/org")
Would like to use babel for capturing and executing useful commands.
(require 'ob-sh)
(require 'ob-dot)
Syntax highlighting for code blocks
(setq org-src-fontify-natively t)
Default TODO workflow
(setq org-todo-keywords
'((sequence "TODO(t/!)" "BLOCKED(b/@)" "|" "DONE" "DELEGATED(@)" "CANCELED(@)")))
;; See C-h v org-agenda-custom-commands-local-options
(setq org-agenda-custom-commands
'(("u" "Unscheduled"
((todo "" ((org-agenda-overriding-header "Unscheduled")
(org-agenda-skip-function '(org-agenda-skip-entry-if 'scheduled))))
(todo "" ((org-agenda-overriding-header "Scheduled")
(org-agenda-skip-function '(org-agenda-skip-entry-if 'notscheduled))))))
))
(setq org-src-window-setup 'current-window)
(org-babel-do-load-languages
'org-babel-load-languages
'((emacs-lisp . t)
(sh . t)
(http . t)
(java . t)
(dot . t)))
(global-set-key "\C-cl" 'org-store-link)
(global-set-key "\C-ca" 'org-agenda)
(global-set-key "\C-cc" 'org-capture)
(global-set-key "\C-cb" 'org-iswitchb)
(setq org-capture-templates
'(("t" "Todo" entry (file "~/org/todo.org")
"* TODO %?\n %i\n %a")
("m" "Meeting" entry (file+headline "~/org/todo.org" "Meetings")
"** %?\n %^T\n")
("i" "Interview Candidate" plain (file+headline "~/org/interview.org" "PVL 88936")
(file "~/org/pvl-88936.org"))))
(use-package gnuplot
:ensure t
:config
(setq gnuplot-program "/usr/local/bin/gnuplot"))
(use-package ox-confluence
:load-path "~/site-lisp/org-mode/contrib/lisp/")
This really didn’t do what I want, but I may want to build on it if this doesn’t resolve in versions after 8.2.10
;; (defun my-org-clocktable-indent-string (level)
;; (if (= level 1)
;; ""
;; (let ((str "^"))
;; (while (> level 2)
;; (setq level (1- level)
;; str (concat str "--")))
;; (concat str "-> "))))
;; (advice-add 'org-clocktable-indent-string :override #'my-org-clocktable-indent-string)
(setq org-use-speed-commands t)
I want to use these modes for any lisp dialect
(defun my-lisp-mode-hook()
(paredit-mode)
(rainbow-identifiers-mode)
(rainbow-delimiters-mode)
(show-paren-mode))
(add-hook 'emacs-lisp-mode-hook 'my-lisp-mode-hook)
(use-package cider
:ensure t
;; :config (setq cider-lein-command "~/bin/lein")
:init
(add-hook 'cider-mode-hook #'eldoc-mode)
(add-hook 'clojure-mode-hook 'my-lisp-mode-hook)
(setq nrepl-log-messages t))
; using 4clojure for study group
(use-package 4clojure :ensure t)
(add-to-list 'auto-mode-alist '("\\.groovy\'" . groovy-mode))
(use-package haskell-mode
:ensure t
:config
(add-hook 'haskell-mode-hook 'haskell-indent-mode)
(add-hook 'haskell-mode-hook 'interactive-haskell-mode)
(setq haskell-process-suggest-remove-import-lines t
haskell-process-auto-import-loaded-modules t
haskell-process-log t)
(define-key haskell-mode-map (kbd "C-c C-l") 'haskell-process-load-or-reload)
(define-key haskell-mode-map (kbd "C-`") 'haskell-interactive-bring)
(define-key haskell-mode-map (kbd "C-c C-t") 'haskell-process-do-type)
(define-key haskell-mode-map (kbd "C-c C-i") 'haskell-process-do-info)
(define-key haskell-mode-map (kbd "C-c C-c") 'haskell-process-cabal-build)
(define-key haskell-mode-map (kbd "C-c C-k") 'haskell-interactive-mode-clear)
(define-key haskell-mode-map (kbd "C-c c") 'haskell-process-cabal)
(define-key haskell-mode-map (kbd "SPC") 'haskell-mode-contextual-space)
)
;; (add-to-list 'auto-mode-alist '("\\.js$" . js3-mode))
;; (add-hook 'js3-mode-hook (lambda () (tern-mode t)))
;; (setq js-indent-level 4)
;; (use-package js2-mode :ensure t :defer t
;; :mode (("\\.js\\'" . js2-mode)
;; ("\\.json\\'" . javascript-mode))
;; :commands js2-mode
;; :init (progn
;; (setq-default js2-basic-offset 4
;; js2-indent-switch-body t
;; js2-auto-indent-p t
;; js2-global-externs '("angular")
;; js2-indent-on-enter-key t
;; flycheck-disabled-checkers '(javascript-jshint)
;; flycheck-checker '(javascript-eslint)
;; flycheck-eslintrc "~/.eslintrc"))
;; (add-to-list 'interpreter-mode-alist (cons "node" 'js2-mode))
;; (add-to-list 'js2-mode-hook 'flycheck-mode))
;; (setq-default flycheck-disabled-checkers '(javascript-jshint)
;; flycheck-checker 'javascript-eslint
;; flycheck-eslintrc "~/dev/star-app/src/main/webap/.eslintrc.yml")
(defun my/use-eslint-from-node-modules ()
(let* ((root (locate-dominating-file
(or (buffer-file-name) default-directory)
"node_modules"))
(eslint (and root
(expand-file-name "node_modules/.bin/eslint"
root))))
(when (and eslint (file-executable-p eslint))
(setq-local flycheck-javascript-eslint-executable eslint))))
(add-hook 'flycheck-mode-hook #'my/use-eslint-from-node-modules)
(add-hook 'after-init-hook #'global-flycheck-mode)
(use-package paredit :ensure t)
(add-hook 'emacs-lisp-mode-hook 'my-lisp-mode-hook)
(global-set-key (kbd "C-c g s") 'magit-status)
(add-to-list 'auto-mode-alist '("\\.html\\'" . web-mode))
(defun my-web-mode-hook ()
(setq web-mode-markup-indent-offset 2))
(add-hook 'web-mode-hook 'my-web-mode-hook)
(use-package hsql
:load-path "~/site-lisp/hsql.el/")