From dffd6a1f6f22879ab46f05a025f6e8e8dcee366a Mon Sep 17 00:00:00 2001 From: rearman Date: Tue, 7 Feb 2023 08:33:03 -0500 Subject: [PATCH] Add some Bindings from lem/acme, remove unused Removing rotate-windows and toggle-window-split, rarely used. Grabbed some bindings from lem . C-h as backspace, C-x ? as describe-key, C-x / as describe-symbol. Some bindings inspired by acme: Home goes to top of buffer, End goes to bottom of buffer, up/down act as page up/down. --- bindings.el | 9 +++++++-- defuns.el | 55 ----------------------------------------------------- 2 files changed, 7 insertions(+), 57 deletions(-) diff --git a/bindings.el b/bindings.el index bfd6729..e8a71b9 100644 --- a/bindings.el +++ b/bindings.el @@ -12,12 +12,11 @@ (global-set-key (kbd "C-c eo") (lambda () (interactive) (find-file (expand-file-name "org-setup.el" user-emacs-directory)))) (global-set-key (kbd "C-c eh") (lambda () (interactive) (find-file (expand-file-name "hooks-puts.el" user-emacs-directory)))) (global-set-key (kbd "C-c eb") (lambda () (interactive) (find-file (expand-file-name "bindings.el" user-emacs-directory)))) -(global-set-key (kbd "C-c r") 'rotate-windows) (global-set-key (kbd "C-c s") 'eshell) -(global-set-key (kbd "C-c t") 'toggle-window-split) (global-set-key (kbd "") 'recentf-open-files) ;; OVERRIDES (global-set-key [remap move-beginning-of-line] 'smart-beginning-of-line) +(global-set-key (kbd "C-h") 'backward-delete-char-untabify) (global-set-key (kbd "M-j") 'backward-join-line) (global-set-key (kbd "C-S-k") 'kill-whole-line) (global-set-key (kbd "C-o") 'open-line-below) @@ -34,9 +33,15 @@ (global-set-key (kbd "C-x C-b") 'buffer-menu) (global-set-key (kbd "C-x .") 'next-buffer) (global-set-key (kbd "C-x ,") 'previous-buffer) +(global-set-key (kbd "C-x ?") 'describe-key) +(global-set-key (kbd "C-x /") 'describe-symbol) (global-set-key (kbd "C-%") 'replace-regexp) (global-set-key (kbd "M-%") 'slot/replace-string-many) (global-set-key (kbd "C-M-%") 'slot/query-replace-many) +(global-set-key (kbd "") 'beginning-of-buffer) +(global-set-key (kbd "") 'end-of-buffer) +(global-set-key (kbd "") 'scroll-up-command) +(global-set-key (kbd "") 'scroll-down-command) ;; MODE-SPECIFIC (add-hook 'eshell-mode-hook (lambda () (define-key eshell-mode-map (kbd ")") 'eshell-send-on-close-paren))) diff --git a/defuns.el b/defuns.el index ec5f2a8..566d728 100644 --- a/defuns.el +++ b/defuns.el @@ -33,61 +33,6 @@ Can't go prev line first, edge case of beginning of buffer." (interactive) (join-line 0)) -(defun toggle-window-split () - "If two windows are open, toggle their split layout between vert. and horiz. -Stolen from http://whattheemacsd.com" - (interactive) - (when (= (count-windows) 2) - (let* ((this-win-buffer (window-buffer)) - (next-win-buffer (window-buffer (next-window))) - (this-win-edges (window-edges (selected-window))) - (next-win-edges (window-edges (next-window))) - (this-win-2nd (not (and (<= (car this-win-edges) - (car next-win-edges)) - (<= (cadr this-win-edges) - (cadr next-win-edges))))) - (splitter - (if (= (car this-win-edges) - (car (window-edges (next-window)))) - 'split-window-horizontally - 'split-window-vertically))) - (delete-other-windows) - (let ((first-win (selected-window))) - (funcall splitter) - (when this-win-2nd (other-window 1)) - (set-window-buffer (selected-window) this-win-buffer) - (set-window-buffer (next-window) next-win-buffer) - (select-window first-win) - (when this-win-2nd (other-window 1)))))) - -(defun rotate-windows () - "Rotate your windows. -Stolen from http://whattheemacsd.com" - (interactive) - (cond ((not (> (count-windows)1)) - (message "You can't rotate a single window!")) - ((> (count-windows) 2) - (message "You can't rotate more than two windows!")) - (t - (setq i 1) - (setq numWindows (count-windows)) - (while (< i numWindows) - (let* ( - (w1 (elt (window-list) i)) - (w2 (elt (window-list) (+ (% i numWindows) 1))) - - (b1 (window-buffer w1)) - (b2 (window-buffer w2)) - - (s1 (window-start w1)) - (s2 (window-start w2)) - ) - (set-window-buffer w1 b2) - (set-window-buffer w2 b1) - (set-window-start w1 s2) - (set-window-start w2 s1) - (setq i (1+ i))))))) - (defun smart-beginning-of-line () "Move point to first non-whitespace character or beginning-of-line. If point was already at that position, move point to beginning of line. -- 2.39.5