Updating emacs.d files
This commit is contained in:
parent
ec6d152756
commit
cb99d818fb
14 changed files with 242 additions and 219 deletions
|
@ -29,7 +29,7 @@
|
|||
(auto-compression-mode t) ; Transparently open compressed files
|
||||
(global-font-lock-mode t) ; Enable syntax highlighting for older emacs
|
||||
(global-auto-revert-mode 1) ; revert buffers for changed files
|
||||
(electric-indent-mode -1) ; In case of emacs 24.4
|
||||
(electric-indent-mode -1) ; In case of emacs >24.4
|
||||
|
||||
;;; window layout undo/redo
|
||||
(winner-mode 1)
|
||||
|
@ -145,7 +145,7 @@
|
|||
;;;; Editor behavior ;;;;;;;;;;;;;;;;
|
||||
;; spaces instead of tabs
|
||||
(setq-default indent-tabs-mode nil) ; spaces instead of tabs
|
||||
(setq-default tab-always-indent nil)
|
||||
(setq-default tab-always-indent t)
|
||||
(setq-default tab-width 4)
|
||||
|
||||
(setq require-final-newline t)
|
||||
|
|
|
@ -6,24 +6,13 @@
|
|||
;;;###autoload
|
||||
(defun load-dark-theme()
|
||||
(interactive)
|
||||
;; (sml/apply-theme 'respectful)
|
||||
(load-theme *dark-theme t))
|
||||
|
||||
;;;###autoload
|
||||
(defun load-light-theme()
|
||||
(interactive)
|
||||
;; (sml/apply-theme 'light)
|
||||
(load-theme *light-theme t))
|
||||
|
||||
;;;###autoload
|
||||
(defun load-font (font size)
|
||||
(interactive)
|
||||
(when window-system
|
||||
(let ((font-str (concat font "-" (number-to-string size))))
|
||||
(if (member font (font-family-list))
|
||||
(set-frame-font font-str t t)
|
||||
(error "Font %s not installed" font)))))
|
||||
|
||||
;;;###autoload
|
||||
(defun toggle-transparency ()
|
||||
(interactive)
|
||||
|
@ -49,16 +38,4 @@
|
|||
(if (>= my/cycle-font-i (1- (length *fonts)))
|
||||
(setq my/cycle-font-i 0)
|
||||
(cl-incf my/cycle-font-i)))
|
||||
(let* ((font (nth my/cycle-font-i *fonts))
|
||||
(font-name (nth 0 font))
|
||||
(font-size (nth 1 font))
|
||||
(font-aa (nth 2 font))
|
||||
(font-line (nth 3 font)))
|
||||
(unless (member font-name (font-family-list))
|
||||
(error "Font %s isn't installed" font-name))
|
||||
(let ((font-str (concat font-name "-" (number-to-string font-size))))
|
||||
(add-to-list 'default-frame-alist `(font . ,font-str))
|
||||
(add-to-list 'initial-frame-alist `(font . ,font-str)))
|
||||
(load-font font-name font-size)
|
||||
(setq ns-antialias-text font-aa)
|
||||
(setq-default line-spacing font-line)))
|
||||
(set-frame-font (nth my/cycle-font-i *fonts)))
|
||||
|
|
35
init.el
35
init.el
|
@ -18,11 +18,6 @@
|
|||
;;; Code:
|
||||
(defconst DEBUG-MODE nil)
|
||||
|
||||
(require 'cask)
|
||||
(cask-initialize)
|
||||
|
||||
(eval-when-compile (require 'use-package))
|
||||
|
||||
(defconst my-dir user-emacs-directory)
|
||||
(defconst my-core-dir (concat my-dir "core/"))
|
||||
(defconst my-modules-dir (concat my-dir "init/"))
|
||||
|
@ -34,9 +29,9 @@
|
|||
(defconst *dark-theme 'v0)
|
||||
(defconst *light-theme 'github) ; wtb better light theme...
|
||||
|
||||
(defconst *fonts `(("Terminus (TTF)" 12 nil 0.1)
|
||||
("Ubuntu Mono" 16 t 0)
|
||||
("Inconsolata" 22 t 0)))
|
||||
(defconst *fonts `(,(font-spec :family "Terminus (TTF)" :size 12 :antialias nil)
|
||||
,(font-spec :family "Ubuntu Mono" :size 16 :antialias t)
|
||||
,(font-spec :family "Inconsolata" :size 22 :antialias t)))
|
||||
|
||||
(add-to-list 'load-path my-core-dir)
|
||||
(add-to-list 'load-path my-modules-dir)
|
||||
|
@ -47,7 +42,11 @@
|
|||
(normal-top-level-add-subdirs-to-load-path))
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
;; Just the... bear necessities...
|
||||
|
||||
(require 'cask)
|
||||
(cask-initialize)
|
||||
|
||||
(eval-when-compile (require 'use-package))
|
||||
(mapc 'require
|
||||
;; ls init/{init,my}* | xargs basename | sed -e 's/\..*$//'
|
||||
'(core
|
||||
|
@ -55,27 +54,28 @@
|
|||
;; init-auto-complete
|
||||
init-auto-insert ; for the lazy typis
|
||||
init-company ; see above
|
||||
init-dev ; general dev tools/settings
|
||||
;; init-floobits ; when I'm feeling lonely
|
||||
init-fly ; fly(check|spell)
|
||||
init-git ; git-gutter + modes
|
||||
init-helm ; a search engine for your life
|
||||
init-ido ; a search engine for your car keys
|
||||
init-project ; project tools - dired, perspective, neotree
|
||||
init-projectile ; when you forget where you put your house
|
||||
|
||||
init-cc ; C/C++/Obj-C madness
|
||||
;; init-d ; D - It's C, but better!
|
||||
;; init-cscope
|
||||
init-csharp
|
||||
init-dev ; general dev tools/settings
|
||||
init-lisp ; all things lisp; elisp, clojure
|
||||
;; init-erlang
|
||||
;; init-eshell
|
||||
;; init-floobits ; when I'm feeling lonely
|
||||
init-fly ; fly(check|spell)
|
||||
init-git ; git-gutter + modes
|
||||
;; init-go
|
||||
init-helm ; a search engine for your life
|
||||
init-ido ; a search engine for your car keys
|
||||
init-java ; the poster child for carpal tunnel syndome
|
||||
init-js ; alert("not java, javascript!")
|
||||
init-lua ; zero-based indices? Zero-based indices.
|
||||
init-org ; for fearless leader (who is organized)
|
||||
init-php ; making php less painful to work with
|
||||
init-project ; project tools - dired, perspective, neotree
|
||||
init-projectile ; when you forget where you put your house
|
||||
init-python ; beautiful is better than ugly
|
||||
init-regex ; /^[^\s](meaning)[^\n]*/
|
||||
init-ruby ; <3
|
||||
|
@ -93,6 +93,7 @@
|
|||
|
||||
my-bindings
|
||||
my-settings
|
||||
my-defuns
|
||||
))
|
||||
|
||||
;; I've created a monster!
|
||||
|
|
|
@ -31,7 +31,7 @@
|
|||
;; Shell scripts
|
||||
(template "\\.z?sh$" "%%" 'sh-mode)
|
||||
|
||||
;; ;; ;; Ruby
|
||||
;; Ruby
|
||||
(template "/spec_helper\\.rb$" "%helper%" 'rspec-mode t)
|
||||
(template "_spec\\.rb$" "%%" 'rspec-mode t)
|
||||
(template "/\\.rspec$" "%.rspec%" 'rspec-mode)
|
||||
|
@ -41,44 +41,44 @@
|
|||
(template "/lib/.+\\.rb$" "%module%" 'ruby-mode t)
|
||||
(template "\\.rb$" "%%" 'ruby-mode)
|
||||
|
||||
;; ;; ;; Python
|
||||
;; ;; (template "tests?/test_.+\\.py$" "%%" 'nose-mode)
|
||||
;; ;; (template "/setup\\.py$" "%setup%" 'python-mode)
|
||||
;; ;; Python
|
||||
;; (template "tests?/test_.+\\.py$" "%%" 'nose-mode)
|
||||
;; (template "/setup\\.py$" "%setup%" 'python-mode)
|
||||
(template "\\.py$" "%%" 'python-mode)
|
||||
|
||||
;; ;; ;; PHP
|
||||
;; ;; (template "\\.class\\.php$" "%class%" 'php-mode)
|
||||
;; ;; (template "\\.php$" "%%" 'php-mode)
|
||||
;; ;; PHP
|
||||
;; (template "\\.class\\.php$" "%class%" 'php-mode)
|
||||
;; (template "\\.php$" "%%" 'php-mode)
|
||||
|
||||
;; ;; ;; Markdown
|
||||
;; ;; Markdown
|
||||
(template "/README\\.md$" "%README.md%" 'markdown-mode)
|
||||
;; ;; (template "/_posts/.+\\.md$" "%jekyll-post" 'markdown-mode)
|
||||
;; ;; (template "/_layouts/.+\\.html$" "%jekyll-layout%" 'web-mode)
|
||||
;; (template "/_posts/.+\\.md$" "%jekyll-post" 'markdown-mode)
|
||||
;; (template "/_layouts/.+\\.html$" "%jekyll-layout%" 'web-mode)
|
||||
|
||||
;; ;; ;; Javascript
|
||||
;; ;; (template "\\.lbaction/Contents/Info.plist$" "%lb6%" 'nxml-mode)
|
||||
;; ;; (template "\\.lbaction/.+/\\(default\\|suggestions\\)\\.js$" "%lb6%" 'js-mode)
|
||||
;; ;; (template "/package\\.json$" "%package.json%" 'json-mode)
|
||||
;; ;; (template "\\.\\(json\\|jshintrc\\)$" "%%" 'json-mode)
|
||||
;; ;; Javascript
|
||||
;; (template "\\.lbaction/Contents/Info.plist$" "%lb6%" 'nxml-mode)
|
||||
;; (template "\\.lbaction/.+/\\(default\\|suggestions\\)\\.js$" "%lb6%" 'js-mode)
|
||||
;; (template "/package\\.json$" "%package.json%" 'json-mode)
|
||||
;; (template "\\.\\(json\\|jshintrc\\)$" "%%" 'json-mode)
|
||||
|
||||
;; ;; ;; SCSS
|
||||
;; ;; (template "/master\\.scss$" "%master%" 'scss-mode)
|
||||
;; ;; (template "/normalize\\.scss$" "%normalize%" 'scss-mode)
|
||||
;; ;; (template "\\.scss$" "%%" 'scss-mode)
|
||||
;; ;; SCSS
|
||||
;; (template "/master\\.scss$" "%master%" 'scss-mode)
|
||||
;; (template "/normalize\\.scss$" "%normalize%" 'scss-mode)
|
||||
;; (template "\\.scss$" "%%" 'scss-mode)
|
||||
|
||||
;; ;; ;; HTML
|
||||
;; ;; (template "\\.html$" "%%" 'web-mode)
|
||||
;; ;; HTML
|
||||
;; (template "\\.html$" "%%" 'web-mode)
|
||||
|
||||
;; ;; ;; Lua
|
||||
;; ;; (template "\\.love/main\\.lua$" "%love.main%" 'lua-mode)
|
||||
;; ;; (template "\\.love/conf\\.lua$" "%love.conf%" 'lua-mode)
|
||||
;; ;; (template "\\.lua$" "%%" 'lua-mode)
|
||||
;; Lua
|
||||
;; (template "\\.love/main\\.lua$" "%love.main%" 'lua-mode)
|
||||
;; (template "\\.love/conf\\.lua$" "%love.conf%" 'lua-mode)
|
||||
;; (template "\\.lua$" "%%" 'lua-mode)
|
||||
|
||||
;; ;; ;; Java
|
||||
;; ;; (template "/src/.+/.+\\.java$ "%%" 'java-mode)
|
||||
;; ;; (template "\\.gradle$" "%%" 'groovy-mode)
|
||||
;; ;; Java
|
||||
;; (template "/src/.+/.+\\.java$ "%%" 'java-mode)
|
||||
;; (template "\\.gradle$" "%%" 'groovy-mode)
|
||||
|
||||
;; ;; ;; Elisp
|
||||
;; ;; Elisp
|
||||
(template "\\.emacs\\.d/.+\\.el$" "%initfile%" 'emacs-lisp-mode)
|
||||
(template "\\.emacs\\.d/snippets/.+$" "%%" 'snippet-mode))
|
||||
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
(use-package cmake-mode
|
||||
:disabled t
|
||||
:mode "CMakeLists\\.txt$"
|
||||
:config
|
||||
(progn
|
||||
|
@ -59,26 +58,6 @@
|
|||
. objc-mode))
|
||||
(after "flycheck" (add-hook! 'objc-mode-hook (use-package flycheck-objc))))
|
||||
|
||||
;; (use-package ycmd
|
||||
;; :init (add-hook 'c++-mode-hook 'ycmd-mode)
|
||||
;; :config
|
||||
;; (progn
|
||||
;; (setq ycmd-global-config (f-full "~/.ycm_extra_conf.py"))
|
||||
;; (setq ycmd-server-command `("/usr/local/bin/python" ,(f-full "~/.emacs.d/ext/YouCompleteMe/third_party/ycmd/ycmd/")))
|
||||
;; (use-package company-ycmd
|
||||
;; :init (company--backend-on 'c++-mode-hook 'company-ycmd))))
|
||||
|
||||
;; (after "auto-complete"
|
||||
;; (when is-mac (setq ac-clang-flags (my--clang-includes-flags)))
|
||||
;; (add-hook! 'c-mode-common-hook
|
||||
;; (use-package auto-complete-clang)
|
||||
;; (use-package auto-complete-c-headers)
|
||||
;; (setq ac-sources
|
||||
;; '(ac-source-clang
|
||||
;; ac-source-c-headers
|
||||
;; ac-source-yasnippet
|
||||
;; ac-source-words-in-same-mode-buffers))))
|
||||
|
||||
(after "company"
|
||||
;; TODO Clang is *really* slow in larger projects, maybe replace it with irony-mode or ycmd?
|
||||
(company--backend-on 'c-mode-hook 'company-c-headers 'company-clang)
|
||||
|
@ -93,6 +72,8 @@
|
|||
(c-set-offset 'block-open '+)
|
||||
(c-set-offset 'brace-list-open '+) ; all "opens" should be indented by the c-indent-level
|
||||
(c-set-offset 'case-label '+) ; indent case labels by c-indent-level, too
|
||||
(c-set-offset 'access-label '-)
|
||||
(c-set-offset 'inclass '++)
|
||||
|
||||
;; DEL mapping interferes with smartparens and my.deflate-maybe
|
||||
(bind c-mode-map (kbd "DEL") nil))
|
||||
|
@ -148,8 +129,7 @@
|
|||
;; user-defined types (rather project-specific)
|
||||
("\\<[A-Za-z_]+[A-Za-z_0-9]*_\\(type\\|ptr\\)\\>" . font-lock-type-face)
|
||||
("\\<\\(xstring\\|xchar\\)\\>" . font-lock-type-face)
|
||||
))
|
||||
t)
|
||||
)) t)
|
||||
|
||||
;; Fix enum and C++11 lambda indentation
|
||||
(defadvice c-lineup-arglist (around c-lineup-arglist-indent-fix activate)
|
||||
|
|
|
@ -2,7 +2,8 @@
|
|||
:defer t
|
||||
:config
|
||||
(progn
|
||||
(setq omnisharp-server-executable-path "~/Dropbox/projects/lib/Omnisharp/server/OmniSharp/bin/Debug/OmniSharp.exe")
|
||||
(setq omnisharp-server-executable-path
|
||||
"~/Dropbox/projects/lib/Omnisharp/server/OmniSharp/bin/Debug/OmniSharp.exe")
|
||||
|
||||
(bind 'normal omnisharp-mode-map
|
||||
"gd" 'omnisharp-go-to-definition)
|
||||
|
@ -11,19 +12,12 @@
|
|||
(company--backend-on 'csharp-mode-hook 'company-omnisharp)
|
||||
(add-hook 'csharp-mode-hook 'turn-on-eldoc-mode))))
|
||||
|
||||
(use-package csharp-mode :mode "\\.cs$")
|
||||
;; (use-package csharp-mode
|
||||
;; :mode "\\.cs$"
|
||||
;; :config
|
||||
;; (bind 'insert csharp-mode-map (kbd "C-SPC") 'omnisharp-auto-complete))
|
||||
;; :init
|
||||
;; (add-hook! 'csharp-mode-hook (omnisharp-mode t) (flycheck-mode t)))
|
||||
(use-package csharp-mode :mode "\\.cs$"
|
||||
:config
|
||||
(after "flycheck" (add-hook 'csharp-mode-hook 'flycheck-mode)))
|
||||
|
||||
;; unity shaders
|
||||
(use-package shaderlab-mode :mode "\\.shader$")
|
||||
|
||||
;; TODO Make more Unity-friendly
|
||||
|
||||
|
||||
(provide 'init-csharp)
|
||||
;;; init-csharp.el ends here
|
||||
|
|
|
@ -5,10 +5,15 @@
|
|||
(setq-default flycheck-indication-mode 'right-fringe
|
||||
;; Removed checks on idle/change for snappiness
|
||||
flycheck-check-syntax-automatically '(save mode-enabled)
|
||||
flycheck-disabled-checkers '(emacs-lisp-checkdoc emacs-lisp make))
|
||||
flycheck-disabled-checkers '(emacs-lisp-checkdoc make))
|
||||
(dolist (hook '(ruby-mode-hook
|
||||
python-mode-hook
|
||||
php-mode-hook
|
||||
lua-mode-hook
|
||||
shell-mode-hook
|
||||
scss-mode-hook
|
||||
c++-mode-hook
|
||||
c-mode-hook
|
||||
))
|
||||
(add-hook hook 'flycheck-mode)))
|
||||
:config
|
||||
|
|
|
@ -51,9 +51,11 @@
|
|||
(use-package unityjs-mode
|
||||
:mode "/Assets/*.js$"
|
||||
:config
|
||||
(progn
|
||||
(add-hook 'unityjs-mode-hook 'flycheck-mode)
|
||||
(add-hook! 'unityjs-mode-hook
|
||||
(enable-tab-width-2)
|
||||
(setq js-indent-level 2)))
|
||||
(setq js-indent-level 2))))
|
||||
|
||||
|
||||
(provide 'init-js)
|
||||
|
|
|
@ -193,23 +193,23 @@
|
|||
"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)
|
||||
"¬" 'org-metaright ; M-j
|
||||
"˙" 'org-metaleft ; M-h
|
||||
"˚" 'org-metaup ; M-k
|
||||
"Δ" 'org-metadown ; M-j
|
||||
"Ò" 'org-shiftmetaright ; M-L
|
||||
"Ó" 'org-shiftmetaleft ; M-H
|
||||
"" 'org-shiftmetaup ; M-K
|
||||
"Ô" 'org-shiftmetadown) ; M-J
|
||||
|
||||
(bind 'insert evil-org-mode-map
|
||||
"C-e" 'org-end-of-line
|
||||
"C-a" 'org-beginning-of-line)
|
||||
(bind '(insert normal) evil-org-mode-map
|
||||
"<s-left>" 'org-beginning-of-line
|
||||
"<s-right>" 'org-end-of-line
|
||||
"<s-up>" 'org-up-element
|
||||
"<s-down>" 'org-down-element)
|
||||
"<M-left>" 'org-beginning-of-line
|
||||
"<M-right>" 'org-end-of-line
|
||||
"<M-up>" 'org-up-element
|
||||
"<M-down>" 'org-down-element)
|
||||
|
||||
;; Formatting shortcuts
|
||||
(defun my/org-surround (delim)
|
||||
|
@ -217,19 +217,19 @@
|
|||
|
||||
(bind 'insert evil-org-mode-map
|
||||
;; Add new header line before this line
|
||||
(kbd "<S-s-return>") 'my--org-insert-item-before
|
||||
(kbd "<S-M-return>") 'my--org-insert-item-before
|
||||
;; Add new header line after this line
|
||||
(kbd "<s-return>") 'my--org-insert-item-after
|
||||
(kbd "<M-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
|
||||
(kbd "M-b") (λ (my/org-surround "*")) ; bold
|
||||
(kbd "M-u") (λ (my/org-surround "_")) ; underline
|
||||
(kbd "M-i") (λ (my/org-surround "/")) ; italics
|
||||
(kbd "M-`") (λ (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+")
|
||||
(kbd "M-b") "S*"
|
||||
(kbd "M-u") "S_"
|
||||
(kbd "M-i") "S/"
|
||||
(kbd "M-`") "S+")
|
||||
|
||||
(bind '(normal visual) evil-org-mode-map
|
||||
", l" 'org-insert-link)
|
||||
|
@ -267,8 +267,8 @@
|
|||
"-" '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
|
||||
"<S-M-return>" 'my--org-insert-item-before
|
||||
"<M-return>" 'my--org-insert-item-after
|
||||
"RET" (λ (cond ((org-at-item-checkbox-p)
|
||||
(org-toggle-checkbox))
|
||||
((org-entry-is-todo-p)
|
||||
|
|
|
@ -52,6 +52,7 @@
|
|||
:defer t
|
||||
:init
|
||||
(progn
|
||||
(add-hook 'css-mode-hook 'emmet-mode)
|
||||
(add-hook 'scss-mode-hook 'emmet-mode)
|
||||
(add-hook 'web-mode-hook 'emmet-mode)
|
||||
(add-hook 'html-mode-hook 'emmet-mode)
|
||||
|
|
|
@ -115,7 +115,15 @@
|
|||
(goto-char position))))
|
||||
|
||||
;; Prevents Yas from stepping on my toes when I use backspace
|
||||
(defun my/yas-clear-field (&optional field)
|
||||
(defun my/yas-backspace (&optional field)
|
||||
(interactive)
|
||||
(let ((field (or field (and yas--active-field-overlay
|
||||
(overlay-buffer yas--active-field-overlay)
|
||||
(overlay-get yas--active-field-overlay 'yas--field)))))
|
||||
(cond ((eq (point) (marker-position (yas--field-start field))) nil)
|
||||
(t (delete-char -1)))))
|
||||
|
||||
(defun my/yas-delete (&optional field)
|
||||
(interactive)
|
||||
(let ((field (or field (and yas--active-field-overlay
|
||||
(overlay-buffer yas--active-field-overlay)
|
||||
|
@ -125,15 +133,28 @@
|
|||
(eq (point) (marker-position (yas--field-start field))))
|
||||
(yas--skip-and-clear field)
|
||||
(yas-next-field 1))
|
||||
(t (delete-char -1)))))
|
||||
((eq (point) (marker-position (yas--field-end field))) nil)
|
||||
(t (delete-char 1)))))
|
||||
|
||||
(defun my/yas-clear-to-sof (&optional field)
|
||||
(interactive)
|
||||
(let* ((field (or field (and yas--active-field-overlay
|
||||
(overlay-buffer yas--active-field-overlay)
|
||||
(overlay-get yas--active-field-overlay 'yas--field))))
|
||||
(sof (marker-position (yas--field-start field))))
|
||||
(when (and field (> (point) sof))
|
||||
(delete-region sof (point)))))
|
||||
|
||||
;; keybinds
|
||||
(bind yas-keymap
|
||||
"C-e" 'my/yas-goto-end-of-field
|
||||
"C-a" 'my/yas-goto-start-of-field
|
||||
"<s-right>" 'my/yas-goto-end-of-field
|
||||
"<s-left>" 'my/yas-goto-start-of-field
|
||||
[backspace] 'my/yas-clear-field)))
|
||||
"<M-right>" 'my/yas-goto-end-of-field
|
||||
"<M-left>" 'my/yas-goto-start-of-field
|
||||
"<M-backspace>" 'my/yas-clear-to-sof
|
||||
|
||||
[backspace] 'my/yas-backspace
|
||||
"<delete>" 'my/yas-delete)))
|
||||
|
||||
|
||||
(provide 'init-yasnippet)
|
||||
|
|
|
@ -2,28 +2,25 @@
|
|||
;; Global keymaps ;;
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
|
||||
(bind (kbd "M-x") 'smex
|
||||
(kbd "M-X") 'smex-major-mode-commands
|
||||
(bind (kbd "≈") 'smex
|
||||
(kbd "˛") 'smex-major-mode-commands
|
||||
(kbd "C-;") 'eval-expression
|
||||
(kbd "C-`") 'popwin:toggle-popup-window
|
||||
|
||||
(kbd "s-=") 'text-scale-increase
|
||||
(kbd "s--") 'text-scale-decrease
|
||||
(kbd "s-w") 'evil-window-delete
|
||||
(kbd "s-/") 'evilnc-comment-or-uncomment-lines)
|
||||
(kbd "M-=") 'text-scale-increase
|
||||
(kbd "M--") 'text-scale-decrease
|
||||
(kbd "M-w") 'evil-window-delete
|
||||
(kbd "M-/") 'evilnc-comment-or-uncomment-lines
|
||||
(kbd "M-s") 'save-buffer)
|
||||
|
||||
;; Faster scrolling
|
||||
(bind 'motion my-mode-map
|
||||
(kbd "s-j") "6j"
|
||||
(kbd "s-k") "6k")
|
||||
(kbd "M-j") "6j"
|
||||
(kbd "M-k") "6k")
|
||||
|
||||
(bind 'normal my-mode-map
|
||||
(kbd "s-o") 'ido-find-file
|
||||
(kbd "s-d") 'dash-at-point)
|
||||
|
||||
(bind 'visual my-mode-map
|
||||
(kbd "s-r") 'my-run-code-region
|
||||
(kbd "s-R") 'my-send-region-to-repl)
|
||||
(kbd "M-o") 'ido-find-file
|
||||
(kbd "M-d") 'dash-at-point)
|
||||
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
|
@ -119,17 +116,17 @@
|
|||
(bind 'emacs [escape] 'evil-normal-state)
|
||||
|
||||
(bind 'insert my-mode-map
|
||||
"<M-kp-delete>" (λ (evil-forward-word) (evil-delete-backward-word))
|
||||
"<A-backspace>" 'evil-delete-backward-word
|
||||
"<A-delete>" (λ (evil-forward-word) (evil-delete-backward-word))
|
||||
|
||||
;; Newline magic
|
||||
"<backspace>" 'backward-delete-char-untabify
|
||||
"<S-backspace>" 'backward-delete-char
|
||||
"<M-backspace>" 'my.backward-kill-to-bol-and-indent
|
||||
"<C-return>" 'evil-ret-and-indent
|
||||
"<M-return>" (kbd "<return> DEL") ; newline and dedent
|
||||
|
||||
;; Textmate-esque indent shift left/right
|
||||
"s-[" (kbd "C-o m l C-o I DEL C-o ` l")
|
||||
"s-]" (λ (evil-shift-right (point-at-bol) (point-at-eol)))
|
||||
"M-[" (kbd "C-o m l C-o I DEL C-o ` l")
|
||||
"M-]" (λ (evil-shift-right (point-at-bol) (point-at-eol)))
|
||||
"<backtab>" (kbd "s-["))
|
||||
|
||||
;; Enable TAB to do matchit
|
||||
|
@ -165,5 +162,58 @@
|
|||
(evil-make-overriding-map my-mode-map nil)
|
||||
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
;; Keymap fixes ;;
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
|
||||
;; This section is dedicated to keymaps that "fix" certain keys so
|
||||
;; that they behave more like vim (or how I like it).
|
||||
|
||||
;; Restores "dumb" indentation to the tab key. This rustles a lot of
|
||||
;; peoples' jimmies, apparently, but it's how I like it.
|
||||
(bind 'insert "<tab>" 'my.dumb-indent)
|
||||
(bind 'insert "<A-tab>" 'indent-for-tab-command)
|
||||
|
||||
;; Except for lisp
|
||||
(bind 'insert lisp-mode-map [remap my.dumb-indent] 'indent-for-tab-command)
|
||||
(bind 'insert emacs-lisp-mode-map [remap my.dumb-indent] 'indent-for-tab-command)
|
||||
|
||||
;; Highjacks space/backspace to:
|
||||
;; a) delete spaces on either side of the cursor, if present ( | ) -> (|)
|
||||
;; b) allow backspace to delete space-indented blocks intelligently
|
||||
;; c) and not do any of this magic when inside a string
|
||||
(bind 'insert
|
||||
"SPC" 'my.inflate-space-maybe
|
||||
[remap backward-delete-char-untabify] 'my.deflate-space-maybe
|
||||
[remap newline] 'my.newline-and-indent
|
||||
|
||||
;; Smarter move-to-beginning-of-line
|
||||
[remap move-beginning-of-line] 'my.move-to-bol
|
||||
|
||||
;; Restore bash-esque keymaps in insert mode; C-w and C-a already exist
|
||||
"\C-e" 'my.move-to-eol
|
||||
"\C-u" 'my.backward-kill-to-bol-and-indent
|
||||
|
||||
;; Fixes delete
|
||||
(kbd "<kp-delete>") 'delete-char)
|
||||
|
||||
(bind '(insert normal)
|
||||
;; Textmate-esque insert-line before/after
|
||||
(kbd "<M-return>") 'evil-open-below
|
||||
(kbd "<S-M-return>") 'evil-open-above)
|
||||
|
||||
;; Fix osx keymappings and then some
|
||||
(use-package smart-forward
|
||||
:config
|
||||
(bind 'insert
|
||||
(kbd "<M-left>") 'smart-backward
|
||||
(kbd "<M-right>") 'smart-forward
|
||||
;; (kbd "<M-up>") 'beginning-of-buffer
|
||||
(kbd "<M-up>") 'smart-up
|
||||
(kbd "<M-down>") 'smart-down
|
||||
(kbd "<M-backspace>") 'my.backward-kill-to-bol-and-indent))
|
||||
|
||||
|
||||
|
||||
(provide 'my-bindings)
|
||||
;;; my-bindings.el ends here
|
||||
|
|
33
init/my-defuns.el
Normal file
33
init/my-defuns.el
Normal file
|
@ -0,0 +1,33 @@
|
|||
|
||||
(defmacro -defreplace (name search replace)
|
||||
`(evil-define-operator ,(make-symbol (concat "replace:" (symbol-name name))) (beg end)
|
||||
:type inclusive
|
||||
:repeat nil
|
||||
(interactive "<r>")
|
||||
(replace-regexp ,search ,replace t beg end)))
|
||||
|
||||
;;;; HTML ;;;;
|
||||
;; Replace smart quotes and other MS Word verbiage into plain text
|
||||
(defun replace:plain-textify (beg end)
|
||||
(interactive "r")
|
||||
(replace-regexp "…" "..." nil beg end)
|
||||
(replace-regexp "[‘’]" "'" nil beg end)
|
||||
(replace-regexp "[“”]" "\"" nil beg end))
|
||||
|
||||
;; Email address with mailto link
|
||||
(defun replace:email2mailto (beg end)
|
||||
(interactive "r")
|
||||
(replace-regexp "\\b\\([a-zA-Z0-9._+-%]+@[a-zA-Z0-9-.]+\\.[a-zA-Z]+\\)\\b"
|
||||
"<a href=\"mailto:\\1\">\\1</a>"
|
||||
nil beg end))
|
||||
|
||||
;; Link with anchor
|
||||
(defun replace:url2anchor (beg end)
|
||||
(interactive "r")
|
||||
(replace-regexp "\\bhttps?://.+?\\b"
|
||||
"<a href=\"\\1\">\\1</a>"
|
||||
nil beg end))
|
||||
|
||||
|
||||
(provide 'my-defuns)
|
||||
;;; my-defuns.el ends here
|
|
@ -36,47 +36,7 @@
|
|||
|
||||
|
||||
;;;; Keymap Fixes ;;;;;;;;;;;;;;;;;;;;;;
|
||||
;; This section is dedicated to keymaps that "fix" certain keys so
|
||||
;; that they behave more like vim (or how I like it).
|
||||
|
||||
;; Restores "dumb" indentation to the tab key. This rustles a lot of
|
||||
;; peoples' jimmies, apparently, but it's how I like it.
|
||||
(bind 'insert (kbd "TAB") 'my.dumb-indent)
|
||||
;; Except for lisp
|
||||
(bind 'insert lisp-mode-map [remap my.dumb-indent] 'indent-for-tab-command)
|
||||
(bind 'insert emacs-lisp-mode-map [remap my.dumb-indent] 'indent-for-tab-command)
|
||||
|
||||
;; Highjacks backspace to:
|
||||
;; a) deletes spaces on either side of the cursor, if present ( | ) -> (|)
|
||||
;; b) allow backspace to delete space-indented blocks intelligently
|
||||
;; c) and not do any of this magic when inside a string
|
||||
(bind 'insert
|
||||
[remap backward-delete-char-untabify] 'my.deflate-space-maybe
|
||||
[remap newline] 'my.newline-and-indent
|
||||
|
||||
;; Smarter move-to-beginning-of-line
|
||||
[remap move-beginning-of-line] 'my.move-to-bol
|
||||
|
||||
;; Restore bash-esque keymaps in insert mode; C-w and C-a already exist
|
||||
"\C-e" 'my.move-to-eol
|
||||
"\C-u" 'my.backward-kill-to-bol-and-indent
|
||||
|
||||
;; Fixes delete
|
||||
(kbd "<kp-delete>") 'delete-char)
|
||||
|
||||
(bind '(insert normal)
|
||||
;; Textmate-esque insert-line before/after
|
||||
(kbd "<s-return>") 'evil-open-below
|
||||
(kbd "<S-s-return>") 'evil-open-above)
|
||||
|
||||
;; Fix osx keymappings and then some
|
||||
(bind 'insert
|
||||
(kbd "<s-left>") 'my.move-to-bol
|
||||
(kbd "<s-right>") 'my.move-to-eol
|
||||
(kbd "<s-up>") 'beginning-of-buffer
|
||||
(kbd "<s-down>") 'end-of-buffer
|
||||
(kbd "<s-backspace>") 'my.backward-kill-to-bol-and-indent)
|
||||
|
||||
;; Implements some helpful keymappings for emacs sub-modes
|
||||
(add-hook! 'ido-setup-hook
|
||||
(bind ido-completion-map
|
||||
(kbd "<backspace>") 'ido-delete-backward-updir
|
||||
|
@ -91,7 +51,6 @@
|
|||
minibuffer-local-isearch-map)
|
||||
[escape] 'my--minibuffer-quit)
|
||||
(bind 'emacs [escape] 'my--minibuffer-quit)
|
||||
(bind 'god [escape] 'evil-god-state-bail)
|
||||
(bind 'normal evil-command-window-mode-map [escape] 'kill-buffer-and-window)
|
||||
;; (bind evil-ex-map [escape] 'my--minibuffer-quit)
|
||||
|
||||
|
@ -121,7 +80,7 @@
|
|||
(interactive)
|
||||
(message "Gee, I dunno Brain..."))
|
||||
|
||||
(if is-mac (global-set-key (kbd "s-q") 'my-emacs-is-not-kill))
|
||||
(if is-mac (global-set-key (kbd "M-q") 'my-emacs-is-not-kill))
|
||||
|
||||
|
||||
(provide 'my-settings)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue