diff --git a/functions.el b/functions.el index f8c99d4..bec8f20 100644 --- a/functions.el +++ b/functions.el @@ -36,15 +36,21 @@ (setq compile-command "make ") (global-set-key (kbd "C-x C-m") 'compile) +(add-hook 'compilation-mode-hook + (lambda () (local-set-key (kbd "n") 'compilation-next-error))) +(add-hook 'compilation-mode-hook + (lambda () (local-set-key (kbd "p") 'compilation-previous-error))) + + (defun mark-line () (interactive) (move-beginning-of-line nil) (set-mark (point)) (move-end-of-line nil)) +(global-unset-key (kbd "C-x C-z")) ; disable suspend frame (global-set-key (kbd "C-x C-z") 'mark-line) (global-unset-key (kbd "C-z")) ; disable suspend frame -(global-unset-key (kbd "C-x C-z")) ; disable suspend frame (global-set-key (kbd "C-x C-x") 'other-window) (global-set-key (kbd "C-x C-b") '(lambda () (interactive) (bs-show nil) @@ -62,3 +68,24 @@ (interactive) (disable-theme 'magik) (load-theme 'basic))) + +(defun current-line-empty-p () + (save-excursion + (beginning-of-line) + (looking-at-p "[[:space:]]*$"))) + +(defun flash-region (&optional timeout) + "Temporarily highlight region from START to END. Taken from SLIME source code and modified." + (interactive) + (transient-mark-mode) + (save-excursion + (mark-defun) + (when (current-line-empty-p) + (forward-char)) + (let* ((start (region-beginning)) + (end (region-end)) + (overlay (make-overlay start end))) + (deactivate-mark) + (overlay-put overlay 'face 'secondary-selection) + (run-with-timer (or timeout 0.2) nil 'delete-overlay overlay))) + (transient-mark-mode)) diff --git a/init.el b/init.el index d934559..8ec767c 100644 --- a/init.el +++ b/init.el @@ -120,6 +120,8 @@ '(custom-safe-themes '("a6473f7abf949f4a6a1a9cc0dd37ea2e35ba3cea65d3442b98d65c5c5c5cb8d7" "b026761932dac55edfc103de7267ab1db5cd7cc183e06654a2be976cf3a09b9c" "2eeeb1813d66b7d1b858ecf7e4623f774ee555f4b6c1e6de93a1875c03af41de" "5a5e51dc0d54d7626f182dcc1712ed0bad80085db52da3fbe737be4f58d983d0" "4c5f4e96bbde8ab012c661b04c887d9cf65ee9fc37abcce661aabd3a098a69e9" "9c25bd583aa28e4a96af84c9bcf4b5c917bb2ec907ac9d5ab745e54b27104ec6" default)) '(display-time-mode t) + '(org-babel-load-languages '((awk . t) (lisp . t) (emacs-lisp . t) (C . t))) + '(org-confirm-babel-evaluate nil) '(package-selected-packages '(basic-theme geiser-chicken geiser-guile disaster multiple-cursors nasm-mode carp-mode flycheck ido-mode move-text undo-tree sorcery-theme autothemer rust-mode paredit forth-mode avy swiper auto-package-update magit expand-region go-mode tao-themes tao-theme almost-mono-themes use-package)) '(pdf-view-midnight-colors '("#dddddd" . "#000000")) diff --git a/packages.el b/packages.el index 700dbd1..465b279 100644 --- a/packages.el +++ b/packages.el @@ -68,7 +68,15 @@ (setq inferior-lisp-program "sbcl")) (use-package geiser - :ensure t) + :ensure t + :config + (add-hook 'geiser-mode-hook + (lambda () + (define-key geiser-mode-map (kbd "C-c C-c") nil) ;; remove default C-c C-c binding + (local-set-key (kbd "C-c C-c") (lambda () + (interactive) + (flash-region) + (geiser-eval-definition)))))) (use-package geiser-guile :ensure t)