I think I have a problem..
This commit is contained in:
parent
5aa3c282be
commit
7ddb52699d
55 changed files with 745 additions and 318 deletions
24
Cask
24
Cask
|
@ -56,15 +56,15 @@
|
||||||
(depends-on "company-irony")
|
(depends-on "company-irony")
|
||||||
(depends-on "irony-mode" :git "https://github.com/Sarcasm/irony-mode")
|
(depends-on "irony-mode" :git "https://github.com/Sarcasm/irony-mode")
|
||||||
|
|
||||||
(depends-on "auto-complete")
|
; (depends-on "auto-complete")
|
||||||
(depends-on "auto-complete-clang")
|
; (depends-on "auto-complete-clang")
|
||||||
(depends-on "auto-complete-c-headers")
|
; (depends-on "auto-complete-c-headers")
|
||||||
(depends-on "ac-etags")
|
; (depends-on "ac-etags")
|
||||||
(depends-on "ac-ispell")
|
; (depends-on "ac-ispell")
|
||||||
(depends-on "ac-anaconda")
|
; (depends-on "ac-anaconda")
|
||||||
(depends-on "tern-auto-complete")
|
; (depends-on "tern-auto-complete")
|
||||||
(depends-on "ac-inf-ruby")
|
; (depends-on "ac-inf-ruby")
|
||||||
(depends-on "jedi")
|
; (depends-on "jedi")
|
||||||
|
|
||||||
;; Eeeevil
|
;; Eeeevil
|
||||||
(depends-on "god-mode")
|
(depends-on "god-mode")
|
||||||
|
@ -104,6 +104,7 @@
|
||||||
;; Modes/mode-specific
|
;; Modes/mode-specific
|
||||||
(depends-on "org-plus-contrib")
|
(depends-on "org-plus-contrib")
|
||||||
(depends-on "org-opml" :git "https://github.com/edavis/org-opml")
|
(depends-on "org-opml" :git "https://github.com/edavis/org-opml")
|
||||||
|
;(depends-on "org-present")
|
||||||
|
|
||||||
(depends-on "rainbow-mode")
|
(depends-on "rainbow-mode")
|
||||||
(depends-on "lua-mode")
|
(depends-on "lua-mode")
|
||||||
|
@ -135,7 +136,7 @@
|
||||||
(depends-on "inf-ruby")
|
(depends-on "inf-ruby")
|
||||||
(depends-on "robe")
|
(depends-on "robe")
|
||||||
|
|
||||||
(depends-on "anaconda")
|
(depends-on "anaconda-mode")
|
||||||
|
|
||||||
(depends-on "omnisharp")
|
(depends-on "omnisharp")
|
||||||
(depends-on "csharp-mode")
|
(depends-on "csharp-mode")
|
||||||
|
@ -148,3 +149,6 @@
|
||||||
|
|
||||||
(depends-on "applescript-mode")
|
(depends-on "applescript-mode")
|
||||||
(depends-on "cmake-mode")
|
(depends-on "cmake-mode")
|
||||||
|
|
||||||
|
(depends-on "rust-mode")
|
||||||
|
(depends-on "d-mode")
|
||||||
|
|
|
@ -1,7 +1,4 @@
|
||||||
;; Global editor behavior (+ evil)
|
;; Global editor behavior (+ evil)
|
||||||
(provide 'core-editor)
|
|
||||||
|
|
||||||
;;;; Editing plugins ;;;;;;;;;;;;;;;;;;;
|
|
||||||
(use-package expand-region
|
(use-package expand-region
|
||||||
:commands (er/expand-region er/contract-region))
|
:commands (er/expand-region er/contract-region))
|
||||||
|
|
||||||
|
@ -18,7 +15,7 @@
|
||||||
(setq sp-autowrap-region nil ; let evil-surround handle this
|
(setq sp-autowrap-region nil ; let evil-surround handle this
|
||||||
sp-highlight-pair-overlay nil
|
sp-highlight-pair-overlay nil
|
||||||
sp-show-pair-delay 0
|
sp-show-pair-delay 0
|
||||||
sp-autoescape-string-quote nil)
|
sp-autoescape-string-quote t)
|
||||||
|
|
||||||
;; Handle newlines
|
;; Handle newlines
|
||||||
(sp-pair "{" nil :post-handlers '(("||\n[i]" "RET")))
|
(sp-pair "{" nil :post-handlers '(("||\n[i]" "RET")))
|
||||||
|
@ -36,3 +33,7 @@
|
||||||
(after "yasnippet"
|
(after "yasnippet"
|
||||||
(defadvice yas-expand (before advice-for-yas-expand activate)
|
(defadvice yas-expand (before advice-for-yas-expand activate)
|
||||||
(sp-remove-active-pair-overlay)))))
|
(sp-remove-active-pair-overlay)))))
|
||||||
|
|
||||||
|
|
||||||
|
(provide 'core-editor)
|
||||||
|
;;; core-editor.el ends here
|
||||||
|
|
|
@ -211,10 +211,11 @@
|
||||||
file-name))
|
file-name))
|
||||||
|
|
||||||
(progn ; ex-commands
|
(progn ; ex-commands
|
||||||
(evil-ex-define-cmd "pres[ent]" 'toggle-theme)
|
(evil-ex-define-cmd "pres[ent]" 'toggle-presentation-mode)
|
||||||
|
(evil-ex-define-cmd "togglet[heme]" 'toggle-theme)
|
||||||
(evil-ex-define-cmd "full[scr]" 'toggle-frame-fullscreen)
|
(evil-ex-define-cmd "full[scr]" 'toggle-frame-fullscreen)
|
||||||
(evil-ex-define-cmd "k[ill]" 'kill-this-buffer) ; Kill current buffer
|
(evil-ex-define-cmd "k[ill]" 'kill-this-buffer) ; Kill current buffer
|
||||||
(evil-ex-define-cmd "k[ill]o" 'cleanup-buffers) ; Kill current project buffers
|
(evil-ex-define-cmd "k[ill]o" 'my-cleanup-buffers) ; Kill current project buffers
|
||||||
|
|
||||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
|
||||||
|
@ -232,6 +233,13 @@
|
||||||
(mapc 'kill-buffer (buffer-list)))
|
(mapc 'kill-buffer (buffer-list)))
|
||||||
(delete-other-windows))
|
(delete-other-windows))
|
||||||
|
|
||||||
|
(evil-ex-define-cmd "k[ill]buried" 'my:kill-buried-buffers) ; Kill all buffers (bang = project buffers only)
|
||||||
|
(evil-define-command my:kill-buried-buffers (&optional bang)
|
||||||
|
:repeat nil
|
||||||
|
(interactive "<!>")
|
||||||
|
(mapc 'kill-buffer
|
||||||
|
(my-living-buffer-list (if bang (projectile-project-buffers) (buffer-list)))))
|
||||||
|
|
||||||
(evil-ex-define-cmd "ini" 'my:init-files)
|
(evil-ex-define-cmd "ini" 'my:init-files)
|
||||||
(evil-define-command my:init-files (&optional bang)
|
(evil-define-command my:init-files (&optional bang)
|
||||||
:repeat nil
|
:repeat nil
|
||||||
|
@ -254,12 +262,6 @@
|
||||||
(byte-recompile-directory (concat my-dir ".cask") 0 t)
|
(byte-recompile-directory (concat my-dir ".cask") 0 t)
|
||||||
(byte-recompile-directory my-dir 0 t)))
|
(byte-recompile-directory my-dir 0 t)))
|
||||||
|
|
||||||
(evil-ex-define-cmd "build" 'my:build)
|
|
||||||
(evil-define-command my:build (arguments &optional bang)
|
|
||||||
:repeat t
|
|
||||||
(interactive "<a><!>")
|
|
||||||
(my-build arguments))
|
|
||||||
|
|
||||||
(evil-ex-define-cmd "cd" 'my:cd)
|
(evil-ex-define-cmd "cd" 'my:cd)
|
||||||
(evil-define-command my:cd (dir)
|
(evil-define-command my:cd (dir)
|
||||||
:repeat nil
|
:repeat nil
|
||||||
|
@ -369,4 +371,4 @@ provided."
|
||||||
:repeat nil
|
:repeat nil
|
||||||
(interactive "<r>")
|
(interactive "<r>")
|
||||||
(evil-normal-state)
|
(evil-normal-state)
|
||||||
(narrow-to-region-indirect beg end)))))
|
(my-narrow-to-region-indirect beg end)))))
|
||||||
|
|
|
@ -22,6 +22,8 @@
|
||||||
(blink-cursor-mode 1) ; blink cursor
|
(blink-cursor-mode 1) ; blink cursor
|
||||||
;; (global-hl-line-mode 1) ; highlight line
|
;; (global-hl-line-mode 1) ; highlight line
|
||||||
|
|
||||||
|
(setq linum-format " %3d")
|
||||||
|
|
||||||
;; Multiple cursors across buffers cause a strange redraw delay for
|
;; Multiple cursors across buffers cause a strange redraw delay for
|
||||||
;; some things, like auto-complete or evil-mode's cursor color
|
;; some things, like auto-complete or evil-mode's cursor color
|
||||||
;; switching.
|
;; switching.
|
||||||
|
|
19
core/core.el
19
core/core.el
|
@ -1,5 +1,3 @@
|
||||||
(provide 'core)
|
|
||||||
|
|
||||||
(cd "~") ; instead of /
|
(cd "~") ; instead of /
|
||||||
|
|
||||||
(require 'cask)
|
(require 'cask)
|
||||||
|
@ -18,10 +16,10 @@
|
||||||
(make-directory my-tmp-dir-autosave t))
|
(make-directory my-tmp-dir-autosave t))
|
||||||
|
|
||||||
(setq load-prefer-newer t)
|
(setq load-prefer-newer t)
|
||||||
(setq debug-on-quit *debug-mode)
|
(setq debug-on-quit DEBUG-MODE)
|
||||||
|
|
||||||
(require 'shut-up)
|
(require 'shut-up)
|
||||||
(setq shut-up-ignore *debug-mode)
|
(setq shut-up-ignore DEBUG-MODE)
|
||||||
(when noninteractive (shut-up-silence-emacs)) ; http://youtu.be/Z6woIRLnbmE
|
(when noninteractive (shut-up-silence-emacs)) ; http://youtu.be/Z6woIRLnbmE
|
||||||
|
|
||||||
(shut-up
|
(shut-up
|
||||||
|
@ -48,7 +46,7 @@
|
||||||
|
|
||||||
;;; Show tab characters
|
;;; Show tab characters
|
||||||
;; (global-whitespace-mode 1)
|
;; (global-whitespace-mode 1)
|
||||||
(setq whitespace-style '(face tabs tab-mark) ; needs to be re-set in every buffer
|
(setq whitespace-style '(trailing face tabs tab-mark) ; needs to be re-set in every buffer
|
||||||
whitespace-display-mappings
|
whitespace-display-mappings
|
||||||
'((tab-mark ?\t [?| ?\t] [?\\ ?\t])
|
'((tab-mark ?\t [?| ?\t] [?\\ ?\t])
|
||||||
(newline-mark 10 [36 10]))) ; for whitespace-newline-mode
|
(newline-mark 10 [36 10]))) ; for whitespace-newline-mode
|
||||||
|
@ -147,7 +145,6 @@
|
||||||
(setq-default tab-width 4)
|
(setq-default tab-width 4)
|
||||||
|
|
||||||
(setq delete-trailing-lines nil)
|
(setq delete-trailing-lines nil)
|
||||||
(add-hook 'before-save-hook 'delete-trailing-whitespace)
|
|
||||||
(add-hook 'makefile-mode-hook 'indent-tabs-mode) ; Use normal tabs in makefiles
|
(add-hook 'makefile-mode-hook 'indent-tabs-mode) ; Use normal tabs in makefiles
|
||||||
;; Make sure scratch buffer is always "in a project"
|
;; Make sure scratch buffer is always "in a project"
|
||||||
(add-hook 'find-file-hook
|
(add-hook 'find-file-hook
|
||||||
|
@ -217,7 +214,8 @@ the checking happens for all pairs in auto-minor-mode-alist"
|
||||||
;;;; Utility plugins ;;;;;;;;;;;;;;;;;;
|
;;;; Utility plugins ;;;;;;;;;;;;;;;;;;
|
||||||
(require 'defuns) ; all the defuns
|
(require 'defuns) ; all the defuns
|
||||||
(require 'use-package) ; Package management bootstrap
|
(require 'use-package) ; Package management bootstrap
|
||||||
(setq use-package-verbose *debug-mode)
|
(setq use-package-verbose DEBUG-MODE)
|
||||||
|
;;(require 'hide-mode-line)
|
||||||
|
|
||||||
;; Generate autoloads if necessary
|
;; Generate autoloads if necessary
|
||||||
(defun my-update-autoloads (&optional forcep)
|
(defun my-update-autoloads (&optional forcep)
|
||||||
|
@ -225,7 +223,7 @@ the checking happens for all pairs in auto-minor-mode-alist"
|
||||||
(setq generated-autoload-file (concat my-core-dir "autoloads.el"))
|
(setq generated-autoload-file (concat my-core-dir "autoloads.el"))
|
||||||
(when (or forcep (not (file-exists-p generated-autoload-file)))
|
(when (or forcep (not (file-exists-p generated-autoload-file)))
|
||||||
(if forcep (delete-file generated-autoload-file))
|
(if forcep (delete-file generated-autoload-file))
|
||||||
(update-directory-autoloads my-core-dir my-modules-dir my-personal-dir my-elisp-dir))
|
(update-directory-autoloads my-core-dir my-modules-dir my-elisp-dir))
|
||||||
(require 'autoloads))
|
(require 'autoloads))
|
||||||
|
|
||||||
(my-update-autoloads)
|
(my-update-autoloads)
|
||||||
|
@ -258,6 +256,7 @@ the checking happens for all pairs in auto-minor-mode-alist"
|
||||||
(push '("*Compile-Log*" :height 0.3 :position bottom :noselect t) popwin:special-display-config)
|
(push '("*Compile-Log*" :height 0.3 :position bottom :noselect t) popwin:special-display-config)
|
||||||
(push '(" *undo-tree*" :width 0.3 :position right) popwin:special-display-config)
|
(push '(" *undo-tree*" :width 0.3 :position right) popwin:special-display-config)
|
||||||
(push '("^\\*scratch\\*.*" :regexp t :stick t) popwin:special-display-config)
|
(push '("^\\*scratch\\*.*" :regexp t :stick t) popwin:special-display-config)
|
||||||
|
(push '(image-mode) popwin:special-display-config)
|
||||||
|
|
||||||
(after "evil"
|
(after "evil"
|
||||||
(evil-ex-define-cmd "l[ast]" 'popwin:popup-last-buffer)
|
(evil-ex-define-cmd "l[ast]" 'popwin:popup-last-buffer)
|
||||||
|
@ -279,3 +278,7 @@ the checking happens for all pairs in auto-minor-mode-alist"
|
||||||
(require 'server)
|
(require 'server)
|
||||||
(unless (server-running-p)
|
(unless (server-running-p)
|
||||||
(server-start)))
|
(server-start)))
|
||||||
|
|
||||||
|
|
||||||
|
(provide 'core)
|
||||||
|
;;; core.el ends here
|
||||||
|
|
|
@ -9,6 +9,25 @@
|
||||||
(narrow-to-region start end))
|
(narrow-to-region start end))
|
||||||
(switch-to-buffer buf)))
|
(switch-to-buffer buf)))
|
||||||
|
|
||||||
|
;;;###autoload
|
||||||
|
(defun my--set-region-read-only (begin end)
|
||||||
|
"See http://stackoverflow.com/questions/7410125"
|
||||||
|
(let ((modified (buffer-modified-p)))
|
||||||
|
(add-text-properties begin end '(read-only t))
|
||||||
|
(set-buffer-modified-p modified)))
|
||||||
|
|
||||||
|
;;;###autoload
|
||||||
|
(defun my--set-region-writeable (begin end)
|
||||||
|
"See http://stackoverflow.com/questions/7410125"
|
||||||
|
(let ((modified (buffer-modified-p))
|
||||||
|
(inhibit-read-only t))
|
||||||
|
(remove-text-properties begin end '(read-only t))
|
||||||
|
(set-buffer-modified-p modified)))
|
||||||
|
|
||||||
|
;;;###autoload
|
||||||
|
(defun my-living-buffer-list (&optional buffer-list)
|
||||||
|
(-remove 'get-buffer-window (or buffer-list (buffer-list))))
|
||||||
|
|
||||||
|
|
||||||
;; Killing Buffers ;;;;;;;;;;;;;;;;;;;;;
|
;; Killing Buffers ;;;;;;;;;;;;;;;;;;;;;
|
||||||
;; Buffer defuns
|
;; Buffer defuns
|
||||||
|
@ -18,6 +37,7 @@
|
||||||
"^\\*Compile-Log\\*$"
|
"^\\*Compile-Log\\*$"
|
||||||
"^\\*Ediff.*\\*$"
|
"^\\*Ediff.*\\*$"
|
||||||
help-mode
|
help-mode
|
||||||
|
image-mode
|
||||||
dired-mode
|
dired-mode
|
||||||
reb-mode)
|
reb-mode)
|
||||||
"A list of buffer name regexps or major-mode symbols. If buried buffers
|
"A list of buffer name regexps or major-mode symbols. If buried buffers
|
||||||
|
|
|
@ -66,7 +66,7 @@ whitespace as possible, or just one char if that's not possible."
|
||||||
(if (string-match "\\w*\\(\\s-+\\)$"
|
(if (string-match "\\w*\\(\\s-+\\)$"
|
||||||
(buffer-substring-no-properties (- p movement) p))
|
(buffer-substring-no-properties (- p movement) p))
|
||||||
(backward-delete-char (- (match-end 1) (match-beginning 1)))
|
(backward-delete-char (- (match-end 1) (match-beginning 1)))
|
||||||
(call-interactively 'backward-delete-char-untabify)))))))
|
(backward-delete-char-untabify 1)))))))
|
||||||
|
|
||||||
;;;###autoload
|
;;;###autoload
|
||||||
(defun my.dumb-indent ()
|
(defun my.dumb-indent ()
|
||||||
|
|
252
elisp/hide-mode-line.el
Normal file
252
elisp/hide-mode-line.el
Normal file
|
@ -0,0 +1,252 @@
|
||||||
|
;;; hide-mode-line.el --- Hides the mode line when there is only one frame and
|
||||||
|
;;; one buffer.
|
||||||
|
;;
|
||||||
|
;; Filename: hide-mode-line.el
|
||||||
|
;; Description: Hides the mode line when there is only one frame and one
|
||||||
|
;; buffer.
|
||||||
|
;; Author: Darren Embry
|
||||||
|
;; Copyright (c) 2008, 2011 Darren Embry
|
||||||
|
;; URL: http://webonastick.com/emacs-lisp/hide-mode-line.el
|
||||||
|
;; Keywords: mode line, writeroom
|
||||||
|
;; Compatibility: GNU Emacs 22.x, GNU Emacs 23.x
|
||||||
|
;;
|
||||||
|
;; Features that might be required by this library:
|
||||||
|
;;
|
||||||
|
;; None
|
||||||
|
;;
|
||||||
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
;;
|
||||||
|
;; This program is free software; you can redistribute it and/or modify it
|
||||||
|
;; under the terms of the GNU General Public License as published by the Free
|
||||||
|
;; Software Foundation; either version 2, or (at your option) any later
|
||||||
|
;; version.
|
||||||
|
;;
|
||||||
|
;; This program is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
;; ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
;; FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||||
|
;; more details.
|
||||||
|
;;
|
||||||
|
;; You should have received a copy of the GNU General Public License along
|
||||||
|
;; with this program; see the file COPYING. If not, write to the Free
|
||||||
|
;; Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
|
||||||
|
;; 02110-1301, USA.
|
||||||
|
;;
|
||||||
|
;; GPL 2 is available here:
|
||||||
|
;; http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
|
||||||
|
;;
|
||||||
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
;;
|
||||||
|
;;; Commentary:
|
||||||
|
;;
|
||||||
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
;;
|
||||||
|
;; Basically, automatically hides the mode-line if all of the following
|
||||||
|
;; are true:
|
||||||
|
;; - there is only one frame.
|
||||||
|
;; - there is only one window displayed in that frame.
|
||||||
|
;; - there is no minibuffer.
|
||||||
|
;; - the hide-mode-line variable is set.
|
||||||
|
;; and automatically shows the mode-line when any of the above isn't true.
|
||||||
|
;;
|
||||||
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
;;
|
||||||
|
;; HOW TO USE
|
||||||
|
;;
|
||||||
|
;; Just put this file in your Emacs library directory and add this line to
|
||||||
|
;; your ~/.emacs:
|
||||||
|
;;
|
||||||
|
;; (autoload 'hide-mode-line "hide-mode-line" nil t)
|
||||||
|
;;
|
||||||
|
;; and use M-x hide-mode-line to toggle. Setting the hide-mode-line variable
|
||||||
|
;; won't automatically update the buffers' mode-line visibilities.
|
||||||
|
;;
|
||||||
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
;;
|
||||||
|
;; MYSTERY BUG: every once in a while a few lines of text will be hidden
|
||||||
|
;; for some reason until you do a redraw-display. See if you can
|
||||||
|
;; reproduce this in a reliable fashion!
|
||||||
|
;;
|
||||||
|
;; MYSTERY BUG: not specific to this module, but... load linum, run M-x
|
||||||
|
;; linum-mode, then (setq mode-line-format nil) this triggers display
|
||||||
|
;; problems more reproducibly: sometimes the last line in the buffer
|
||||||
|
;; doesn't have the line number show up; and sometimes the cursor line
|
||||||
|
;; or the one after it doesn't have the line number show up. May be
|
||||||
|
;; related to above bug.
|
||||||
|
;;
|
||||||
|
;; CAVEAT: this code does not instruct your window system to make the
|
||||||
|
;; window full-screen.
|
||||||
|
;;
|
||||||
|
;; TODO: briefly show modeline for (example) 2 seconds when the following
|
||||||
|
;; happens:
|
||||||
|
;; - hide-mode-line is about to be activated
|
||||||
|
;; - you switch to another buffer
|
||||||
|
;;
|
||||||
|
;; TODO: Emacs 21 does not implement window-tree.
|
||||||
|
;;
|
||||||
|
;; BUG: if the hide-mode-line-window-configuration-change-hook function
|
||||||
|
;; displays a (message "moo") before it does its work, the screen is blanked
|
||||||
|
;; when you resize the window until you hit C-l.
|
||||||
|
;;
|
||||||
|
;; BUG: if a frame is closed and there is only one frame remaining, and
|
||||||
|
;; there is only one buffer in that window, mode lines are not hidden.
|
||||||
|
;;
|
||||||
|
;; SEE ALSO:
|
||||||
|
;; http://www.emacswiki.org/cgi-bin/wiki/LineNumbers
|
||||||
|
;; http://www.emacswiki.org/cgi-bin/wiki/WriteRoom
|
||||||
|
;;
|
||||||
|
;;=============================================================================
|
||||||
|
|
||||||
|
;;; History:
|
||||||
|
;;
|
||||||
|
;; 2008-01-31 r3090 initial version
|
||||||
|
;; 2008-02-01 r3097 explicitly defint default for
|
||||||
|
;; hide-mode-line-saved-mode-line-format
|
||||||
|
;; 2008-02-01 r3100 implement hide-mode-line-unaffected-by-minibuffer
|
||||||
|
;; 2008-02-01 r3101 more robust handling of case where mode-line-format is
|
||||||
|
;; nil before this code runs
|
||||||
|
;; 2008-02-01 r3106 disable in emacs21: window-tree function not available
|
||||||
|
;; 2011-03-08 r5835 fix emacsw32 bug
|
||||||
|
|
||||||
|
;;; Code:
|
||||||
|
|
||||||
|
(defvar hide-mode-line-saved-mode-line-format nil)
|
||||||
|
(make-variable-buffer-local 'hide-mode-line-saved-mode-line-format)
|
||||||
|
; TODO: add a hook of some kind when setting mode-line-format.
|
||||||
|
|
||||||
|
(defvar hide-mode-line nil)
|
||||||
|
; TODO: add a hook to run hide-mode-line-update when setting hide-mode-line.
|
||||||
|
; [or just use M-x hide-mode-line for now]
|
||||||
|
|
||||||
|
(defcustom hide-mode-line-unaffected-by-minibuffer nil
|
||||||
|
"If non-nil, a minibuffer by itself does not un-hide the modeline."
|
||||||
|
:group 'hide-mode-line
|
||||||
|
:type 'boolean)
|
||||||
|
|
||||||
|
(defun there-is-only-one-frame ()
|
||||||
|
"Return non-nil if there is only one frame, nil otherwise."
|
||||||
|
(let ((frames (frames-on-display-list)))
|
||||||
|
(if (= (length frames) 1)
|
||||||
|
(car frames)
|
||||||
|
nil)))
|
||||||
|
(defun there-is-only-one-window-in (frame)
|
||||||
|
"Return non-nil if there is only one window in the specified FRAME."
|
||||||
|
(let ((root (car (window-tree frame)))) ;FIXME: does not work with emacs21
|
||||||
|
(not (listp root))))
|
||||||
|
(defun there-is-only-one-frame-and-one-window ()
|
||||||
|
"Return non-nil if there is only one frame and one window."
|
||||||
|
(let ((the-only-frame (there-is-only-one-frame)))
|
||||||
|
(and the-only-frame
|
||||||
|
(or hide-mode-line-unaffected-by-minibuffer
|
||||||
|
(= (minibuffer-depth) 0))
|
||||||
|
(there-is-only-one-window-in the-only-frame))))
|
||||||
|
|
||||||
|
(defun hide-mode-line-in (buffer)
|
||||||
|
"Hide the specified BUFFER's mode line.
|
||||||
|
|
||||||
|
Saves the buffer's previous `mode-line-format' value if it's not
|
||||||
|
already hidden."
|
||||||
|
(with-current-buffer buffer
|
||||||
|
(if (and (not hide-mode-line-saved-mode-line-format)
|
||||||
|
;; minibuffers don't have modelines :p
|
||||||
|
(not (minibufferp buffer)))
|
||||||
|
(progn (setq hide-mode-line-saved-mode-line-format
|
||||||
|
(list mode-line-format))
|
||||||
|
(setq mode-line-format nil)
|
||||||
|
;; bug workaround
|
||||||
|
(redraw-modeline)))))
|
||||||
|
(defun show-mode-line-in (buffer)
|
||||||
|
"If the specified BUFFER's mode line is hidden, un-hides it.
|
||||||
|
|
||||||
|
Restores the buffer's `mode-line-format' from what was saved when
|
||||||
|
hide-mode-line-in was called."
|
||||||
|
(with-current-buffer buffer
|
||||||
|
(if (and hide-mode-line-saved-mode-line-format
|
||||||
|
;; minibuffers don't have modelines :p
|
||||||
|
(not (minibufferp buffer)))
|
||||||
|
(progn (setq mode-line-format
|
||||||
|
(car hide-mode-line-saved-mode-line-format))
|
||||||
|
(setq hide-mode-line-saved-mode-line-format nil)))))
|
||||||
|
|
||||||
|
(defun hide-mode-lines ()
|
||||||
|
"Hide all buffers' mode lines using hide-mode-line-in."
|
||||||
|
(mapcar 'hide-mode-line-in (buffer-list)))
|
||||||
|
(defun show-mode-lines ()
|
||||||
|
"Show all buffers' mode lines using show-mode-line-in."
|
||||||
|
(mapcar 'show-mode-line-in (buffer-list))
|
||||||
|
(if (equal window-system 'w32)
|
||||||
|
;; bug workaround
|
||||||
|
(redraw-display)))
|
||||||
|
|
||||||
|
(defun hide-mode-line-update ()
|
||||||
|
"Update the state of all buffers' mode lines.
|
||||||
|
|
||||||
|
This uses hide-mode-lines or show-mode-lines."
|
||||||
|
(if hide-mode-line
|
||||||
|
(if (there-is-only-one-frame-and-one-window)
|
||||||
|
(hide-mode-lines)
|
||||||
|
(show-mode-lines))
|
||||||
|
(show-mode-lines)))
|
||||||
|
|
||||||
|
(defun hide-mode-line-minibuffer-setup-hook ()
|
||||||
|
"Internal function."
|
||||||
|
(hide-mode-line-update))
|
||||||
|
(defun hide-mode-line-minibuffer-exit-hook ()
|
||||||
|
"Internal function."
|
||||||
|
(hide-mode-line-update))
|
||||||
|
(defun hide-mode-line-make-frame-function (new-frame)
|
||||||
|
"Internal function."
|
||||||
|
(hide-mode-line-update))
|
||||||
|
(defun hide-mode-line-delete-frame-function (dead-frame-walking)
|
||||||
|
"Internal function."
|
||||||
|
(hide-mode-line-update))
|
||||||
|
(defun hide-mode-line-window-configuration-change-hook ()
|
||||||
|
"Internal function."
|
||||||
|
(hide-mode-line-update))
|
||||||
|
|
||||||
|
(defun hide-mode-line-add-hooks ()
|
||||||
|
"Internal function."
|
||||||
|
(interactive)
|
||||||
|
(add-hook 'minibuffer-setup-hook
|
||||||
|
'hide-mode-line-minibuffer-setup-hook)
|
||||||
|
(add-hook 'minibuffer-exit-hook
|
||||||
|
'hide-mode-line-minibuffer-exit-hook)
|
||||||
|
(add-hook 'after-make-frame-functions
|
||||||
|
'hide-mode-line-make-frame-function)
|
||||||
|
(add-hook 'delete-frame-functions
|
||||||
|
'hide-mode-line-delete-frame-function)
|
||||||
|
(add-hook 'window-configuration-change-hook
|
||||||
|
'hide-mode-line-window-configuration-change-hook))
|
||||||
|
|
||||||
|
(defun hide-mode-line-remove-hooks ()
|
||||||
|
"Internal function."
|
||||||
|
(interactive)
|
||||||
|
(remove-hook 'minibuffer-setup-hook
|
||||||
|
'hide-mode-line-minibuffer-setup-hook)
|
||||||
|
(remove-hook 'minibuffer-exit-hook
|
||||||
|
'hide-mode-line-minibuffer-exit-hook)
|
||||||
|
(remove-hook 'after-make-frame-functions
|
||||||
|
'hide-mode-line-make-frame-function)
|
||||||
|
(remove-hook 'delete-frame-functions
|
||||||
|
'hide-mode-line-delete-frame-function)
|
||||||
|
(remove-hook 'window-configuration-change-hook
|
||||||
|
'hide-mode-line-window-configuration-change-hook))
|
||||||
|
|
||||||
|
;;;###autoload
|
||||||
|
(defun hide-mode-line ()
|
||||||
|
"Toggle the hide-mode-line functionality."
|
||||||
|
(interactive)
|
||||||
|
(if (functionp 'window-tree)
|
||||||
|
(progn
|
||||||
|
(if hide-mode-line
|
||||||
|
(hide-mode-line-remove-hooks)
|
||||||
|
(hide-mode-line-add-hooks))
|
||||||
|
(setq hide-mode-line (not hide-mode-line))
|
||||||
|
(hide-mode-line-update))
|
||||||
|
(error (concat "Your Emacs does not provide the window-tree function. "
|
||||||
|
"Please upgrade to GNU Emacs 22 "
|
||||||
|
"or to some other version of Emacs that provides it."))))
|
||||||
|
|
||||||
|
(provide 'hide-mode-line)
|
||||||
|
|
||||||
|
;;; hide-mode-line.el ends here
|
||||||
|
|
14
init.el
14
init.el
|
@ -17,13 +17,12 @@
|
||||||
;;
|
;;
|
||||||
;;; Code:
|
;;; Code:
|
||||||
|
|
||||||
(defconst *debug-mode nil)
|
(defconst DEBUG-MODE nil)
|
||||||
|
|
||||||
(defconst my-dir user-emacs-directory)
|
(defconst my-dir user-emacs-directory)
|
||||||
(defconst my-core-dir (concat my-dir "core/"))
|
(defconst my-core-dir (concat my-dir "core/"))
|
||||||
(defconst my-modules-dir (concat my-dir "modules/"))
|
(defconst my-modules-dir (concat my-dir "init/"))
|
||||||
(defconst my-personal-dir (concat my-dir "my/"))
|
(defconst my-elisp-dir (concat my-dir "elisp/"))
|
||||||
(defconst my-elisp-dir (concat my-dir "lib/"))
|
|
||||||
(defconst my-themes-dir (concat my-dir "themes/"))
|
(defconst my-themes-dir (concat my-dir "themes/"))
|
||||||
(defconst my-snippets-dir (concat my-dir "snippets/"))
|
(defconst my-snippets-dir (concat my-dir "snippets/"))
|
||||||
(defconst my-tmp-dir (concat my-dir ".cache/"))
|
(defconst my-tmp-dir (concat my-dir ".cache/"))
|
||||||
|
@ -34,12 +33,11 @@
|
||||||
(defconst *default-font "Ubuntu Mono")
|
(defconst *default-font "Ubuntu Mono")
|
||||||
(defconst *default-font-size (if (eq system-name "ganymede.local") 12 14))
|
(defconst *default-font-size (if (eq system-name "ganymede.local") 12 14))
|
||||||
|
|
||||||
(defconst *presentation-font *default-font)
|
(defconst *presentation-font "Panic Sans")
|
||||||
(defconst *presentation-font-size 18)
|
(defconst *presentation-font-size 22)
|
||||||
|
|
||||||
(add-to-list 'load-path my-core-dir)
|
(add-to-list 'load-path my-core-dir)
|
||||||
(add-to-list 'load-path my-modules-dir)
|
(add-to-list 'load-path my-modules-dir)
|
||||||
(add-to-list 'load-path my-personal-dir)
|
|
||||||
|
|
||||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
;; Just the... bear necessities...
|
;; Just the... bear necessities...
|
||||||
|
@ -51,6 +49,7 @@
|
||||||
init-auto-insert ; for the lazy typis
|
init-auto-insert ; for the lazy typis
|
||||||
init-company ; see above
|
init-company ; see above
|
||||||
init-cc ; C/C++/Obj-C madness
|
init-cc ; C/C++/Obj-C madness
|
||||||
|
;; init-d ; D - It's C, but better!
|
||||||
;; init-cscope
|
;; init-cscope
|
||||||
;; init-csharp
|
;; init-csharp
|
||||||
init-dev ; general dev tools/settings
|
init-dev ; general dev tools/settings
|
||||||
|
@ -77,6 +76,7 @@
|
||||||
init-swift ; ever wanted to name a variable an emoticon?
|
init-swift ; ever wanted to name a variable an emoticon?
|
||||||
init-text ; I got nothing...
|
init-text ; I got nothing...
|
||||||
init-tmux
|
init-tmux
|
||||||
|
;; init-rust
|
||||||
init-web
|
init-web
|
||||||
init-yasnippet ; type for me
|
init-yasnippet ; type for me
|
||||||
|
|
||||||
|
|
|
@ -34,7 +34,7 @@
|
||||||
;; ;; ;; Ruby
|
;; ;; ;; Ruby
|
||||||
(template "/spec_helper\\.rb$" "%helper%" 'rspec-mode t)
|
(template "/spec_helper\\.rb$" "%helper%" 'rspec-mode t)
|
||||||
(template "_spec\\.rb$" "%%" 'rspec-mode t)
|
(template "_spec\\.rb$" "%%" 'rspec-mode t)
|
||||||
(template "/\\.rspec$" "%.rspec%" 'rspec-mode t)
|
(template "/\\.rspec$" "%.rspec%" 'rspec-mode)
|
||||||
(template "/Rakefile$" "%Rakefile%" 'ruby-mode t)
|
(template "/Rakefile$" "%Rakefile%" 'ruby-mode t)
|
||||||
(template "/Gemfile$" "%Gemfile%" 'ruby-mode t)
|
(template "/Gemfile$" "%Gemfile%" 'ruby-mode t)
|
||||||
;; (template "\\.gemspec$" "%.gemspec%" 'ruby-mode t)
|
;; (template "\\.gemspec$" "%.gemspec%" 'ruby-mode t)
|
6
init/init-d.el
Normal file
6
init/init-d.el
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
(use-package d-mode
|
||||||
|
:disabled t
|
||||||
|
:modes "\\.d$")
|
||||||
|
|
||||||
|
(provide 'init-d)
|
||||||
|
;;; init-d.el ends here
|
|
@ -14,8 +14,7 @@
|
||||||
(progn
|
(progn
|
||||||
(add-hook 'emacs-lisp-mode-hook 'rainbow-delimiters-mode)
|
(add-hook 'emacs-lisp-mode-hook 'rainbow-delimiters-mode)
|
||||||
(add-hook 'js2-mode-hook 'rainbow-delimiters-mode)
|
(add-hook 'js2-mode-hook 'rainbow-delimiters-mode)
|
||||||
(add-hook 'scss-mode-hook 'rainbow-delimiters-mode)
|
(add-hook 'scss-mode-hook 'rainbow-delimiters-mode)))
|
||||||
(add-hook 'ruby-mode-hook 'rainbow-delimiters-mode)))
|
|
||||||
|
|
||||||
;;; Config modes
|
;;; Config modes
|
||||||
(use-package yaml-mode
|
(use-package yaml-mode
|
||||||
|
@ -33,10 +32,14 @@
|
||||||
(after "evil" (evil-ex-define-cmd "ref[actor]" 'emr-show-refactor-menu))))
|
(after "evil" (evil-ex-define-cmd "ref[actor]" 'emr-show-refactor-menu))))
|
||||||
|
|
||||||
;; todo's
|
;; todo's
|
||||||
(use-package hl-todo :init (add-hook 'find-file-hook 'hl-todo-mode))
|
(use-package hl-todo
|
||||||
|
:init (add-hook! 'after-init-hook (add-hook 'find-file-hook 'hl-todo-mode)))
|
||||||
(use-package helm-todo :commands my:helm-todo-search)
|
(use-package helm-todo :commands my:helm-todo-search)
|
||||||
(evil-ex-define-cmd "todo" 'my:helm-todo)
|
(evil-ex-define-cmd "todo" 'my:helm-todo)
|
||||||
|
|
||||||
|
;; (require 'evil-snipe)
|
||||||
|
;; (global-evil-snipe-mode 1)
|
||||||
|
|
||||||
|
|
||||||
(provide 'init-dev)
|
(provide 'init-dev)
|
||||||
;;; init-dev.el ends here
|
;;; init-dev.el ends here
|
|
@ -17,35 +17,38 @@
|
||||||
(evil-ex-define-cmd "a" 'helm-projectile-find-other-file)
|
(evil-ex-define-cmd "a" 'helm-projectile-find-other-file)
|
||||||
(evil-ex-define-cmd "proj[ect]" 'helm-projectile-switch-project)
|
(evil-ex-define-cmd "proj[ect]" 'helm-projectile-switch-project)
|
||||||
(evil-ex-define-cmd "ag" 'my:helm-ag-search)
|
(evil-ex-define-cmd "ag" 'my:helm-ag-search)
|
||||||
|
(evil-ex-define-cmd "agr" 'my:helm-ag-regex-search)
|
||||||
(evil-ex-define-cmd "ag[cw]d" 'my:helm-ag-search-cwd)
|
(evil-ex-define-cmd "ag[cw]d" 'my:helm-ag-search-cwd)
|
||||||
|
(evil-ex-define-cmd "agr[cw]d" 'my:helm-ag-regex-search-cwd)
|
||||||
(evil-ex-define-cmd "sw[oop]" 'my:helm-swoop)
|
(evil-ex-define-cmd "sw[oop]" 'my:helm-swoop)
|
||||||
|
|
||||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
|
||||||
(use-package helm-ag
|
(use-package helm-ag
|
||||||
:commands (my:helm-ag-search my:helm-ag-search-cwd helm-ag helm-do-ag my:helm-ag-search)
|
:commands (my:helm-ag-search
|
||||||
|
my:helm-ag-search-cwd
|
||||||
|
my:helm-ag-regex-search
|
||||||
|
my:helm-ag-regex-search-cwd
|
||||||
|
helm-ag helm-do-ag)
|
||||||
:config
|
:config
|
||||||
(progn
|
(progn
|
||||||
;; Ex-mode interface for `helm-ag'. If `bang', then `search' is interpreted as
|
;; Ex-mode interface for `helm-ag'. If `bang', then `search' is interpreted as
|
||||||
;; regexp.
|
;; regexp.
|
||||||
(evil-define-operator my:helm-ag-search (beg end &optional bang search pwd-p)
|
(evil-define-operator my:helm-ag-search (beg end &optional search hidden-files-p pwd-p regex-p)
|
||||||
:motion nil
|
|
||||||
:move-point nil
|
|
||||||
:type inclusive
|
:type inclusive
|
||||||
:repeat nil
|
:repeat nil
|
||||||
(interactive "<r><!><a>")
|
(interactive "<r><a><!>")
|
||||||
(let* ((helm-ag-default-directory (my--project-root pwd-p))
|
(let* ((helm-ag-default-directory (my--project-root pwd-p))
|
||||||
(header-name (format "Search in %s" helm-ag-default-directory))
|
(helm-ag-command-option (concat (unless regex-p "-Q ")
|
||||||
|
(if hidden-files-p "--hidden ")))
|
||||||
(input "")
|
(input "")
|
||||||
(helm-ag--last-input ""))
|
(header-name (format "Search in %s" helm-ag-default-directory)))
|
||||||
(if search
|
(if search
|
||||||
(progn
|
(progn
|
||||||
(helm-attrset 'search-this-file nil helm-ag-source)
|
(helm-attrset 'search-this-file nil helm-ag-source)
|
||||||
(setq helm-ag--last-query
|
(setq helm-ag--last-query search))
|
||||||
(concat "ag " (unless bang "-Q") " --nogroup --nocolor -- "
|
|
||||||
(shell-quote-argument search))))
|
|
||||||
(helm-ag-save-current-context)
|
(helm-ag-save-current-context)
|
||||||
(if (and beg end)
|
(if (and beg end (/= beg (1- end)))
|
||||||
(setq input (buffer-substring-no-properties beg end))))
|
(setq input (buffer-substring-no-properties beg end))))
|
||||||
(helm-attrset 'name header-name helm-ag-source)
|
(helm-attrset 'name header-name helm-ag-source)
|
||||||
(helm :sources (if search (helm-ag--select-source) '(helm-source-do-ag))
|
(helm :sources (if search (helm-ag--select-source) '(helm-source-do-ag))
|
||||||
|
@ -53,15 +56,25 @@
|
||||||
:input input
|
:input input
|
||||||
:prompt helm-global-prompt)))
|
:prompt helm-global-prompt)))
|
||||||
|
|
||||||
;; Ex-mode interface for `helm-do-ag'. If `bang', then `search' is interpreted
|
(evil-define-operator my:helm-ag-regex-search (beg end &optional bang search)
|
||||||
;; as regexp
|
|
||||||
(evil-define-operator my:helm-ag-search-cwd (beg end &optional bang search)
|
|
||||||
:motion nil
|
|
||||||
:move-point nil
|
|
||||||
:type inclusive
|
:type inclusive
|
||||||
:repeat nil
|
:repeat nil
|
||||||
(interactive "<r><!><a>")
|
(interactive "<r><!><a>")
|
||||||
(my:helm-ag-search beg end search bang t))))
|
(my:helm-ag-search beg end search bang nil t))
|
||||||
|
|
||||||
|
;; Ex-mode interface for `helm-do-ag'. If `bang', then `search' is interpreted
|
||||||
|
;; as regexp
|
||||||
|
(evil-define-operator my:helm-ag-search-cwd (beg end &optional search bang)
|
||||||
|
:type inclusive
|
||||||
|
:repeat nil
|
||||||
|
(interactive "<r><a><!>")
|
||||||
|
(my:helm-ag-search beg end search bang t nil))))
|
||||||
|
|
||||||
|
(evil-define-operator my:helm-ag-regex-search-cwd (beg end &optional search bang)
|
||||||
|
:type inclusive
|
||||||
|
:repeat nil
|
||||||
|
(interactive "<r><a><!>")
|
||||||
|
(my:helm-ag-search beg end search bang t t))))
|
||||||
|
|
||||||
(use-package helm-css-scss ; https://github.com/ShingoFukuyama/helm-css-scss
|
(use-package helm-css-scss ; https://github.com/ShingoFukuyama/helm-css-scss
|
||||||
:commands (helm-css-scss
|
:commands (helm-css-scss
|
|
@ -1,5 +1,3 @@
|
||||||
(provide 'init-java)
|
|
||||||
|
|
||||||
(use-package eclim
|
(use-package eclim
|
||||||
:commands (eclim-mode global-eclim-mode)
|
:commands (eclim-mode global-eclim-mode)
|
||||||
:init
|
:init
|
||||||
|
@ -37,7 +35,9 @@
|
||||||
:mode "\\.gradle$"
|
:mode "\\.gradle$"
|
||||||
:config (after "auto-complete" (add-to-list 'ac-modes 'groovy-mode)))
|
:config (after "auto-complete" (add-to-list 'ac-modes 'groovy-mode)))
|
||||||
|
|
||||||
(use-package java-mode
|
|
||||||
:config
|
|
||||||
(sp-with-modes '(java-mode)
|
(sp-with-modes '(java-mode)
|
||||||
(sp-local-pair "/**" "*/" :post-handlers '(("* ||\n[i]" "RET")))))
|
(sp-local-pair "/**" "*/" :post-handlers '(("* ||\n[i]" "RET"))))
|
||||||
|
|
||||||
|
|
||||||
|
(provide 'init-java)
|
||||||
|
;;; init-java.el ends here
|
295
init/init-org.el
Normal file
295
init/init-org.el
Normal file
|
@ -0,0 +1,295 @@
|
||||||
|
(use-package org
|
||||||
|
:mode (("\\.org$" . org-mode)
|
||||||
|
("\\.opml$" . org-mode))
|
||||||
|
:init
|
||||||
|
(progn
|
||||||
|
(add-hook 'org-mode-hook 'enable-tab-width-2)
|
||||||
|
(add-hook 'org-mode-hook 'evil-org-mode)
|
||||||
|
(add-hook 'org-mode-hook 'turn-on-auto-fill)
|
||||||
|
|
||||||
|
;; Reset evil to ensure evil-org-mode's maps work
|
||||||
|
(add-hook! 'org-mode-hook (evil-mode nil) (evil-mode 1))
|
||||||
|
|
||||||
|
(setq org-directory "~/Dropbox/notes"
|
||||||
|
org-default-notes-file "~/Dropbox/notes/notes.org"
|
||||||
|
org-mobile-inbox-for-pull "~/Dropbox/notes/notes.org"
|
||||||
|
org-mobile-directory "~/Dropbox/Apps/MobileOrg"
|
||||||
|
org-agenda-files '("~/Dropbox/notes"
|
||||||
|
"~/Dropbox/notes/projects"
|
||||||
|
"~/Dropbox/notes/projects/dev"
|
||||||
|
"~/Dropbox/notes/projects/gamedev"
|
||||||
|
"~/Dropbox/notes/projects/webdev")
|
||||||
|
org-archive-location "~/Dropbox/notes/archive/%s.org::"
|
||||||
|
org-confirm-babel-evaluate nil
|
||||||
|
org-src-tab-acts-natively t)
|
||||||
|
|
||||||
|
(setq org-completion-use-ido t
|
||||||
|
org-hidden-keywords '(title)
|
||||||
|
org-special-ctrl-a/e t
|
||||||
|
org-hide-leading-stars t
|
||||||
|
org-hierarchical-todo-statistics t
|
||||||
|
org-checkbox-hierarchical-statistics t
|
||||||
|
org-log-done t
|
||||||
|
org-todo-keywords
|
||||||
|
'((sequence "TODO(t)" "NEXT(n)" "|" "DONE(d)")
|
||||||
|
(sequence "DOING(s)" "PENDING(p)")
|
||||||
|
(sequence "|" "CANCELLED(c)")))
|
||||||
|
|
||||||
|
(setq org-src-fontify-natively t)
|
||||||
|
(setq org-blank-before-new-entry '((heading . auto) (plain-list-item . auto)))
|
||||||
|
(setq org-export-backends '(ascii html latex md opml))
|
||||||
|
|
||||||
|
(setq org-tag-alist '(("@home" . ?h)
|
||||||
|
("@daily" . ?d)
|
||||||
|
("@invoices" . ?i)
|
||||||
|
("@personal" . ?p)
|
||||||
|
("@learning" . ?l)
|
||||||
|
("@dev" . ?v)
|
||||||
|
("@writing" . ?w)
|
||||||
|
("@projects" . ?r)))
|
||||||
|
|
||||||
|
(setq org-capture-templates
|
||||||
|
'(("t" "TODO" entry (file+headline "~/Dropbox/notes/todo.org" "Inbox") "* TODO %? %u\n%i")
|
||||||
|
("T" "TODO Someday" entry (file+headline "~/Dropbox/notes/todo.org" "Someday") "* TODO %? %u :someday:\n%i")
|
||||||
|
("c" "Changelog" entry (file+headline (concat (projectile-project-root) "/CHANGELOG.org") "Unsorted") "** %u %? :unsorted:\n%i" :prepend t)
|
||||||
|
("n" "Note" entry (file org-default-notes-file) "** %T %?\n%i" :prepend t)
|
||||||
|
("j" "Journal" entry (file+datetree "~/Dropbox/notes/journal.org") "** %?%^g\nAdded: %U\n%i")
|
||||||
|
("a" "Trivia" entry (file "~/Dropbox/notes/trivia.org") "* %u %?\n%i" :prepend t)
|
||||||
|
("s" "Writing Scraps" entry (file "~/Dropbox/notes/writing.org") "* %u %?\n%i" :prepend t)
|
||||||
|
("v" "Vocab" entry (file "~/Dropbox/notes/vocab.org") "* %?\n%i" :prepend t)
|
||||||
|
("e" "Excerpt" entry (file "~/Dropbox/notes/excerpts.org") "* %u %?\n%i" :prepend t)))
|
||||||
|
|
||||||
|
(setq org-agenda-custom-commands
|
||||||
|
'(("x" agenda)
|
||||||
|
("y" agenda*)
|
||||||
|
("w" todo "WAITING")
|
||||||
|
("W" todo-tree "WAITING")
|
||||||
|
("to" todo)
|
||||||
|
("tp" tags "+Projects")
|
||||||
|
("tg" tags-todo "+gamedev")
|
||||||
|
("tw" tags-tree "+webdev"))))
|
||||||
|
:config
|
||||||
|
(progn
|
||||||
|
(message "Org-mode loaded")
|
||||||
|
|
||||||
|
(push '("\\*Org.+\\*" :regexp t :width 0.3 :position bottom) popwin:special-display-config)
|
||||||
|
|
||||||
|
(org-babel-do-load-languages 'org-babel-load-languages
|
||||||
|
'((python . t)
|
||||||
|
(ruby . t)
|
||||||
|
(sh . t)
|
||||||
|
(emacs-lisp . t)
|
||||||
|
(matlab . t)
|
||||||
|
(latex . t)))
|
||||||
|
|
||||||
|
;; Remove occur highlights on ESC in normal mode
|
||||||
|
(defadvice evil-force-normal-state (before evil-esc-org-remove-highlights activate)
|
||||||
|
(org-remove-occur-highlights))
|
||||||
|
|
||||||
|
;; Auto update cookies
|
||||||
|
(defun my--org-mode-update-cookies ()
|
||||||
|
(when (eq major-mode 'org-mode) (org-update-parent-todo-statistics) (org-update-statistics-cookies nil)))
|
||||||
|
(add-hook 'evil-normal-state-entry-hook 'my--org-mode-update-cookies)
|
||||||
|
|
||||||
|
(define-minor-mode evil-org-mode
|
||||||
|
:init-value nil
|
||||||
|
:lighter " EvilOrg"
|
||||||
|
:keymap (make-sparse-keymap) ; defines evil-org-mode-map
|
||||||
|
:group 'evil-org)
|
||||||
|
|
||||||
|
;; (use-package org-present
|
||||||
|
;; :config
|
||||||
|
;; (progn
|
||||||
|
;; (defun my--org-present-mode-on ()
|
||||||
|
;; (org-present-big)
|
||||||
|
;; (org-display-inline-images)
|
||||||
|
;; (org-present-hide-cursor)
|
||||||
|
;; (org-present-read-only))
|
||||||
|
|
||||||
|
;; (defun my--org-present-mode-off ()
|
||||||
|
;; (org-present-small)
|
||||||
|
;; (org-remove-inline-images)
|
||||||
|
;; (org-present-show-cursor)
|
||||||
|
;; (org-present-read-write))
|
||||||
|
|
||||||
|
;; (add-hook 'org-present-mode-hook 'my--org-present-mode-on)
|
||||||
|
;; (add-hook 'org-present-mode-quit-hook 'my--org-present-mode-off)))
|
||||||
|
|
||||||
|
(progn ; opml support
|
||||||
|
(defun set-buffer-file-format-to-opml ()
|
||||||
|
(when (string-match "\.opml$" (buffer-file-name))
|
||||||
|
(setq buffer-file-format '(opml))))
|
||||||
|
|
||||||
|
(defun my--opml-encode (begin end buffer)
|
||||||
|
"Export Org mode buffer to OPML."
|
||||||
|
(let ((org-export-show-temporary-export-buffer nil)
|
||||||
|
(name "*OPML Export Buffer*"))
|
||||||
|
(org-export-to-buffer 'opml name)
|
||||||
|
(erase-buffer)
|
||||||
|
(insert-buffer-substring (get-buffer name))
|
||||||
|
(point-max)))
|
||||||
|
|
||||||
|
(add-hook 'find-file-hooks 'set-buffer-file-format-to-opml)
|
||||||
|
(add-to-list 'format-alist '(opml "Outline Processor Markup Language"
|
||||||
|
"<[?]xml version=\"1.0\"[^>]*[?]>[\n]?.*[\n]?.*[\n]?<opml version=\"[1|2].0\">"
|
||||||
|
"~/.emacs.d/elisp/org-opml/opml2org.py" my--opml-encode t))
|
||||||
|
(shut-up (load-library "ox-opml")))
|
||||||
|
|
||||||
|
(progn ; key bindings
|
||||||
|
(defun my--org-in-list-p ()
|
||||||
|
(and (save-excursion (search-backward-regexp "^ *\\([0-9]+[\.)]\\|[-*+]\\) " (line-beginning-position) t))
|
||||||
|
(org-in-item-p)))
|
||||||
|
(defun my--org-insert-item-after ()
|
||||||
|
"Inserts a new heading or item, depending on the context."
|
||||||
|
(interactive)
|
||||||
|
(org-end-of-line)
|
||||||
|
(cond ((org-at-item-checkbox-p)
|
||||||
|
(org-insert-heading)
|
||||||
|
(insert "[ ] "))
|
||||||
|
((my--org-in-list-p)
|
||||||
|
(org-insert-heading))
|
||||||
|
((org-on-heading-p)
|
||||||
|
(org-insert-heading-after-current))
|
||||||
|
(t
|
||||||
|
(org-insert-heading-after-current)
|
||||||
|
(delete-char 1)))
|
||||||
|
(evil-insert-state))
|
||||||
|
|
||||||
|
;; TODO Check if this and -forward can be combined
|
||||||
|
(defun my--org-insert-item-before ()
|
||||||
|
"Inserts a new heading or item, depending on the context."
|
||||||
|
(interactive)
|
||||||
|
(evil-first-non-blank)
|
||||||
|
(cond ((org-at-item-checkbox-p)
|
||||||
|
(org-insert-heading)
|
||||||
|
(insert "[ ] "))
|
||||||
|
((my--org-in-list-p)
|
||||||
|
(org-insert-heading))
|
||||||
|
(t (org-insert-heading)))
|
||||||
|
(evil-insert-state))
|
||||||
|
|
||||||
|
(defun my--toggle-checkbox ()
|
||||||
|
(interactive)
|
||||||
|
(save-excursion
|
||||||
|
(org-end-of-line)
|
||||||
|
(cond ((org-in-item-p)
|
||||||
|
(if (search-backward-regexp "\\[[ +-]\\]" (line-beginning-position) t)
|
||||||
|
(delete-char 4)
|
||||||
|
(org-beginning-of-line)))
|
||||||
|
(t (org-insert-heading)))
|
||||||
|
(insert "[ ] ")))
|
||||||
|
|
||||||
|
(bind 'insert org-mode-map [remap my.inflate-space-maybe] 'self-insert-command)
|
||||||
|
|
||||||
|
(bind org-mode-map
|
||||||
|
"RET" nil
|
||||||
|
"C-j" nil
|
||||||
|
"C-k" nil)
|
||||||
|
|
||||||
|
(bind '(normal insert) evil-org-mode-map
|
||||||
|
"M-l" 'org-metaright
|
||||||
|
"M-h" 'org-metaleft
|
||||||
|
"M-k" 'org-metaup
|
||||||
|
"M-j" 'org-metadown
|
||||||
|
"M-L" 'org-shiftmetaright
|
||||||
|
"M-H" 'org-shiftmetaleft
|
||||||
|
"M-K" 'org-shiftmetaup
|
||||||
|
"M-J" 'org-shiftmetadown)
|
||||||
|
|
||||||
|
(bind 'insert evil-org-mode-map
|
||||||
|
"C-e" 'org-end-of-line
|
||||||
|
"C-a" 'org-beginning-of-line)
|
||||||
|
(bind '(insert normal)
|
||||||
|
"<s-left>" 'org-beginning-of-line
|
||||||
|
"<s-right>" 'org-end-of-line
|
||||||
|
"<s-up>" 'org-up-element
|
||||||
|
"<s-down>" 'org-down-element)
|
||||||
|
|
||||||
|
;; Formatting shortcuts
|
||||||
|
(defun my/org-surround (delim)
|
||||||
|
(insert delim) (save-excursion (insert delim)))
|
||||||
|
|
||||||
|
(bind 'insert evil-org-mode-map
|
||||||
|
;; Add new header line before this line
|
||||||
|
(kbd "<S-s-return>") 'my--org-insert-item-before
|
||||||
|
;; Add new header line after this line
|
||||||
|
(kbd "<s-return>") 'my--org-insert-item-after
|
||||||
|
|
||||||
|
(kbd "s-b") (λ (my/org-surround "*")) ; bold
|
||||||
|
(kbd "s-u") (λ (my/org-surround "_")) ; underline
|
||||||
|
(kbd "s-i") (λ (my/org-surround "/")) ; italics
|
||||||
|
(kbd "s-`") (λ (my/org-surround "+"))) ; strikethrough
|
||||||
|
(bind 'visual evil-org-mode-map
|
||||||
|
(kbd "s-b") "s*"
|
||||||
|
(kbd "s-u") "s_"
|
||||||
|
(kbd "s-i") "s/"
|
||||||
|
(kbd "s-`") "s+")
|
||||||
|
|
||||||
|
(bind '(normal visual) evil-org-mode-map
|
||||||
|
", l" 'org-insert-link)
|
||||||
|
|
||||||
|
(bind 'normal evil-org-mode-map
|
||||||
|
", +" 'org-align-all-tags
|
||||||
|
", /" 'org-sparse-tree
|
||||||
|
", ?" 'org-tags-view
|
||||||
|
", a" 'org-attach
|
||||||
|
", D" 'org-time-stamp-inactive
|
||||||
|
", T" 'org-show-todo-tree
|
||||||
|
", d" 'org-time-stamp
|
||||||
|
", r" 'org-refile
|
||||||
|
", s" 'org-schedule
|
||||||
|
", t" 'org-todo
|
||||||
|
"g r" 'org-babel-execute-src-block-maybe
|
||||||
|
"g h" 'outline-up-heading
|
||||||
|
"g j" 'org-forward-heading-same-level
|
||||||
|
"g k" 'org-backward-heading-same-level
|
||||||
|
"g l" 'outline-next-visible-heading
|
||||||
|
"g o" 'org-open-at-point
|
||||||
|
"g O" 'org-attach-open
|
||||||
|
"g C-o" 'org-attach-reveal
|
||||||
|
"g i" (λ (if (> (length org-inline-image-overlays) 0)
|
||||||
|
(org-remove-inline-images)
|
||||||
|
(org-display-inline-images nil t (line-beginning-position) (line-end-position))))
|
||||||
|
"g a" 'org-agenda
|
||||||
|
"g t" 'org-show-todo-tree
|
||||||
|
"$" 'org-end-of-line
|
||||||
|
"^" 'org-beginning-of-line
|
||||||
|
"<" 'org-metaleft
|
||||||
|
">" 'org-metaright
|
||||||
|
"-" 'org-cycle-list-bullet
|
||||||
|
", SPC" 'my--toggle-checkbox
|
||||||
|
", <return>" 'org-archive-subtree
|
||||||
|
"<S-s-return>" 'my--org-insert-item-before
|
||||||
|
"<s-return>" 'my--org-insert-item-after
|
||||||
|
"RET" (λ (cond ((org-at-item-checkbox-p)
|
||||||
|
(org-toggle-checkbox))
|
||||||
|
((org-entry-is-todo-p)
|
||||||
|
(org-todo 'done))))
|
||||||
|
[tab] 'org-cycle))
|
||||||
|
|
||||||
|
(evil-ex-define-cmd "o[rg]edit" 'org-edit-special)
|
||||||
|
(evil-ex-define-cmd "o[rg]refile" 'org-refile)
|
||||||
|
(evil-ex-define-cmd "o[rg]archive" 'org-archive-subtree)
|
||||||
|
(evil-ex-define-cmd "o[rg]agenda" 'org-agenda)
|
||||||
|
(evil-ex-define-cmd "o[rg]attach" 'my:org-attach)
|
||||||
|
(evil-ex-define-cmd "o[rg]todo" 'org-show-todo-tree)
|
||||||
|
(evil-ex-define-cmd "o[rg]link" 'org-link)
|
||||||
|
(evil-ex-define-cmd "o[rg]align" 'org-align-all-tags)
|
||||||
|
(evil-define-command my:org-attach (&optional filename bang)
|
||||||
|
:repeat nil
|
||||||
|
(interactive "<f><!>")
|
||||||
|
(if bang
|
||||||
|
(org-attach)
|
||||||
|
(unless filename
|
||||||
|
(user-error "You must specify a file to attach"))
|
||||||
|
(unless (file-exists-p filename)
|
||||||
|
(user-error "File %s does not exist" filename))
|
||||||
|
(let ((dest (f-join org-directory "data/" (concat (format-time-string "%Y%m%d-") (f-filename filename)))))
|
||||||
|
(when (f-exists? dest)
|
||||||
|
(user-error "File %s already exists at destination!"))
|
||||||
|
(copy-file filename dest)
|
||||||
|
(insert (format "[[file:%s]]" (f-relative dest (f-dirname (buffer-file-name))))))))))
|
||||||
|
|
||||||
|
|
||||||
|
(provide 'init-org)
|
||||||
|
;;; init-org.el ends here
|
|
@ -1,15 +1,15 @@
|
||||||
(provide 'init-ruby)
|
(provide 'init-ruby)
|
||||||
|
|
||||||
(use-package ruby-mode
|
(use-package enh-ruby-mode
|
||||||
:mode (("\\.rb$" . ruby-mode)
|
:mode (("\\.rb$" . enh-ruby-mode)
|
||||||
("\\.ru$" . ruby-mode)
|
("\\.ru$" . enh-ruby-mode)
|
||||||
("\\.rake$" . ruby-mode)
|
("\\.rake$" . enh-ruby-mode)
|
||||||
("\\.gemspec$" . ruby-mode)
|
("\\.gemspec$" . enh-ruby-mode)
|
||||||
("\\.?pryrc$" . ruby-mode)
|
("\\.?pryrc$" . enh-ruby-mode)
|
||||||
("Gemfile$" . ruby-mode)
|
("Gemfile$" . enh-ruby-mode)
|
||||||
("Capfile$" . ruby-mode)
|
("Capfile$" . enh-ruby-mode)
|
||||||
("Vagrantfile$" . ruby-mode)
|
("Vagrantfile$" . enh-ruby-mode)
|
||||||
("Rakefile$" . ruby-mode))
|
("Rakefile$" . enh-ruby-mode))
|
||||||
:interpreter "ruby"
|
:interpreter "ruby"
|
||||||
:init
|
:init
|
||||||
(progn
|
(progn
|
||||||
|
@ -19,38 +19,40 @@
|
||||||
(associate-mode "/\\.rspec$" 'text-mode))
|
(associate-mode "/\\.rspec$" 'text-mode))
|
||||||
:config
|
:config
|
||||||
(progn
|
(progn
|
||||||
|
(message "Ruby loaded!")
|
||||||
;;; Formatting
|
;;; Formatting
|
||||||
(setq ruby-indent-level 2)
|
(setq ruby-indent-level 2)
|
||||||
(setq ruby-deep-indent-paren t)
|
(setq ruby-deep-indent-paren t)
|
||||||
|
(setq enh-ruby-check-syntax nil)
|
||||||
|
|
||||||
(add-hook 'ruby-mode-hook 'enable-tab-width-2)
|
(add-hook 'enh-ruby-mode-hook 'enable-tab-width-2)
|
||||||
|
|
||||||
(define-key ruby-mode-map [?\n] nil)
|
(define-key enh-ruby-mode-map [?\n] nil)
|
||||||
|
|
||||||
(after "emr"
|
(after "emr"
|
||||||
(use-package ruby-refactor)
|
(use-package ruby-refactor)
|
||||||
(emr-declare-command 'ruby-refactor-extract-to-method
|
(emr-declare-command 'ruby-refactor-extract-to-method
|
||||||
:title "extract method"
|
:title "extract method"
|
||||||
:modes 'ruby-mode
|
:modes 'enh-ruby-mode
|
||||||
:predicate (lambda () (use-region-p)))
|
:predicate (lambda () (use-region-p)))
|
||||||
|
|
||||||
(emr-declare-command 'ruby-refactor-extract-local-variable
|
(emr-declare-command 'ruby-refactor-extract-local-variable
|
||||||
:title "extract local variable"
|
:title "extract local variable"
|
||||||
:modes 'ruby-mode
|
:modes 'enh-ruby-mode
|
||||||
:predicate (lambda () (use-region-p)))
|
:predicate (lambda () (use-region-p)))
|
||||||
|
|
||||||
(emr-declare-command 'ruby-refactor-extract-constant
|
(emr-declare-command 'ruby-refactor-extract-constant
|
||||||
:title "extract constant"
|
:title "extract constant"
|
||||||
:modes 'ruby-mode
|
:modes 'enh-ruby-mode
|
||||||
:predicate (lambda () (use-region-p)))
|
:predicate (lambda () (use-region-p)))
|
||||||
|
|
||||||
(emr-declare-command 'ruby-refactor-add-parameter
|
(emr-declare-command 'ruby-refactor-add-parameter
|
||||||
:title "add parameter"
|
:title "add parameter"
|
||||||
:modes 'ruby-mode)
|
:modes 'enh-ruby-mode)
|
||||||
|
|
||||||
(emr-declare-command 'ruby-refactor-extract-to-let
|
(emr-declare-command 'ruby-refactor-extract-to-let
|
||||||
:title "extract to let"
|
:title "extract to let"
|
||||||
:modes 'ruby-mode
|
:modes 'enh-ruby-mode
|
||||||
:predicate (lambda () (use-region-p))))
|
:predicate (lambda () (use-region-p))))
|
||||||
|
|
||||||
(define-minor-mode rake-mode
|
(define-minor-mode rake-mode
|
||||||
|
@ -61,12 +63,12 @@
|
||||||
:commands (inf-ruby inf-ruby-console-auto)
|
:commands (inf-ruby inf-ruby-console-auto)
|
||||||
:config
|
:config
|
||||||
(progn
|
(progn
|
||||||
(evil-set-initial-state 'inf-ruby-mode 'insert)
|
(evil-set-initial-state 'inf-enh-ruby-mode 'insert)
|
||||||
(push '(inf-ruby-mode :position bottom :stick t) popwin:special-display-config)
|
(push '(inf-enh-ruby-mode :position bottom :stick t) popwin:special-display-config)
|
||||||
|
|
||||||
(after "company"
|
(after "company"
|
||||||
(use-package company-inf-ruby
|
(use-package company-inf-ruby
|
||||||
:config (company--backend-on 'inf-ruby-mode-hook 'company-inf-ruby)))))
|
:config (company--backend-on 'inf-enh-ruby-mode-hook 'company-inf-ruby)))))
|
||||||
|
|
||||||
(use-package rspec-mode
|
(use-package rspec-mode
|
||||||
:defer t
|
:defer t
|
||||||
|
@ -92,18 +94,20 @@
|
||||||
(progn
|
(progn
|
||||||
(after "company"
|
(after "company"
|
||||||
(use-package company-robe
|
(use-package company-robe
|
||||||
:config (company--backend-on 'ruby-mode-hook 'company-robe)))
|
:config (company--backend-on 'enh-ruby-mode-hook 'company-robe)))
|
||||||
|
|
||||||
(add-hook! 'ruby-mode-hook
|
(add-hook! 'enh-ruby-mode-hook
|
||||||
|
(unless (f-ext? (buffer-file-name) "org") ;; in case of org-mode
|
||||||
(robe-mode 1)
|
(robe-mode 1)
|
||||||
;; (after "auto-complete" (ac-robe-setup))
|
;; (after "auto-complete" (ac-robe-setup))
|
||||||
(unless robe-running (robe-start 1))
|
(my--ruby-load-file buffer-file-name)))
|
||||||
(my--ruby-load-file buffer-file-name))
|
|
||||||
|
|
||||||
(defun my--ruby-load-file (&optional file)
|
(defun my--ruby-load-file (&optional file)
|
||||||
(let ((file (or file buffer-file-name)))
|
(let ((file (or file buffer-file-name)))
|
||||||
(when (and (eq major-mode 'ruby-mode)
|
(when (and (eq major-mode 'enh-ruby-mode)
|
||||||
(bound-and-true-p robe-running)
|
(featurep 'robe)
|
||||||
|
(not (string= (f-base file) "Gemfile"))
|
||||||
(file-exists-p buffer-file-name))
|
(file-exists-p buffer-file-name))
|
||||||
(ruby-load-file file))))
|
(unless robe-running (robe-start 1))
|
||||||
|
(when robe-running (ruby-load-file file)))))
|
||||||
(add-hook 'after-save-hook 'my--ruby-load-file)))))
|
(add-hook 'after-save-hook 'my--ruby-load-file)))))
|
12
init/init-rust.el
Normal file
12
init/init-rust.el
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
(use-package rust-mode
|
||||||
|
:modes "\\.rs$"
|
||||||
|
:config
|
||||||
|
(after "company"
|
||||||
|
(let ((racer-dir (concat my-elisp-dir "racer/")))
|
||||||
|
(setq racer-rust-src-path (concat racer-dir "src"))
|
||||||
|
(setq racer-cmd (concat racer-dir "bin/racer"))
|
||||||
|
(add-to-list 'load-path (concat racer-dir "editors/"))
|
||||||
|
(require 'racer))))
|
||||||
|
|
||||||
|
(provide 'init-rust)
|
||||||
|
;;; init-rust.el ends here
|
|
@ -24,6 +24,9 @@
|
||||||
(markdown-unwrap-thing-at-point nil 2 4)
|
(markdown-unwrap-thing-at-point nil 2 4)
|
||||||
(markdown-wrap-or-insert delim delim 'word nil nil))))))
|
(markdown-wrap-or-insert delim delim 'word nil nil))))))
|
||||||
:config
|
:config
|
||||||
|
(progn
|
||||||
|
(sp-local-pair 'markdown-mode "*" "*" :unless '(sp-point-after-bol-p sp-point-before-same-p sp-point-after-same-p))
|
||||||
|
|
||||||
(let ((map markdown-mode-map))
|
(let ((map markdown-mode-map))
|
||||||
(bind '(normal visual) map
|
(bind '(normal visual) map
|
||||||
",i" 'markdown-insert-image
|
",i" 'markdown-insert-image
|
||||||
|
@ -46,4 +49,4 @@
|
||||||
(kbd "s-*") 'markdown-insert-list-item
|
(kbd "s-*") 'markdown-insert-list-item
|
||||||
(kbd "s-b") 'markdown-insert-bold
|
(kbd "s-b") 'markdown-insert-bold
|
||||||
(kbd "s-i") 'markdown-insert-italic
|
(kbd "s-i") 'markdown-insert-italic
|
||||||
(kbd "s-`") 'markdown-insert-del)))
|
(kbd "s-`") 'markdown-insert-del))))
|
|
@ -56,22 +56,22 @@
|
||||||
"[ \\" 'er/contract-region)
|
"[ \\" 'er/contract-region)
|
||||||
|
|
||||||
(bind 'normal my-mode-map
|
(bind 'normal my-mode-map
|
||||||
|
", ," 'helm-projectile-switch-to-buffer
|
||||||
|
", ." 'helm-resume
|
||||||
|
", /" 'helm-projectile-find-file
|
||||||
|
", ;" 'helm-semantic-or-imenu
|
||||||
|
", <" 'helm-mini
|
||||||
|
", E" 'my:init-files
|
||||||
|
", M" 'helm-projectile-recentf ; recent PROJECT files
|
||||||
|
", ]" 'helm-etags-select
|
||||||
", a" 'helm-projectile-find-other-file
|
", a" 'helm-projectile-find-other-file
|
||||||
", e" 'ido-find-file
|
", e" 'ido-find-file
|
||||||
", E" 'my:init-files
|
|
||||||
", f" 'helm-projectile-find-file-dwim
|
", f" 'helm-projectile-find-file-dwim
|
||||||
", g" 'git-gutter+-show-hunk
|
", g" 'git-gutter+-show-hunk
|
||||||
", h" 'helm-apropos
|
", h" 'helm-apropos
|
||||||
", m" 'helm-recentf
|
", m" 'helm-recentf
|
||||||
", M" 'helm-projectile-recentf ; recent PROJECT files
|
|
||||||
", p" 'helm-projectile-switch-project
|
", p" 'helm-projectile-switch-project
|
||||||
", y" 'helm-show-kill-ring
|
", y" 'helm-show-kill-ring
|
||||||
", ;" 'helm-semantic-or-imenu
|
|
||||||
", ," 'helm-projectile-switch-to-buffer
|
|
||||||
", <" 'helm-mini
|
|
||||||
", ]" 'helm-etags-select
|
|
||||||
", /" 'helm-projectile-find-file
|
|
||||||
", ." 'helm-resume
|
|
||||||
|
|
||||||
;; behave like D and C; yank to end of line
|
;; behave like D and C; yank to end of line
|
||||||
"Y" (λ (evil-yank (point) (point-at-eol)))
|
"Y" (λ (evil-yank (point) (point-at-eol)))
|
|
@ -23,9 +23,11 @@
|
||||||
(set-register ?. "~/.dotfiles/")
|
(set-register ?. "~/.dotfiles/")
|
||||||
(set-register ?d "~/Dropbox/Projects/")
|
(set-register ?d "~/Dropbox/Projects/")
|
||||||
(set-register ?@ "~/.emacs.d/init.el")
|
(set-register ?@ "~/.emacs.d/init.el")
|
||||||
(set-register ?% "~/.emacs.d/init.el")
|
|
||||||
|
|
||||||
(add-hook 'help-mode-hook 'visual-line-mode)
|
(add-hook 'help-mode-hook 'visual-line-mode)
|
||||||
|
(add-hook! 'before-save-hook
|
||||||
|
(unless (eq major-mode 'org-mode)
|
||||||
|
(delete-trailing-whitespace)))
|
||||||
|
|
||||||
;; Performance checks
|
;; Performance checks
|
||||||
(add-hook! 'find-file-hook
|
(add-hook! 'find-file-hook
|
|
@ -1,195 +0,0 @@
|
||||||
(provide 'init-org)
|
|
||||||
|
|
||||||
;; Defuns
|
|
||||||
(defun my/org-insert-list-item ()
|
|
||||||
"Force insertion of org item"
|
|
||||||
(interactive)
|
|
||||||
(if (not (org-in-item-p))
|
|
||||||
(insert "\n- ")
|
|
||||||
(org-insert-item)))
|
|
||||||
|
|
||||||
(defun my/org-eol-call (fun)
|
|
||||||
"Go to end of line and call provided function"
|
|
||||||
(end-of-line)
|
|
||||||
(funcall fun)
|
|
||||||
(evil-append nil))
|
|
||||||
|
|
||||||
(defun my/org-surround (delim)
|
|
||||||
(insert delim) (save-excursion (insert delim)))
|
|
||||||
|
|
||||||
(defun set-buffer-file-format-to-opml ()
|
|
||||||
(when (string-match "\.opml$" (buffer-file-name))
|
|
||||||
(setq buffer-file-format '(opml))))
|
|
||||||
|
|
||||||
(defun opml-encode (begin end buffer)
|
|
||||||
"Export Org mode buffer to OPML."
|
|
||||||
(let ((org-export-show-temporary-export-buffer nil)
|
|
||||||
(name "*OPML Export Buffer*"))
|
|
||||||
(org-export-to-buffer 'opml name)
|
|
||||||
(erase-buffer)
|
|
||||||
(insert-buffer-substring (get-buffer name))
|
|
||||||
(point-max)))
|
|
||||||
|
|
||||||
;;
|
|
||||||
(require 'org)
|
|
||||||
|
|
||||||
(define-minor-mode evil-org-mode
|
|
||||||
"Buffer local minor mode for evil-org"
|
|
||||||
:init-value nil
|
|
||||||
:lighter " EvilOrg"
|
|
||||||
:keymap (make-sparse-keymap) ; defines evil-org-mode-map
|
|
||||||
:group 'evil-org)
|
|
||||||
|
|
||||||
(add-hook 'org-mode-hook 'evil-org-mode)
|
|
||||||
(add-hook 'org-mode-hook 'turn-on-auto-fill)
|
|
||||||
|
|
||||||
;; Reset evil to ensure evil-org-mode's maps work
|
|
||||||
(add-hook! 'org-mode-hook (evil-mode nil) (evil-mode 1))
|
|
||||||
|
|
||||||
(shut-up (load-library "ox-opml"))
|
|
||||||
|
|
||||||
;; Remove occur highlights on ESC in normal mode
|
|
||||||
(defadvice evil-force-normal-state (before evil-esc-org-remove-highlights activate)
|
|
||||||
(org-remove-occur-highlights))
|
|
||||||
|
|
||||||
(setq org-export-backends '(ascii html latex md opml))
|
|
||||||
(add-hook 'find-file-hooks 'set-buffer-file-format-to-opml)
|
|
||||||
(add-to-list 'auto-mode-alist '("\\.opml$" . org-mode))
|
|
||||||
(add-to-list 'format-alist '(opml "Outline Processor Markup Language"
|
|
||||||
"<[?]xml version=\"1.0\"[^>]*[?]>[\n]?.*[\n]?.*[\n]?<opml version=\"[1|2].0\">"
|
|
||||||
"~/.emacs.d/elisp/org-opml/opml2org.py" opml-encode t))
|
|
||||||
|
|
||||||
(setq org-directory "~/Dropbox/notes"
|
|
||||||
org-default-notes-file "~/Dropbox/notes/notes.org"
|
|
||||||
org-mobile-inbox-for-pull "~/Dropbox/notes/notes.org"
|
|
||||||
org-mobile-directory "~/Dropbox/Apps/MobileOrg"
|
|
||||||
org-agenda-files '("~/Dropbox/notes")
|
|
||||||
org-src-tab-acts-natively t)
|
|
||||||
|
|
||||||
(setq org-completion-use-ido t
|
|
||||||
org-hide-leading-stars t
|
|
||||||
org-todo-keywords
|
|
||||||
'((sequence "TODO(t)" "|" "DONE(d)")
|
|
||||||
(sequence "DOING(s)" "PENDING(p)")
|
|
||||||
(sequence "|" "CANCELLED(c)")))
|
|
||||||
|
|
||||||
(org-babel-do-load-languages 'org-babel-load-languages
|
|
||||||
'((python . t)
|
|
||||||
(ruby . t)
|
|
||||||
(sh . t)
|
|
||||||
(matlab . t)
|
|
||||||
(latex . t)))
|
|
||||||
|
|
||||||
(setq org-tag-alist '(("@work" . ?b)
|
|
||||||
("@home" . ?h)
|
|
||||||
("@writing" . ?w)
|
|
||||||
("@errands" . ?e)
|
|
||||||
("@drawing" . ?d)
|
|
||||||
("@coding" . ?c)
|
|
||||||
("@phone" . ?p)
|
|
||||||
("@reading" . ?r)
|
|
||||||
("projects" . ?q)
|
|
||||||
("easy" . ?0)
|
|
||||||
("hard" . ?1)))
|
|
||||||
|
|
||||||
(setq org-capture-templates
|
|
||||||
'(("t" "TODO" entry (file+headline "~/Dropbox/notes/gtd.org" "Inbox") "* TODO %? %u\n%i")
|
|
||||||
("T" "TODO Someday" entry (file+headline "~/Dropbox/notes/gtd.org" "Someday") "* TODO %? %u :someday:\n%i")
|
|
||||||
("c" "Changelog" entry (file+headline (concat (projectile-project-root) "/CHANGELOG.org") "Unsorted") "** %u %? :unsorted:\n%i" :prepend t)
|
|
||||||
("i" "Invoice" entry (file+headline "~/Dropbox/notes/invoices.org" "Invoices") "** TODO %?\n%i" :prepend t)
|
|
||||||
("n" "Note" entry (file+datetree org-default-notes-file) "** %?\n%i")
|
|
||||||
("b" "Blog" entry (file+datetree "~/Dropbox/notes/blog.org") "** %i%?")
|
|
||||||
("j" "Journal" entry (file+datetree "~/Dropbox/notes/journal.org") "** %?%^g\nAdded: %U\n%i")
|
|
||||||
("a" "Trivia" entry (file "~/Dropbox/notes/trivia.org") "* %u %?\n%i" :prepend t)
|
|
||||||
("s" "Writing Scraps" entry (file "~/Dropbox/notes/writing.org") "* %u %?\n%i" :prepend t)
|
|
||||||
("v" "Vocab" entry (file "~/Dropbox/notes/vocab.org") "* %u %?\n%i" :prepend t)
|
|
||||||
("e" "Excerpt" entry (file "~/Dropbox/notes/excerpts.org") "* %u %?\n%i" :prepend t)))
|
|
||||||
|
|
||||||
(setq org-agenda-custom-commands
|
|
||||||
'(("x" agenda)
|
|
||||||
("y" agenda*)
|
|
||||||
("w" todo "WAITING")
|
|
||||||
("W" todo-tree "WAITING")
|
|
||||||
("to" todo)
|
|
||||||
("tp" tags "+Projects")
|
|
||||||
("tg" tags-todo "+gamedev")
|
|
||||||
("tw" tags-tree "+webdev")))
|
|
||||||
|
|
||||||
|
|
||||||
;; Keymaps
|
|
||||||
(bind 'insert org-mode-map [remap my.inflate-space-maybe] 'self-insert-command)
|
|
||||||
(bind org-mode-map (kbd "RET") nil
|
|
||||||
(kbd "C-j") nil
|
|
||||||
(kbd "C-k") nil)
|
|
||||||
|
|
||||||
(mapc (lambda (state)
|
|
||||||
(evil-define-key state evil-org-mode-map
|
|
||||||
(kbd "M-l") 'org-metaright
|
|
||||||
(kbd "M-h") 'org-metaleft
|
|
||||||
(kbd "M-k") 'org-metaup
|
|
||||||
(kbd "M-j") 'org-metadown
|
|
||||||
(kbd "M-L") 'org-shiftmetaright
|
|
||||||
(kbd "M-H") 'org-shiftmetaleft
|
|
||||||
(kbd "M-K") 'org-shiftmetaup
|
|
||||||
(kbd "M-J") 'org-shiftmetadown
|
|
||||||
(kbd "M-o") '(lambda () (interactive)
|
|
||||||
(evil-org-eol-call
|
|
||||||
'(lambda()
|
|
||||||
(org-insert-heading)
|
|
||||||
(org-metaright))))
|
|
||||||
(kbd "M-t") '(lambda () (interactive)
|
|
||||||
(evil-org-eol-call
|
|
||||||
'(lambda()
|
|
||||||
(org-insert-todo-heading nil)
|
|
||||||
(org-metaright))))
|
|
||||||
))
|
|
||||||
'(normal insert))
|
|
||||||
|
|
||||||
;; Formatting shortcuts
|
|
||||||
(bind 'insert evil-org-mode-map
|
|
||||||
(kbd "s-b") (λ (my/org-surround "*")) ; bold
|
|
||||||
(kbd "s-u") (λ (my/org-surround "_")) ; underline
|
|
||||||
(kbd "s-i") (λ (my/org-surround "/")) ; italics
|
|
||||||
(kbd "s-`") (λ (my/org-surround "+")) ; strikethrough
|
|
||||||
|
|
||||||
(kbd "<S-s-return>") (λ (evil-move-beginning-of-line) (org-insert-heading))
|
|
||||||
(kbd "<s-return>") (λ (org-insert-heading-after-current)))
|
|
||||||
|
|
||||||
(bind '(normal visual) evil-org-mode-map
|
|
||||||
",l" 'org-insert-link)
|
|
||||||
|
|
||||||
(bind 'visual evil-org-mode-map
|
|
||||||
(kbd "s-b") "s*" ; bold
|
|
||||||
(kbd "s-i") "s/") ; italics
|
|
||||||
|
|
||||||
(bind 'normal evil-org-mode-map
|
|
||||||
",d" 'org-time-stamp
|
|
||||||
",D" 'org-time-stamp-inactive
|
|
||||||
",s" 'org-schedule
|
|
||||||
",a" 'org-attach
|
|
||||||
",A" 'org-attach-open
|
|
||||||
",t" 'org-todo
|
|
||||||
",T" 'org-show-todo-tree
|
|
||||||
",/" 'org-sparse-tree
|
|
||||||
",?" 'org-tags-view
|
|
||||||
",+" 'org-align-all-tags
|
|
||||||
",r" 'org-refile
|
|
||||||
"gh" 'outline-up-heading
|
|
||||||
"gj" 'org-forward-heading-same-level
|
|
||||||
"gk" 'org-backward-heading-same-level
|
|
||||||
"gl" 'outline-next-visible-heading
|
|
||||||
"go" 'org-open-at-point
|
|
||||||
"ga" 'org-agenda
|
|
||||||
"gt" 'org-show-todo-tree
|
|
||||||
"H" 'org-beginning-of-line
|
|
||||||
"L" 'org-end-of-line
|
|
||||||
"$" 'org-end-of-line
|
|
||||||
"^" 'org-beginning-of-line
|
|
||||||
"<" 'org-metaleft
|
|
||||||
">" 'org-metaright
|
|
||||||
"-" 'org-cycle-list-bullet
|
|
||||||
(kbd ", SPC") 'org-archive-subtree
|
|
||||||
(kbd "<S-s-return>") (λ (evil-move-beginning-of-line) (org-insert-heading) (evil-insert-state))
|
|
||||||
(kbd "<s-return>") (λ (org-insert-heading-after-current) (evil-insert-state))
|
|
||||||
(kbd "RET") (λ (if (org-entry-is-todo-p) (org-todo 'done)))
|
|
||||||
(kbd "TAB") 'org-cycle)
|
|
Loading…
Add table
Add a link
Reference in a new issue