Major update + cleanup
This commit is contained in:
parent
51589eb7a1
commit
bea393083c
29 changed files with 388 additions and 358 deletions
|
@ -30,8 +30,15 @@
|
|||
(sp-with-modes '(json-mode js2-mode ruby-mode enh-ruby-mode python-mode)
|
||||
(sp-local-pair "[" nil :post-handlers '(("||\n[i]" "RET"))))
|
||||
|
||||
(sp-with-modes '(java-mode c++-mode c-mode)
|
||||
(sp-local-pair "/**" "*/" :post-handlers '(("* ||\n[i]" "RET"))))
|
||||
(sp-with-modes '(c-mode c++-mode objc-mode java-mode scss-mode css-mode php-mode)
|
||||
(sp-local-pair "/* " " */" :post-handlers '(("||\n[i]" "RET")))
|
||||
(sp-local-pair "/**" "*/" :post-handlers '(("||\n[i]" "RET"))))
|
||||
|
||||
(sp-with-modes '(objc-mode scss-mode css-mode)
|
||||
(sp-local-pair "/*\n" "\n */" :post-handlers '(("||[i]" "RET"))))
|
||||
|
||||
(sp-with-modes '(c-mode c++-mode php-mode java-mode)
|
||||
(sp-local-pair "/*" "" :post-handlers '((" ||\n[i]*/" "RET"))))
|
||||
|
||||
(after "yasnippet"
|
||||
(defadvice yas-expand (before advice-for-yas-expand activate)
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
:config
|
||||
(progn
|
||||
(setq evil-want-visual-char-semi-exclusive t
|
||||
evil-search-module 'evil-search
|
||||
evil-search-module 'isearch
|
||||
evil-search-wrap nil
|
||||
evil-magic 'magic
|
||||
evil-want-C-u-scroll t ; enable C-u for scrolling
|
||||
|
@ -83,15 +83,21 @@
|
|||
(setq evil-snipe-override-evil t)
|
||||
(setq evil-snipe-scope 'visible)
|
||||
(setq evil-snipe-repeat-scope 'buffer)
|
||||
|
||||
(setq evil-snipe-override-evil-repeat-keys nil)
|
||||
(setq-default evil-snipe-symbol-groups
|
||||
'((?\[ "[[{(]")
|
||||
(?\] "[]})]")))
|
||||
|
||||
(bind 'visual "z" 'evil-snipe-s)
|
||||
(bind 'visual "Z" 'evil-snipe-S)))
|
||||
(bind 'motion
|
||||
"C-;" 'evil-snipe-repeat
|
||||
"C-," 'evil-snipe-repeat-reverse
|
||||
|
||||
(use-package evil-visualstar))
|
||||
'visual
|
||||
"z" 'evil-snipe-s
|
||||
"Z" 'evil-snipe-S)))
|
||||
|
||||
(use-package evil-visualstar
|
||||
:config (global-evil-visualstar-mode 1)))
|
||||
|
||||
(bind evil-ex-completion-map
|
||||
"C-r" #'evil-ex-paste-from-register ; registers in ex-mode
|
||||
|
@ -178,24 +184,6 @@
|
|||
file-name))
|
||||
|
||||
(progn ; ex-commands
|
||||
(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]o" 'my-cleanup-buffers) ; Kill current project buffers
|
||||
(evil-ex-define-cmd "k[ill]all" 'my:kill-buffers) ; Kill all buffers (bang = project buffers only)
|
||||
(evil-ex-define-cmd "k[ill]buried" 'my:kill-buried-buffers) ; Kill all buffers (bang = project buffers only)
|
||||
(evil-ex-define-cmd "ini" 'my:init-files)
|
||||
(evil-ex-define-cmd "n[otes]" 'my:notes)
|
||||
(evil-ex-define-cmd "recompile" 'my:byte-compile)
|
||||
(evil-ex-define-cmd "cd" 'my:cd)
|
||||
(evil-ex-define-cmd "en[ew]" 'my:create-file)
|
||||
(evil-ex-define-cmd "ren[ame]" 'my:rename-this-file) ; Rename file . Bang: Delete old one
|
||||
(evil-ex-define-cmd "al[ign]" 'my:align)
|
||||
(evil-ex-define-cmd "retab" 'my:retab)
|
||||
(evil-ex-define-cmd "sq[uint]" 'my:narrow-indirect) ; Narrow buffer to selection
|
||||
(evil-ex-define-cmd "x" 'my:scratch-buffer)
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
|
||||
(evil-define-command my:kill-buffers (&optional bang)
|
||||
:repeat nil
|
||||
(interactive "<!>")
|
||||
|
@ -278,7 +266,7 @@ provided."
|
|||
(message "File '%s' successfully renamed to '%s'"
|
||||
name (file-name-nondirectory new-name)))))))
|
||||
|
||||
(evil-define-operator my:scratch-buffer (beg end &optional bang)
|
||||
(evil-define-operator my:scratch-buffer (&optional beg end bang)
|
||||
"Send a selection to the scratch buffer. If BANG, then send it to org-capture
|
||||
instead."
|
||||
:move-point nil
|
||||
|
|
|
@ -11,13 +11,6 @@
|
|||
(setq mac-command-modifier 'meta)
|
||||
(setq mac-option-modifier 'alt)
|
||||
|
||||
;; Restore text nav keys
|
||||
(bind (kbd "<A-left>") 'backward-word
|
||||
(kbd "<A-right>") 'forward-word
|
||||
(kbd "M-a") 'mark-whole-buffer
|
||||
(kbd "M-v") 'evil-paste-after
|
||||
(kbd "M-s") 'save-buffer)
|
||||
|
||||
;; fix emacs PATH on OSX (GUI only)
|
||||
(use-package exec-path-from-shell
|
||||
:if (memq window-system '(mac ns))
|
||||
|
|
|
@ -37,7 +37,11 @@
|
|||
(when (functionp 'menu-bar-mode) (menu-bar-mode -1)) ; no menubar
|
||||
(when (fboundp 'fringe-mode) (fringe-mode '(5 . 10))) ; no nonsense
|
||||
|
||||
(when window-system (setq frame-title-format '(buffer-file-name "%f" ("%b"))))
|
||||
(when window-system
|
||||
(setq frame-title-format '(buffer-file-name "%f" ("%b")))
|
||||
(if (string-equal (system-name) "io")
|
||||
(set-frame-size (selected-frame) 326 119)))
|
||||
|
||||
|
||||
;;;; Modeline ;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
(use-package uniquify
|
||||
|
@ -51,16 +55,18 @@
|
|||
(mapconcat 'identity
|
||||
'(" SP"
|
||||
" Fill"
|
||||
" yas"
|
||||
" Fly"
|
||||
" EvilOrg"
|
||||
" Abbrev"
|
||||
" snipe"
|
||||
" company"
|
||||
" Anaconda"
|
||||
" WS"
|
||||
" GitGutter"
|
||||
" Undo-Tree"
|
||||
" Projectile\\[.+\\]"
|
||||
" hs"
|
||||
" ElDoc"
|
||||
" wg"
|
||||
) "\\|"))
|
||||
:init
|
||||
(progn
|
||||
|
|
34
core/core.el
34
core/core.el
|
@ -1,5 +1,7 @@
|
|||
(defconst is-mac (eq system-type 'darwin))
|
||||
(defconst is-linux (eq system-type 'gnu/linux))
|
||||
(defconst is-mac (eq system-type 'darwin))
|
||||
(defconst is-linux (eq system-type 'gnu/linux))
|
||||
(defconst is-windows (or (eq system-type 'ms-dos)
|
||||
(eq system-type 'windows-nt)))
|
||||
|
||||
(when is-linux (add-to-list 'load-path "~/.cask"))
|
||||
(setq use-package-verbose DEBUG-MODE)
|
||||
|
@ -153,19 +155,16 @@
|
|||
(setq delete-trailing-lines nil)
|
||||
(add-hook 'makefile-mode-hook 'indent-tabs-mode) ; Use normal tabs in makefiles
|
||||
;; Make sure scratch buffer is always "in a project"
|
||||
(add-hook 'find-file-hook
|
||||
(lambda()
|
||||
(let ((buffer (get-buffer "*scratch*"))
|
||||
(pwd (my--project-root)))
|
||||
(when (buffer-live-p buffer)
|
||||
(save-window-excursion
|
||||
(switch-to-buffer buffer)
|
||||
(unless (eq (my--project-root) pwd)
|
||||
(cd pwd)
|
||||
(rename-buffer (format "*scratch* (%s)" (file-name-base (directory-file-name pwd))))))))))
|
||||
|
||||
;; My own minor mode!
|
||||
(define-minor-mode my-mode :global t :keymap (make-sparse-keymap))
|
||||
(defun set-project-scratch-buffer ()
|
||||
(let ((buffer (get-buffer "*scratch*"))
|
||||
(pwd (my--project-root)))
|
||||
(when (buffer-live-p buffer)
|
||||
(save-window-excursion
|
||||
(switch-to-buffer buffer)
|
||||
(unless (eq (my--project-root) pwd)
|
||||
(cd pwd)
|
||||
(rename-buffer (format "*scratch* (%s)" (file-name-nondirectory (directory-file-name pwd)))))))))
|
||||
(add-hook 'find-file-hook 'set-project-scratch-buffer)
|
||||
|
||||
|
||||
;;;; Behavior adjustments ;;;;;;;;;;;;;;;;
|
||||
|
@ -235,10 +234,7 @@
|
|||
;;;; Start the party ;;;;;;;;;;;;;;;;;;;
|
||||
(if is-mac (require 'core-osx))
|
||||
;; (if is-linux (require 'core-linux))
|
||||
|
||||
(require 'core-ui)
|
||||
(require 'core-evil)
|
||||
(require 'core-editor)
|
||||
;; (if is-windows (require 'core-windows))
|
||||
|
||||
(use-package server
|
||||
:config
|
||||
|
|
|
@ -117,7 +117,11 @@ spaces on either side of the point if so. Resorts to
|
|||
((sp-point-in-comment)
|
||||
(cond ((eq major-mode 'js2-mode)
|
||||
(js2-line-break))
|
||||
((-contains? '(c-mode c++-mode objc-mode java-mode) major-mode)
|
||||
((-contains? '(java-mode php-mode) major-mode)
|
||||
(c-indent-new-comment-line))
|
||||
((-contains? '(c-mode c++-mode objc-mode css-mode scss-mode) major-mode)
|
||||
(newline-and-indent)
|
||||
(insert "* ")
|
||||
(indent-according-to-mode))
|
||||
(t (indent-new-comment-line))))
|
||||
(t (newline-and-indent))))
|
||||
|
|
|
@ -61,34 +61,31 @@ the checking happens for all pairs in auto-minor-mode-alist"
|
|||
|
||||
|
||||
;; Keybindings ;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
(defun bind (state &rest keys)
|
||||
(let ((state-list state)
|
||||
(is-global (or (stringp state)
|
||||
(vectorp state)))
|
||||
keymap)
|
||||
(if is-global
|
||||
(setq keys (-insert-at 0 state keys))
|
||||
(progn
|
||||
(if (keymapp (car keys))
|
||||
(setq keymap (pop keys)))
|
||||
(if (or (keymapp state)
|
||||
(not (listp state)))
|
||||
(setq state-list (list state)))))
|
||||
(defun bind (&rest keys)
|
||||
(let (state-list keymap key def)
|
||||
(while keys
|
||||
(let ((-key (pop keys))
|
||||
(-def (pop keys)))
|
||||
(if (stringp -key)
|
||||
(setq -key (kbd -key)))
|
||||
(if is-global
|
||||
(global-set-key -key -def)
|
||||
(dolist (-state state-list)
|
||||
(cond ((evil-state-p -state)
|
||||
(define-key
|
||||
(if keymap
|
||||
(evil-get-auxiliary-keymap keymap -state t)
|
||||
(evil-state-property -state :keymap t)) -key -def))
|
||||
((keymapp -state)
|
||||
(define-key -state -key -def)))))))))
|
||||
(setq key (pop keys))
|
||||
(cond ((keymapp key)
|
||||
(setq keymap key))
|
||||
((or (evil-state-p key)
|
||||
(and (listp key) (evil-state-p (car key))))
|
||||
(setq state-list key))
|
||||
(t
|
||||
(if (stringp key)
|
||||
(setq key (kbd key)))
|
||||
(setq def (pop keys))
|
||||
(when (null def)
|
||||
(user-error "No definition for '%s' keybinding" key))
|
||||
(if (null state-list)
|
||||
(if (null keymap)
|
||||
(global-set-key key def)
|
||||
(define-key keymap key def))
|
||||
(unless (listp state-list)
|
||||
(setq state-list (list state-list)))
|
||||
(dolist (state state-list)
|
||||
(define-key (if keymap
|
||||
(evil-get-auxiliary-keymap keymap state t)
|
||||
(evil-state-property state :keymap t)) key def))))))))
|
||||
|
||||
(after "evil"
|
||||
(evil-define-command my--maybe-exit-insert-mode ()
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue