tabs don't belong in Lisp

ご主人様
not manx 4 years ago
parent 4accec9268
commit da4a856b80
Signed by: C-xC-c
GPG Key ID: F52ED472284EF2F4

@ -1,136 +1,137 @@
(defmacro definteractive (name &rest body) (defmacro definteractive (name &rest body)
`(defun ,name ,(car body) `(defun ,name ,(car body)
(interactive) (interactive)
,@(cdr body))) ,@(cdr body)))
(defmacro lambdainteractive (&rest body) (defmacro lambdainteractive (&rest body)
`(lambda ,(car body) (interactive) ,@(cdr body))) `(lambda ,(car body) (interactive) ,@(cdr body)))
(defmacro local-keybind (key value) (defmacro local-keybind (key value)
`(lambda () (local-set-key (kbd ,key) (quote ,value)))) `(lambda () (local-set-key (kbd ,key) (quote ,value))))
(setq use-package-always-ensure t (setq use-package-always-ensure t
use-package-verbose t) use-package-verbose t)
(use-package diminish) (use-package diminish)
(use-package company (use-package company
:diminish 'company-mode :diminish 'company-mode
:bind (:map company-mode-map :bind (:map company-mode-map
("C-c /" . 'yas-expand)) ("C-c /" . 'yas-expand))
:custom :custom
(company-idle-delay 0) (company-idle-delay 0)
(company-minimum-prefix-length 3) (company-minimum-prefix-length 3)
:init (add-hook 'after-init-hook 'global-company-mode)) :init (add-hook 'after-init-hook 'global-company-mode))
(use-package csharp-mode (use-package csharp-mode
:defer t :defer t
:config :config
(use-package omnisharp (use-package omnisharp
:defer t :defer t
:config :config
(add-hook 'csharp-mode-hook 'omnisharp-mode) (add-hook 'csharp-mode-hook 'omnisharp-mode)
(add-to-list 'company-backends 'company-omnisharp))) (add-to-list 'company-backends 'company-omnisharp)))
(use-package elixir-mode (use-package elixir-mode
:defer t :defer t
:config (use-package alchemist)) :config (use-package alchemist))
(use-package nginx-mode (use-package nginx-mode
:custom :custom
(nginx-indent-tabs-mode t) (nginx-indent-tabs-mode t)
(nginx-indent-level 2) (nginx-indent-level 2)
:config (add-to-list 'auto-mode-alist '("/nginx/sites-\\(?:available\\|enabled\\)/" . nginx-mode))) :config (add-to-list 'auto-mode-alist '("/nginx/sites-\\(?:available\\|enabled\\)/" . nginx-mode)))
(use-package slime (use-package slime
:defer t :defer t
:custom :custom
(slime-lisp-implementations (slime-lisp-implementations
'((sbcl ("sbcl" "--core" "/usr/lib64/sbcl/sbcl.core") '((sbcl ("sbcl" "--core" "/usr/lib64/sbcl/sbcl.core")
:env ("SBCL_HOME=/usr/lib64/sbcl/")))) :env ("SBCL_HOME=/usr/lib64/sbcl/"))))
:diminish 'slime-mode :diminish 'slime-mode
:init :init
(use-package slime-company) (use-package slime-company)
(add-hook 'lisp-mode-hook 'slime-mode) (add-hook 'lisp-mode-hook 'slime-mode)
(slime-setup '(slime-fancy slime-company))) (slime-setup '(slime-fancy slime-company)))
(use-package keychain-environment (use-package keychain-environment
:bind ("C-c r e" . 'keychain-refresh-environment) :bind ("C-c r e" . 'keychain-refresh-environment)
:init (keychain-refresh-environment)) :init (keychain-refresh-environment))
(use-package htmlize) (use-package htmlize)
(use-package spaceline (use-package spaceline
:custom (powerline-default-seperator (quote arrow)) :init
:init (require 'spaceline-config)
(require 'spaceline-config) (spaceline-spacemacs-theme)
(spaceline-spacemacs-theme) :config
:config (spaceline-toggle-buffer-size-off)) (spaceline-toggle-buffer-size-off)
(setq powerline-default-seperator (quote arrow)))
(use-package dashboard (use-package dashboard
:diminish (dashboard-mode page-break-lines-mode) :diminish (dashboard-mode page-break-lines-mode)
:custom :custom
(dashboard-center-content t) (dashboard-center-content t)
(dashboard-banner-logo-title "Komacs") (dashboard-banner-logo-title "Komacs")
(dashboard-set-init-info t) (dashboard-set-init-info t)
(dashboard-startup-banner "~/.emacs.d/Komacs.png") (dashboard-startup-banner "~/.emacs.d/Komacs.png")
(dashboard-show-shortcuts nil) (dashboard-show-shortcuts nil)
(dashboard-items '((recents . 5))) (dashboard-items '((recents . 5)))
:config (dashboard-setup-startup-hook)) :config (dashboard-setup-startup-hook))
(setq initial-buffer-choice (lambda () (get-buffer "*dashboard*"))) (setq initial-buffer-choice (lambda () (get-buffer "*dashboard*")))
(use-package switch-window (use-package switch-window
:custom :custom
(switch-window-input-style 'minibuffer) (switch-window-input-style 'minibuffer)
(switch-window-increase 4) (switch-window-increase 4)
(switch-window-threshold 2) (switch-window-threshold 2)
:bind ([remap other-window] . switch-window)) :bind ([remap other-window] . switch-window))
(use-package yasnippet (use-package yasnippet
:diminish 'yas-minor-mode :diminish 'yas-minor-mode
:hook ((html-mode :hook ((html-mode
LaTeX-mode LaTeX-mode
emacs-lisp-mode emacs-lisp-mode
lisp-mode) lisp-mode)
. yas-minor-mode) . yas-minor-mode)
:init ;; These are computationally expensive, so init. :init ;; These are computationally expensive, so init.
(use-package yasnippet-snippets) (use-package yasnippet-snippets)
(yas-reload-all)) (yas-reload-all))
(use-package hungry-delete (use-package hungry-delete
:diminish 'hungry-delete-mode :diminish 'hungry-delete-mode
:config (global-hungry-delete-mode 1)) :config (global-hungry-delete-mode 1))
(use-package which-key (use-package which-key
:diminish 'which-key-mode :diminish 'which-key-mode
:config (which-key-mode)) :config (which-key-mode))
(use-package avy (use-package avy
:bind ("M-s" . avy-goto-char)) :bind ("M-s" . avy-goto-char))
(use-package beacon (use-package beacon
:diminish 'beacon-mode :diminish 'beacon-mode
:config (beacon-mode 1)) :config (beacon-mode 1))
(use-package popup-kill-ring (use-package popup-kill-ring
:bind ("M-y" . popup-kill-ring)) :bind ("M-y" . popup-kill-ring))
(setq ido-enable-flex-matching t (setq ido-enable-flex-matching t
ido-create-new-buffer 'always ido-create-new-buffer 'always
ido-everywhere 1) ido-everywhere 1)
(use-package ido-vertical-mode (use-package ido-vertical-mode
:bind ("C-l" . 'ido-reread-directory) :bind ("C-l" . 'ido-reread-directory)
:custom (ido-vertical-define-keys 'C-n-and-C-p-only) :custom (ido-vertical-define-keys 'C-n-and-C-p-only)
:config :config
(ido-vertical-mode 1) (ido-vertical-mode 1)
(ido-mode 1)) (ido-mode 1))
(definteractive manx/config-reload () (definteractive manx/config-reload ()
(when (get-buffer "config.org") (when (get-buffer "config.org")
(with-current-buffer "config.org" (save-buffer))) (with-current-buffer "config.org" (save-buffer)))
(org-babel-load-file (concat user-emacs-directory "config.org"))) (org-babel-load-file (concat user-emacs-directory "config.org")))
(global-set-key (kbd "C-c x r") 'manx/config-reload) (global-set-key (kbd "C-c x r") 'manx/config-reload)
(global-set-key (kbd "C-c x e") (lambdainteractive () (find-file (concat user-emacs-directory "config.org")))) (global-set-key (kbd "C-c x e") (lambdainteractive () (find-file (concat user-emacs-directory "config.org"))))
@ -145,41 +146,44 @@
(add-to-list 'org-structure-template-alist '("el" "#+BEGIN_SRC emacs-lisp\n?\n#+END_SRC")) (add-to-list 'org-structure-template-alist '("el" "#+BEGIN_SRC emacs-lisp\n?\n#+END_SRC"))
(setq org-src-tab-acts-natively t
org-edit-src-content-indentation 0)
(setq org-html-doctype "html5") (setq org-html-doctype "html5")
(definteractive manx/save-org-to-html() (definteractive manx/save-org-to-html()
(when (equal major-mode 'org-mode) (when (equal major-mode 'org-mode)
(save-buffer) (save-buffer)
(org-html-export-to-html))) (org-html-export-to-html)))
(add-hook 'org-mode-hook (add-hook 'org-mode-hook
(local-keybind "C-c s h" manx/save-org-to-html)) (local-keybind "C-c s h" manx/save-org-to-html))
(definteractive manx/delete-org-link () (definteractive manx/delete-org-link ()
(if (org-in-regexp org-bracket-link-regexp 1) (when (org-in-regexp org-bracket-link-regexp 1)
(apply 'delete-region (list (match-beginning 0) (match-end 0))))) (apply 'delete-region (list (match-beginning 0) (match-end 0)))))
(add-hook 'org-mode-hook (local-keybind "C-c o l" manx/delete-org-link)) (add-hook 'org-mode-hook (local-keybind "C-c o l" manx/delete-org-link))
(setq org-image-actual-width 150) (setq org-image-actual-width 150)
(definteractive manx/org-insert-link () (definteractive manx/org-insert-link ()
(org-insert-link) (org-insert-link)
(org-redisplay-inline-images)) (org-redisplay-inline-images))
(add-hook 'org-mode-hook (local-keybind "C-c C-l" manx/org-insert-link)) (add-hook 'org-mode-hook (local-keybind "C-c C-l" manx/org-insert-link))
(definteractive manx/kill-word () (definteractive manx/kill-word ()
(backward-word) (backward-word)
(kill-word 1)) (kill-word 1))
(definteractive manx/kill-line() (definteractive manx/kill-line()
(move-beginning-of-line nil) (move-beginning-of-line nil)
(kill-whole-line)) (kill-whole-line))
(definteractive manx/format-whole-buffer() (definteractive manx/format-whole-buffer()
(save-excursion (save-excursion
(indent-region (point-min) (point-max) nil))) (indent-region (point-min) (point-max) nil)))
(global-set-key (kbd "<M-right>") 'forward-whitespace) (global-set-key (kbd "<M-right>") 'forward-whitespace)
(global-set-key (kbd "C-c r b") 'revert-buffer) (global-set-key (kbd "C-c r b") 'revert-buffer)
@ -200,18 +204,19 @@
(global-set-key (kbd "C-c f o") 'flop-frame) (global-set-key (kbd "C-c f o") 'flop-frame)
(defmacro manx/split-and-follow (direction) (defmacro manx/split-and-follow (direction)
`(progn `(progn
,direction ,direction
(balance-windows) (balance-windows)
(other-window 1))) (other-window 1)))
(global-set-key (kbd "C-x 3") (lambdainteractive () (manx/split-and-follow (split-window-below)))) (global-set-key (kbd "C-x 3") (lambdainteractive () (manx/split-and-follow (split-window-below))))
(global-set-key (kbd "C-x 2") (lambdainteractive () (manx/split-and-follow (split-window-horizontally)))) (global-set-key (kbd "C-x 2") (lambdainteractive () (manx/split-and-follow (split-window-horizontally))))
(defun unix-line-ends () (defun unix-line-ends ()
(let ((coding-str (symbol-name buffer-file-coding-system))) (when (string-match
(when (string-match "-\\(?:dos\\|mac\\)$" coding-str) "-\\(?:dos\\|mac\\)$"
(set-buffer-file-coding-system 'unix)))) (symbol-name buffer-file-coding-system))
(set-buffer-file-coding-system 'unix)))
(add-hook 'find-file-hooks 'unix-line-ends) (add-hook 'find-file-hooks 'unix-line-ends)
@ -236,71 +241,74 @@
(defalias 'yes-or-no-p 'y-or-n-p) (defalias 'yes-or-no-p 'y-or-n-p)
(setq scroll-conservatively 100 (setq scroll-conservatively 100
select-enable-clipboard t select-enable-clipboard t
vc-follow-symlinks t) vc-follow-symlinks t)
(setq backup-directory-alist (setq backup-directory-alist
`(("." . ,(concat user-emacs-directory "autosaves")))) `(("." . ,(concat user-emacs-directory "autosaves"))))
(global-unset-key (kbd "C-z")) ;; Fuck unix (global-unset-key (kbd "C-z")) ;; Fuck unix
(setq-default tab-width 2 (setq-default tab-width 2
indent-tabs-mode t) indent-tabs-mode t)
(add-hook 'lisp-mode-hook (lambda () (setq indent-tabs-mode nil)))
(add-hook 'emacs-lisp-mode-hook (lambda () (setq indent-tabs-mode nil)))
(defvaralias 'css-indent-offset 'tab-width) (defvaralias 'css-indent-offset 'tab-width)
(defvaralias 'js-indent-level 'tab-width) (defvaralias 'js-indent-level 'tab-width)
(global-prettify-symbols-mode t) (global-prettify-symbols-mode t)
(add-hook 'emacs-lisp-mode-hook (add-hook 'emacs-lisp-mode-hook
(lambda () (lambda ()
(push (push
'("lambdainteractive" . ) '("lambdainteractive" . )
prettify-symbols-alist))) prettify-symbols-alist)))
(defvar auto-minor-mode-alist () (defvar auto-minor-mode-alist ()
"Alist of filename patterns vs correpsonding minor mode functions, see `auto-mode-alist' "Alist of filename patterns vs correpsonding minor mode functions, see `auto-mode-alist'
All elements of this alist are checked, meaning you can enable multiple minor modes for the same regexp.") All elements of this alist are checked, meaning you can enable multiple minor modes for the same regexp.")
(defun enable-minor-mode-based-on-extension () (defun enable-minor-mode-based-on-extension ()
"Check file name against `auto-minor-mode-alist' to enable minor modes "Check file name against `auto-minor-mode-alist' to enable minor modes
the checking happens for all pairs in auto-minor-mode-alist" the checking happens for all pairs in auto-minor-mode-alist"
(when buffer-file-name (when buffer-file-name
(let ((name (file-name-sans-versions buffer-file-name)) (let ((name (file-name-sans-versions buffer-file-name))
(remote-id (file-remote-p buffer-file-name)) (remote-id (file-remote-p buffer-file-name))
(case-fold-search auto-mode-case-fold) (case-fold-search auto-mode-case-fold)
(alist auto-minor-mode-alist)) (alist auto-minor-mode-alist))
;; Remove remote file name identification. ;; Remove remote file name identification.
(when (and (stringp remote-id) (when (and (stringp remote-id)
(string-match-p (regexp-quote remote-id) name)) (string-match-p (regexp-quote remote-id) name))
(setq name (substring name (match-end 0)))) (setq name (substring name (match-end 0))))
(while (and alist (caar alist) (cdar alist)) (while (and alist (caar alist) (cdar alist))
(if (string-match-p (caar alist) name) (if (string-match-p (caar alist) name)
(funcall (cdar alist) 1)) (funcall (cdar alist) 1))
(setq alist (cdr alist)))))) (setq alist (cdr alist))))))
(add-hook 'find-file-hook #'enable-minor-mode-based-on-extension) (add-hook 'find-file-hook #'enable-minor-mode-based-on-extension)
(define-minor-mode sensitive-minor-mode (define-minor-mode sensitive-minor-mode
"For sensitive files like password lists. "For sensitive files like password lists.
It disables backup creation and auto saving. It disables backup creation and auto saving.
With no argument, this command toggles the mode. With no argument, this command toggles the mode.
Non-null prefix argument turns on the mode. Non-null prefix argument turns on the mode.
Null prefix argument turns off the mode." Null prefix argument turns off the mode."
:init-value nil :init-value nil
:lighter " Sensitive" :lighter " Sensitive"
:keymap nil :keymap nil
(if (symbol-value sensitive-minor-mode) (if (symbol-value sensitive-minor-mode)
(progn (progn
(setq make-backup-files nil) (setq make-backup-files nil)
(auto-save-mode -1)) (auto-save-mode -1))
(setq-local make-backup-files t) (setq-local make-backup-files t)
(auto-save-mode 1))) (auto-save-mode 1)))
;; Regexps of sensitive files. ;; Regexps of sensitive files.
(setq auto-minor-mode-alist (setq auto-minor-mode-alist
(append (append
'(("stream/manifest/.*\\.json$" . sensitive-minor-mode) '(("stream/manifest/.*\\.json$" . sensitive-minor-mode)
(".emacs.d/snippets/\\*$" . sensitive-minor-mode) (".emacs.d/snippets/\\*$" . sensitive-minor-mode)
("nginx/sites-(enabled|available)/*" . sensitive-minor-mode)) ("nginx/sites-(enabled|available)/*" . sensitive-minor-mode))
auto-minor-mode-alist)) auto-minor-mode-alist))

@ -5,346 +5,354 @@ Wrappers around functions and lambdas so I don't have to type
I have ~prettify-symbols-mode~ set ~lambdainteractive~ to Λ (capital lambda) because it's cute. I have ~prettify-symbols-mode~ set ~lambdainteractive~ to Λ (capital lambda) because it's cute.
#+BEGIN_SRC emacs-lisp #+BEGIN_SRC emacs-lisp
(defmacro definteractive (name &rest body) (defmacro definteractive (name &rest body)
`(defun ,name ,(car body) `(defun ,name ,(car body)
(interactive) (interactive)
,@(cdr body))) ,@(cdr body)))
(defmacro lambdainteractive (&rest body) (defmacro lambdainteractive (&rest body)
`(lambda ,(car body) (interactive) ,@(cdr body))) `(lambda ,(car body) (interactive) ,@(cdr body)))
#+END_SRC #+END_SRC
** local-keybind ** local-keybind
Hide unecessary lambda when calling (local-set-key) for org-mode Hide unecessary lambda when calling (local-set-key) for org-mode
functions functions
#+BEGIN_SRC emacs-lisp #+BEGIN_SRC emacs-lisp
(defmacro local-keybind (key value) (defmacro local-keybind (key value)
`(lambda () (local-set-key (kbd ,key) (quote ,value)))) `(lambda () (local-set-key (kbd ,key) (quote ,value))))
#+END_SRC #+END_SRC
* use-package * use-package
** use-package config ** use-package config
Always ensure packages are installed. Log to ~*Messages*~. Always ensure packages are installed. Log to ~*Messages*~.
#+BEGIN_SRC emacs-lisp #+BEGIN_SRC emacs-lisp
(setq use-package-always-ensure t (setq use-package-always-ensure t
use-package-verbose t) use-package-verbose t)
#+END_SRC #+END_SRC
** diminish ** diminish
#+BEGIN_SRC emacs-lisp #+BEGIN_SRC emacs-lisp
(use-package diminish) (use-package diminish)
#+END_SRC #+END_SRC
** company ** company
#+BEGIN_SRC emacs-lisp #+BEGIN_SRC emacs-lisp
(use-package company (use-package company
:diminish 'company-mode :diminish 'company-mode
:bind (:map company-mode-map :bind (:map company-mode-map
("C-c /" . 'yas-expand)) ("C-c /" . 'yas-expand))
:custom :custom
(company-idle-delay 0) (company-idle-delay 0)
(company-minimum-prefix-length 3) (company-minimum-prefix-length 3)
:init (add-hook 'after-init-hook 'global-company-mode)) :init (add-hook 'after-init-hook 'global-company-mode))
#+END_SRC #+END_SRC
** prog ** prog
*** c# *** c#
#+BEGIN_SRC emacs-lisp #+BEGIN_SRC emacs-lisp
(use-package csharp-mode (use-package csharp-mode
:defer t :defer t
:config :config
(use-package omnisharp (use-package omnisharp
:defer t :defer t
:config :config
(add-hook 'csharp-mode-hook 'omnisharp-mode) (add-hook 'csharp-mode-hook 'omnisharp-mode)
(add-to-list 'company-backends 'company-omnisharp))) (add-to-list 'company-backends 'company-omnisharp)))
#+END_SRC #+END_SRC
*** elixir *** elixir
#+BEGIN_SRC emacs-lisp #+BEGIN_SRC emacs-lisp
(use-package elixir-mode (use-package elixir-mode
:defer t :defer t
:config (use-package alchemist)) :config (use-package alchemist))
#+END_SRC #+END_SRC
*** nginx *** nginx
#+BEGIN_SRC emacs-lisp #+BEGIN_SRC emacs-lisp
(use-package nginx-mode (use-package nginx-mode
:custom :custom
(nginx-indent-tabs-mode t) (nginx-indent-tabs-mode t)
(nginx-indent-level 2) (nginx-indent-level 2)
:config (add-to-list 'auto-mode-alist '("/nginx/sites-\\(?:available\\|enabled\\)/" . nginx-mode))) :config (add-to-list 'auto-mode-alist '("/nginx/sites-\\(?:available\\|enabled\\)/" . nginx-mode)))
#+END_SRC #+END_SRC
*** slime *** slime
sbcl is in a werid place on Gentoo. sbcl is in a werid place on Gentoo.
#+BEGIN_SRC emacs-lisp #+BEGIN_SRC emacs-lisp
(use-package slime (use-package slime
:defer t :defer t
:custom :custom
(slime-lisp-implementations (slime-lisp-implementations
'((sbcl ("sbcl" "--core" "/usr/lib64/sbcl/sbcl.core") '((sbcl ("sbcl" "--core" "/usr/lib64/sbcl/sbcl.core")
:env ("SBCL_HOME=/usr/lib64/sbcl/")))) :env ("SBCL_HOME=/usr/lib64/sbcl/"))))
:diminish 'slime-mode :diminish 'slime-mode
:init :init
(use-package slime-company) (use-package slime-company)
(add-hook 'lisp-mode-hook 'slime-mode) (add-hook 'lisp-mode-hook 'slime-mode)
(slime-setup '(slime-fancy slime-company))) (slime-setup '(slime-fancy slime-company)))
#+END_SRC #+END_SRC
** keychain-environment ** keychain-environment
#+BEGIN_SRC emacs-lisp #+BEGIN_SRC emacs-lisp
(use-package keychain-environment (use-package keychain-environment
:bind ("C-c r e" . 'keychain-refresh-environment) :bind ("C-c r e" . 'keychain-refresh-environment)
:init (keychain-refresh-environment)) :init (keychain-refresh-environment))
#+END_SRC #+END_SRC
** htmlize ** htmlize
#+BEGIN_SRC emacs-lisp #+BEGIN_SRC emacs-lisp
(use-package htmlize) (use-package htmlize)
#+END_SRC #+END_SRC
** spaceline ** spaceline
#+BEGIN_SRC emacs-lisp #+BEGIN_SRC emacs-lisp
(use-package spaceline (use-package spaceline
:custom (powerline-default-seperator (quote arrow)) :init
:init (require 'spaceline-config)
(require 'spaceline-config) (spaceline-spacemacs-theme)
(spaceline-spacemacs-theme) :config
:config (spaceline-toggle-buffer-size-off)) (spaceline-toggle-buffer-size-off)
(setq powerline-default-seperator (quote arrow)))
#+END_SRC #+END_SRC
** dashboard ** dashboard
#+BEGIN_SRC emacs-lisp #+BEGIN_SRC emacs-lisp
(use-package dashboard (use-package dashboard
:diminish (dashboard-mode page-break-lines-mode) :diminish (dashboard-mode page-break-lines-mode)
:custom :custom
(dashboard-center-content t) (dashboard-center-content t)
(dashboard-banner-logo-title "Komacs") (dashboard-banner-logo-title "Komacs")
(dashboard-set-init-info t) (dashboard-set-init-info t)
(dashboard-startup-banner "~/.emacs.d/Komacs.png") (dashboard-startup-banner "~/.emacs.d/Komacs.png")
(dashboard-show-shortcuts nil) (dashboard-show-shortcuts nil)
(dashboard-items '((recents . 5))) (dashboard-items '((recents . 5)))
:config (dashboard-setup-startup-hook)) :config (dashboard-setup-startup-hook))
(setq initial-buffer-choice (lambda () (get-buffer "*dashboard*"))) (setq initial-buffer-choice (lambda () (get-buffer "*dashboard*")))
#+END_SRC #+END_SRC
** switch window ** switch window
#+BEGIN_SRC emacs-lisp #+BEGIN_SRC emacs-lisp
(use-package switch-window (use-package switch-window
:custom :custom
(switch-window-input-style 'minibuffer) (switch-window-input-style 'minibuffer)
(switch-window-increase 4) (switch-window-increase 4)
(switch-window-threshold 2) (switch-window-threshold 2)
:bind ([remap other-window] . switch-window)) :bind ([remap other-window] . switch-window))
#+END_SRC #+END_SRC
** yasnippet ** yasnippet
#+BEGIN_SRC emacs-lisp #+BEGIN_SRC emacs-lisp
(use-package yasnippet (use-package yasnippet
:diminish 'yas-minor-mode :diminish 'yas-minor-mode
:hook ((html-mode :hook ((html-mode
LaTeX-mode LaTeX-mode
emacs-lisp-mode emacs-lisp-mode
lisp-mode) lisp-mode)
. yas-minor-mode) . yas-minor-mode)
:init ;; These are computationally expensive, so init. :init ;; These are computationally expensive, so init.
(use-package yasnippet-snippets) (use-package yasnippet-snippets)
(yas-reload-all)) (yas-reload-all))
#+END_SRC #+END_SRC
** minor modes ** minor modes
*** hungry delete *** hungry delete
#+BEGIN_SRC emacs-lisp #+BEGIN_SRC emacs-lisp
(use-package hungry-delete (use-package hungry-delete
:diminish 'hungry-delete-mode :diminish 'hungry-delete-mode
:config (global-hungry-delete-mode 1)) :config (global-hungry-delete-mode 1))
#+END_SRC #+END_SRC
*** which key *** which key
#+BEGIN_SRC emacs-lisp #+BEGIN_SRC emacs-lisp
(use-package which-key (use-package which-key
:diminish 'which-key-mode :diminish 'which-key-mode
:config (which-key-mode)) :config (which-key-mode))
#+END_SRC #+END_SRC
*** avy *** avy
#+BEGIN_SRC emacs-lisp #+BEGIN_SRC emacs-lisp
(use-package avy (use-package avy
:bind ("M-s" . avy-goto-char)) :bind ("M-s" . avy-goto-char))
#+END_SRC #+END_SRC
*** beacon *** beacon
#+BEGIN_SRC emacs-lisp #+BEGIN_SRC emacs-lisp
(use-package beacon (use-package beacon
:diminish 'beacon-mode :diminish 'beacon-mode
:config (beacon-mode 1)) :config (beacon-mode 1))
#+END_SRC #+END_SRC
*** popup kill ring *** popup kill ring
#+BEGIN_SRC emacs-lisp #+BEGIN_SRC emacs-lisp
(use-package popup-kill-ring (use-package popup-kill-ring
:bind ("M-y" . popup-kill-ring)) :bind ("M-y" . popup-kill-ring))
#+END_SRC #+END_SRC
** ido ** ido
#+BEGIN_SRC emacs-lisp #+BEGIN_SRC emacs-lisp
(setq ido-enable-flex-matching t (setq ido-enable-flex-matching t
ido-create-new-buffer 'always ido-create-new-buffer 'always
ido-everywhere 1) ido-everywhere 1)
(use-package ido-vertical-mode (use-package ido-vertical-mode
:bind ("C-l" . 'ido-reread-directory) :bind ("C-l" . 'ido-reread-directory)
:custom (ido-vertical-define-keys 'C-n-and-C-p-only) :custom (ido-vertical-define-keys 'C-n-and-C-p-only)
:config :config
(ido-vertical-mode 1) (ido-vertical-mode 1)
(ido-mode 1)) (ido-mode 1))
#+END_SRC #+END_SRC
* org * org
** edit/reload config ** edit/reload config
Also saves config if open. Also saves config if open.
#+BEGIN_SRC emacs-lisp #+BEGIN_SRC emacs-lisp
(definteractive manx/config-reload () (definteractive manx/config-reload ()
(when (get-buffer "config.org") (when (get-buffer "config.org")
(with-current-buffer "config.org" (save-buffer))) (with-current-buffer "config.org" (save-buffer)))
(org-babel-load-file (concat user-emacs-directory "config.org"))) (org-babel-load-file (concat user-emacs-directory "config.org")))
(global-set-key (kbd "C-c x r") 'manx/config-reload) (global-set-key (kbd "C-c x r") 'manx/config-reload)
(global-set-key (kbd "C-c x e") (lambdainteractive () (find-file (concat user-emacs-directory "config.org")))) (global-set-key (kbd "C-c x e") (lambdainteractive () (find-file (concat user-emacs-directory "config.org"))))
#+END_SRC #+END_SRC
** misc ** misc
#+BEGIN_SRC emacs-lisp #+BEGIN_SRC emacs-lisp
(setq org-src-window-setup 'current-window) (setq org-src-window-setup 'current-window)
;; I read somewhere that Company breaks things? ;; I read somewhere that Company breaks things?
(add-hook 'org-mode-hook 'company-mode) (add-hook 'org-mode-hook 'company-mode)
;; Don't indent whole file with org-mode ;; Don't indent whole file with org-mode
(eval-after-load "org-mode" (local-set-key (kbd "s-i") nil)) (eval-after-load "org-mode" (local-set-key (kbd "s-i") nil))
(add-to-list 'org-structure-template-alist '("el" "#+BEGIN_SRC emacs-lisp\n?\n#+END_SRC")) (add-to-list 'org-structure-template-alist '("el" "#+BEGIN_SRC emacs-lisp\n?\n#+END_SRC"))
(setq org-src-tab-acts-natively t
org-edit-src-content-indentation 0)
#+END_SRC #+END_SRC
** html export ** html export
#+BEGIN_SRC emacs-lisp #+BEGIN_SRC emacs-lisp
(setq org-html-doctype "html5") (setq org-html-doctype "html5")
(definteractive manx/save-org-to-html() (definteractive manx/save-org-to-html()
(when (equal major-mode 'org-mode) (when (equal major-mode 'org-mode)
(save-buffer) (save-buffer)
(org-html-export-to-html))) (org-html-export-to-html)))
(add-hook 'org-mode-hook (add-hook 'org-mode-hook
(local-keybind "C-c s h" manx/save-org-to-html)) (local-keybind "C-c s h" manx/save-org-to-html))
#+END_SRC #+END_SRC
** Links ** Links
#+BEGIN_SRC emacs-lisp #+BEGIN_SRC emacs-lisp
(definteractive manx/delete-org-link () (definteractive manx/delete-org-link ()
(if (org-in-regexp org-bracket-link-regexp 1) (when (org-in-regexp org-bracket-link-regexp 1)
(apply 'delete-region (list (match-beginning 0) (match-end 0))))) (apply 'delete-region (list (match-beginning 0) (match-end 0)))))
(add-hook 'org-mode-hook (local-keybind "C-c o l" manx/delete-org-link)) (add-hook 'org-mode-hook (local-keybind "C-c o l" manx/delete-org-link))
#+END_SRC #+END_SRC
*** Inline Images *** Inline Images
#+BEGIN_SRC emacs-lisp #+BEGIN_SRC emacs-lisp
(setq org-image-actual-width 150) (setq org-image-actual-width 150)
(definteractive manx/org-insert-link () (definteractive manx/org-insert-link ()
(org-insert-link) (org-insert-link)
(org-redisplay-inline-images)) (org-redisplay-inline-images))
(add-hook 'org-mode-hook (local-keybind "C-c C-l" manx/org-insert-link)) (add-hook 'org-mode-hook (local-keybind "C-c C-l" manx/org-insert-link))
#+END_SRC #+END_SRC
* functions * functions
** text ** text
#+BEGIN_SRC emacs-lisp #+BEGIN_SRC emacs-lisp
(definteractive manx/kill-word () (definteractive manx/kill-word ()
(backward-word) (backward-word)
(kill-word 1)) (kill-word 1))
(definteractive manx/kill-line() (definteractive manx/kill-line()
(move-beginning-of-line nil) (move-beginning-of-line nil)
(kill-whole-line)) (kill-whole-line))
(definteractive manx/format-whole-buffer() (definteractive manx/format-whole-buffer()
(save-excursion (save-excursion
(indent-region (point-min) (point-max) nil))) (indent-region (point-min) (point-max) nil)))
(global-set-key (kbd "<M-right>") 'forward-whitespace) (global-set-key (kbd "<M-right>") 'forward-whitespace)
(global-set-key (kbd "C-c r b") 'revert-buffer) (global-set-key (kbd "C-c r b") 'revert-buffer)
(global-set-key (kbd "C-c k w") 'manx/kill-word) (global-set-key (kbd "C-c k w") 'manx/kill-word)
(global-set-key (kbd "C-c k l") 'manx/kill-line) (global-set-key (kbd "C-c k l") 'manx/kill-line)
(global-set-key (kbd "s-i") 'manx/format-whole-buffer) (global-set-key (kbd "s-i") 'manx/format-whole-buffer)
#+END_SRC #+END_SRC
** buffers ** buffers
#+BEGIN_SRC emacs-lisp #+BEGIN_SRC emacs-lisp
(global-set-key (kbd "C-x k") (lambdainteractive () (kill-buffer (current-buffer)))) (global-set-key (kbd "C-x k") (lambdainteractive () (kill-buffer (current-buffer))))
(global-set-key (kbd "C-M-s-k") (lambdainteractive () (mapc 'kill-buffer (buffer-list)))) (global-set-key (kbd "C-M-s-k") (lambdainteractive () (mapc 'kill-buffer (buffer-list))))
#+END_SRC #+END_SRC
** frames ** frames
*** transpose-frame *** transpose-frame
#+BEGIN_SRC emacs-lisp #+BEGIN_SRC emacs-lisp
;; This is only used here for now but we should still more it some ;; This is only used here for now but we should still more it some
;; time ;; time
(add-to-list 'load-path "~/.emacs.d/scripts/") (add-to-list 'load-path "~/.emacs.d/scripts/")
(require 'transpose-frame) (require 'transpose-frame)
(global-set-key (kbd "C-c f t") 'transpose-frame) (global-set-key (kbd "C-c f t") 'transpose-frame)
(global-set-key (kbd "C-c f i") 'flip-frame) (global-set-key (kbd "C-c f i") 'flip-frame)
(global-set-key (kbd "C-c f o") 'flop-frame) (global-set-key (kbd "C-c f o") 'flop-frame)
#+END_SRC #+END_SRC
*** split and follow *** split and follow
#+BEGIN_SRC emacs-lisp #+BEGIN_SRC emacs-lisp
(defmacro manx/split-and-follow (direction) (defmacro manx/split-and-follow (direction)
`(progn `(progn
,direction ,direction
(balance-windows) (balance-windows)
(other-window 1))) (other-window 1)))
(global-set-key (kbd "C-x 3") (lambdainteractive () (manx/split-and-follow (split-window-below)))) (global-set-key (kbd "C-x 3") (lambdainteractive () (manx/split-and-follow (split-window-below))))
(global-set-key (kbd "C-x 2") (lambdainteractive () (manx/split-and-follow (split-window-horizontally)))) (global-set-key (kbd "C-x 2") (lambdainteractive () (manx/split-and-follow (split-window-horizontally))))
#+END_SRC #+END_SRC
* misc * misc
** unix line endings ** unix line endings
#+BEGIN_SRC emacs-lisp #+BEGIN_SRC emacs-lisp
(defun unix-line-ends () (defun unix-line-ends ()
(let ((coding-str (symbol-name buffer-file-coding-system))) (when (string-match
(when (string-match "-\\(?:dos\\|mac\\)$" coding-str) "-\\(?:dos\\|mac\\)$"
(set-buffer-file-coding-system 'unix)))) (symbol-name buffer-file-coding-system))
(set-buffer-file-coding-system 'unix)))
(add-hook 'find-file-hooks 'unix-line-ends) (add-hook 'find-file-hooks 'unix-line-ends)
#+END_SRC #+END_SRC
** UTF8 ** UTF8
#+BEGIN_SRC emacs-lisp #+BEGIN_SRC emacs-lisp
(setq locale-coding-system 'utf-8) (setq locale-coding-system 'utf-8)
(set-terminal-coding-system 'utf-8) (set-terminal-coding-system 'utf-8)
(set-keyboard-coding-system 'utf-8) (set-keyboard-coding-system 'utf-8)
(set-selection-coding-system 'utf-8) (set-selection-coding-system 'utf-8)
(prefer-coding-system 'utf-8) (prefer-coding-system 'utf-8)
(setq x-select-request-type '(UTF8_STRING COMPOUND_TEXT TEXT STRING)) (setq x-select-request-type '(UTF8_STRING COMPOUND_TEXT TEXT STRING))
#+END_SRC #+END_SRC
** minor things ** minor things
Things for GUI and basic config, like electric pairs and highlighting Things for GUI and basic config, like electric pairs and highlighting
parens. parens.
#+BEGIN_SRC emacs-lisp #+BEGIN_SRC emacs-lisp
(line-number-mode 1) (line-number-mode 1)
(column-number-mode 1) (column-number-mode 1)
(display-battery-mode 1) (display-battery-mode 1)
(show-paren-mode 1) (show-paren-mode 1)
(electric-pair-mode t) (electric-pair-mode t)
(global-hl-line-mode t) (global-hl-line-mode t)
(tool-bar-mode -1) (tool-bar-mode -1)
(menu-bar-mode -1) (menu-bar-mode -1)
(scroll-bar-mode -1) (scroll-bar-mode -1)
(defalias 'yes-or-no-p 'y-or-n-p) (defalias 'yes-or-no-p 'y-or-n-p)
(setq scroll-conservatively 100 (setq scroll-conservatively 100
select-enable-clipboard t select-enable-clipboard t
vc-follow-symlinks t) vc-follow-symlinks t)
(setq backup-directory-alist (setq backup-directory-alist
`(("." . ,(concat user-emacs-directory "autosaves")))) `(("." . ,(concat user-emacs-directory "autosaves"))))
(global-unset-key (kbd "C-z")) ;; Fuck unix (global-unset-key (kbd "C-z")) ;; Fuck unix
#+END_SRC #+END_SRC
** indentation ** indentation
tabs > spaces. tabs > spaces. Except in Lisp.
#+BEGIN_SRC emacs-lisp #+BEGIN_SRC emacs-lisp
(setq-default tab-width 2 (setq-default tab-width 2
indent-tabs-mode t) indent-tabs-mode t)
(defvaralias 'css-indent-offset 'tab-width)
(defvaralias 'js-indent-level 'tab-width) (add-hook 'lisp-mode-hook (lambda () (setq indent-tabs-mode nil)))
(add-hook 'emacs-lisp-mode-hook (lambda () (setq indent-tabs-mode nil)))
(defvaralias 'css-indent-offset 'tab-width)
(defvaralias 'js-indent-level 'tab-width)
#+END_SRC #+END_SRC
** Prettify symbols ** Prettify symbols
#+BEGIN_SRC emacs-lisp #+BEGIN_SRC emacs-lisp
(global-prettify-symbols-mode t) (global-prettify-symbols-mode t)
(add-hook 'emacs-lisp-mode-hook (add-hook 'emacs-lisp-mode-hook
(lambda () (lambda ()
(push (push
'("lambdainteractive" . ?Λ) '("lambdainteractive" . ?Λ)
prettify-symbols-alist))) prettify-symbols-alist)))
#+END_SRC #+END_SRC
* auto-minor-mode * auto-minor-mode
auto-mode-alist for minor modes. auto-mode-alist for minor modes.
@ -352,54 +360,54 @@ auto-mode-alist for minor modes.
For example, used with sensitive-mode to not create backups For example, used with sensitive-mode to not create backups
(path/to/file~) when creating yasnippets (path/to/file~) when creating yasnippets
#+BEGIN_SRC emacs-lisp #+BEGIN_SRC emacs-lisp
(defvar auto-minor-mode-alist () (defvar auto-minor-mode-alist ()
"Alist of filename patterns vs correpsonding minor mode functions, see `auto-mode-alist' "Alist of filename patterns vs correpsonding minor mode functions, see `auto-mode-alist'
All elements of this alist are checked, meaning you can enable multiple minor modes for the same regexp.") All elements of this alist are checked, meaning you can enable multiple minor modes for the same regexp.")
(defun enable-minor-mode-based-on-extension () (defun enable-minor-mode-based-on-extension ()
"Check file name against `auto-minor-mode-alist' to enable minor modes "Check file name against `auto-minor-mode-alist' to enable minor modes
the checking happens for all pairs in auto-minor-mode-alist" the checking happens for all pairs in auto-minor-mode-alist"
(when buffer-file-name (when buffer-file-name
(let ((name (file-name-sans-versions buffer-file-name)) (let ((name (file-name-sans-versions buffer-file-name))
(remote-id (file-remote-p buffer-file-name)) (remote-id (file-remote-p buffer-file-name))
(case-fold-search auto-mode-case-fold) (case-fold-search auto-mode-case-fold)
(alist auto-minor-mode-alist)) (alist auto-minor-mode-alist))
;; Remove remote file name identification. ;; Remove remote file name identification.
(when (and (stringp remote-id) (when (and (stringp remote-id)
(string-match-p (regexp-quote remote-id) name)) (string-match-p (regexp-quote remote-id) name))
(setq name (substring name (match-end 0)))) (setq name (substring name (match-end 0))))
(while (and alist (caar alist) (cdar alist)) (while (and alist (caar alist) (cdar alist))
(if (string-match-p (caar alist) name) (if (string-match-p (caar alist) name)
(funcall (cdar alist) 1)) (funcall (cdar alist) 1))
(setq alist (cdr alist)))))) (setq alist (cdr alist))))))
(add-hook 'find-file-hook #'enable-minor-mode-based-on-extension) (add-hook 'find-file-hook #'enable-minor-mode-based-on-extension)
#+END_SRC #+END_SRC
* sensitive-minor-mode * sensitive-minor-mode
#+BEGIN_SRC emacs-lisp #+BEGIN_SRC emacs-lisp
(define-minor-mode sensitive-minor-mode (define-minor-mode sensitive-minor-mode
"For sensitive files like password lists. "For sensitive files like password lists.
It disables backup creation and auto saving. It disables backup creation and auto saving.
With no argument, this command toggles the mode. With no argument, this command toggles the mode.
Non-null prefix argument turns on the mode. Non-null prefix argument turns on the mode.
Null prefix argument turns off the mode." Null prefix argument turns off the mode."
:init-value nil :init-value nil
:lighter " Sensitive" :lighter " Sensitive"
:keymap nil :keymap nil
(if (symbol-value sensitive-minor-mode) (if (symbol-value sensitive-minor-mode)
(progn (progn
(setq make-backup-files nil) (setq make-backup-files nil)
(auto-save-mode -1)) (auto-save-mode -1))
(setq-local make-backup-files t) (setq-local make-backup-files t)
(auto-save-mode 1))) (auto-save-mode 1)))
;; Regexps of sensitive files. ;; Regexps of sensitive files.
(setq auto-minor-mode-alist (setq auto-minor-mode-alist
(append (append
'(("stream/manifest/.*\\.json$" . sensitive-minor-mode) '(("stream/manifest/.*\\.json$" . sensitive-minor-mode)
(".emacs.d/snippets/\\*$" . sensitive-minor-mode) (".emacs.d/snippets/\\*$" . sensitive-minor-mode)
("nginx/sites-(enabled|available)/*" . sensitive-minor-mode)) ("nginx/sites-(enabled|available)/*" . sensitive-minor-mode))
auto-minor-mode-alist)) auto-minor-mode-alist))
#+END_SRC #+END_SRC

@ -9,8 +9,8 @@
'(company-minimum-prefix-length 3) '(company-minimum-prefix-length 3)
'(custom-enabled-themes (quote (spacemacs-dark))) '(custom-enabled-themes (quote (spacemacs-dark)))
'(custom-safe-themes '(custom-safe-themes
(quote (quote
("bffa9739ce0752a37d9b1eee78fc00ba159748f50dc328af4be661484848e476" default))) ("bffa9739ce0752a37d9b1eee78fc00ba159748f50dc328af4be661484848e476" default)))
'(dashboard-banner-logo-title "Komacs") '(dashboard-banner-logo-title "Komacs")
'(dashboard-center-content t) '(dashboard-center-content t)
'(dashboard-items (quote ((recents . 5)))) '(dashboard-items (quote ((recents . 5))))
@ -21,14 +21,14 @@
'(nginx-indent-level 2) '(nginx-indent-level 2)
'(nginx-indent-tabs-mode t) '(nginx-indent-tabs-mode t)
'(package-selected-packages '(package-selected-packages
(quote (quote
(htmlize benchmark-init alchemist elixir-mode nginx-mode yasnippet-snippets which-key use-package switch-window spacemacs-theme spaceline slime-company popup-kill-ring omnisharp keychain-environment ido-vertical-mode hungry-delete exwm diminish dashboard company-auctex beacon avy))) (htmlize benchmark-init alchemist elixir-mode nginx-mode yasnippet-snippets which-key use-package switch-window spacemacs-theme spaceline slime-company popup-kill-ring omnisharp keychain-environment ido-vertical-mode hungry-delete exwm diminish dashboard company-auctex beacon avy)))
'(slime-lisp-implementations '(slime-lisp-implementations
(quote (quote
((sbcl ((sbcl
("sbcl" "--core" "/usr/lib64/sbcl/sbcl.core") ("sbcl" "--core" "/usr/lib64/sbcl/sbcl.core")
:env :env
("SBCL_HOME=/usr/lib64/sbcl/")))) t) ("SBCL_HOME=/usr/lib64/sbcl/")))) t)
'(switch-window-increase 4 t) '(switch-window-increase 4 t)
'(switch-window-input-style (quote minibuffer)) '(switch-window-input-style (quote minibuffer))
'(switch-window-threshold 2)) '(switch-window-threshold 2))

@ -2,24 +2,24 @@
(require 'package) (require 'package)
(setq package-enable-at-startup nil) (setq package-enable-at-startup nil)
(add-to-list 'package-archives (add-to-list 'package-archives
'("melpa" . "http://melpa.milkbox.net/packages/") t) '("melpa" . "http://melpa.milkbox.net/packages/") t)
(package-initialize) (package-initialize)
(unless (package-installed-p 'use-package) (unless (package-installed-p 'use-package)
(package-refresh-contents) (package-refresh-contents)
(package-install 'use-package)) (package-install 'use-package))
(unless (package-installed-p 'spacemacs-theme) (unless (package-installed-p 'spacemacs-theme)
(package-refresh-contents) (package-refresh-contents)
(package-install 'spacemacs-theme)) (package-install 'spacemacs-theme))
(defun in-emacs-home (file) (defun in-emacs-home (file)
"Checks if a file exists in your emacs home" "Checks if a file exists in your emacs home"
(when (stringp file) (when (stringp file)
(let ((file (concat user-emacs-directory file))) (let ((file (concat user-emacs-directory file)))
(when (file-exists-p file) (when (file-exists-p file)
file)))) file))))
;; Files we care about loading ;; Files we care about loading
(setq custom-file (in-emacs-home "custom.el")) (setq custom-file (in-emacs-home "custom.el"))
@ -29,8 +29,8 @@
;; If everything exists then execute files ;; If everything exists then execute files
(unless (member nil '(custom-file manx/emacs-el manx/emacs-org manx/emacs-email)) (unless (member nil '(custom-file manx/emacs-el manx/emacs-org manx/emacs-email))
(if (file-newer-than-file-p manx/emacs-org manx/emacs-el) (if (file-newer-than-file-p manx/emacs-org manx/emacs-el)
(org-babel-load-file manx/emacs-org) (org-babel-load-file manx/emacs-org)
(load manx/emacs-el 'noerror)) (load manx/emacs-el 'noerror))
(load custom-file 'noerrror) (load custom-file 'noerrror)
(load manx/emacs-email 'noerror)) (load manx/emacs-email 'noerror))

Loading…
Cancel
Save