(defun copy-whole-line () (interactive) (save-excursion (kill-new (buffer-substring (point-at-bol) (point-at-eol))))) (global-set-key (kbd "C-c w l") 'copy-whole-line) (defun kill-all-buffers () (interactive) (mapc 'kill-buffer (buffer-list))) (global-set-key (kbd "C-c k k") 'kill-all-buffers) (defun split-and-follow-horizontally () (interactive) (split-window-below) (balance-windows) (other-window 1)) (global-set-key (kbd "C-x 2") 'split-and-follow-horizontally) (defun split-and-follow-vertically () (interactive) (split-window-right) (balance-windows) (other-window 1)) (global-set-key (kbd "C-x 3") 'split-and-follow-vertically) (defun switch-to-previous-buffer () (interactive) (switch-to-buffer (other-buffer (current-buffer) 1))) (global-set-key (kbd "C-x b") 'switch-to-previous-buffer) (global-set-key (kbd "C-c b") 'switch-to-buffer) ;; compilation (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-set-key (kbd "C-x C-x") 'other-window) (global-set-key (kbd "C-x C-b") 'bs-show) (defun toggle-indent () (interactive) (setq-default indent-tabs-mode (not indent-tabs-mode))) (global-set-key [f5] (lambda () (interactive) (disable-theme 'basic) (load-theme 'magik))) (global-set-key [f6] (lambda () (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) (while (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))