X-Git-Url: https://git.shemshak.org/gitweb.cgi/~bandali/configs/blobdiff_plain/46b0569f717f7e5fa9cc43355bd5d8a544521453..ad1f9d99b2d82cfb705baaeab166def5ddda5f72:/init.el diff --git a/init.el b/init.el index 01ee10a..5d4b8b5 100644 --- a/init.el +++ b/init.el @@ -250,6 +250,35 @@ For disabling the behaviour for certain buffers and/or modes." (point))) (move-beginning-of-line arg))) +(defun b/join-line-top () + "Like `join-line', but join next line to the current line." + (interactive) + (join-line 1)) + +(defun b/duplicate-line-or-region (&optional n) + "Duplicate the current line, or region (if active). +Make N (default: 1) copies of the current line or region." + (interactive "*p") + (let ((u-r-p (use-region-p)) ; if region is active + (n1 (or n 1))) + (save-excursion + (let ((text + (if u-r-p + (buffer-substring (region-beginning) (region-end)) + (prog1 (thing-at-point 'line) + (end-of-line) + (if (eobp) + (newline) + (forward-line 1)))))) + (dotimes (_ (abs n1)) + (insert text)))) + (let* ((beg (if u-r-p + (region-beginning) + (line-beginning-position))) + (end (if u-r-p + (region-end) + (line-end-position))))))) + ;;; Defaults @@ -272,7 +301,7 @@ For disabling the behaviour for certain buffers and/or modes." ;; scroll-margin 1 ;; scroll-conservatively 10000 scroll-step 1 - scroll-conservatively 10 + scroll-conservatively 101 scroll-preserve-screen-position 1 ;; focus follows mouse mouse-autoselect-window t) @@ -503,6 +532,7 @@ For disabling the behaviour for certain buffers and/or modes." (bind-keys ("C-a" . b/move-indentation-or-beginning-of-line) ("C-c a i" . ielm) + ("C-c d" . b/duplicate-line-or-region) ("C-c e b" . eval-buffer) ("C-c e e" . eval-last-sexp) @@ -523,6 +553,8 @@ For disabling the behaviour for certain buffers and/or modes." ("C-S-h C" . describe-char) ("C-S-h F" . describe-face) + ("C-S-j" . b/join-line-top) + ("C-c x" . execute-extended-command) ("C-x k" . b/kill-current-buffer) @@ -812,11 +844,6 @@ For disabling the behaviour for certain buffers and/or modes." (setq indent-tabs-mode nil)) (add-hook 'lisp-interaction-mode-hook #'indent-spaces-mode)) -(use-package reveal - :hook (emacs-lisp-mode . reveal-mode)) - -;; (use-package elisp-mode) - (use-package alloy-mode :mode "\\.\\(als\\|dsh\\)\\'" :config @@ -851,8 +878,6 @@ For disabling the behaviour for certain buffers and/or modes." lean-input-user-translations '(("/" "/"))) (lean-input-setup)) -;; (use-package mhtml-mode) - (use-package sgml-mode :config (setq sgml-basic-offset 0)) @@ -881,11 +906,6 @@ For disabling the behaviour for certain buffers and/or modes." (use-package guix :disabled) -(use-package auctex - :disabled - :custom - (font-latex-fontify-sectioning 'color)) - (use-package go-mode :disabled) @@ -894,6 +914,11 @@ For disabling the behaviour for certain buffers and/or modes." :hook (po-mode . (lambda () (run-with-timer 0.1 nil 'View-exit)))) +(use-package auctex + :disabled + :custom + (font-latex-fontify-sectioning 'color)) + (use-package tex-mode :config (cl-delete-if @@ -1060,12 +1085,6 @@ For disabling the behaviour for certain buffers and/or modes." ("C-c j" . crux-top-join-line) ("C-S-j" . crux-top-join-line))) -(use-package mwim - :bind (("C-a" . mwim-beginning-of-code-or-line) - ("C-e" . mwim-end-of-code-or-line) - ("" . mwim-beginning-of-line-or-code) - ("" . mwim-end-of-line-or-code))) - (use-package projectile :disabled :defer 0.5