X-Git-Url: https://git.shemshak.org/~bandali/configs/blobdiff_plain/fac1032c8088b37252bef5e1e07e03bf1e955c0b..ad1f9d99b2d82cfb705baaeab166def5ddda5f72:/init.el diff --git a/init.el b/init.el index 409beab..5d4b8b5 100644 --- a/init.el +++ b/init.el @@ -1,6 +1,6 @@ ;;; init.el --- bandali's emacs configuration -*- lexical-binding: t -*- -;; Copyright (C) 2018-2019 Amin Bandali +;; Copyright (C) 2018-2020 Amin Bandali ;; This program is free software: you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by @@ -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) @@ -666,6 +698,11 @@ For disabling the behaviour for certain buffers and/or modes." ;; IRC (with ERC and ZNC) (require 'bandali-erc) +(use-package scpaste + :config + (setq scpaste-http-destination "https://p.bndl.org" + scpaste-scp-destination "p:~")) + ;;; Editing @@ -807,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 @@ -831,10 +863,10 @@ For disabling the behaviour for certain buffers and/or modes." ("TAB" . indent-for-tab-command)) :hook (alloy-mode . (lambda () (setq-local indent-tabs-mode nil)))) -(comment -(eval-when-compile (defvar lean-mode-map)) (use-package lean-mode + :disabled :defer 0.4 + :init (eval-when-compile (defvar lean-mode-map)) :bind (:map lean-mode-map ("S-SPC" . company-complete)) :config @@ -846,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)) @@ -865,26 +895,30 @@ For disabling the behaviour for certain buffers and/or modes." (setq emmet-move-cursor-between-quotes t) :hook (css-mode html-mode sgml-mode)) -(use-package geiser) +(use-package geiser + :disabled) (use-package geiser-guile + :disabled :config (setq geiser-guile-load-path "~/src/git/guix")) -(use-package guix) - -(comment - (use-package auctex - :custom - (font-latex-fontify-sectioning 'color))) +(use-package guix + :disabled) (use-package go-mode :disabled) (use-package po-mode + :disabled :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 @@ -900,6 +934,7 @@ For disabling the behaviour for certain buffers and/or modes." ;;; Theme +(comment (add-to-list 'custom-theme-load-path (expand-file-name (convert-standard-filename "lisp") user-emacs-directory)) @@ -1050,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 @@ -1277,12 +1306,7 @@ For disabling the behaviour for certain buffers and/or modes." (use-package window :bind - (("C-c w e" . (lambda () - (interactive) - (split-window-right) - (other-window 1) - (erc-switch-to-buffer))) - ("C-c w s l" . (lambda () + (("C-c w s l" . (lambda () (interactive) (split-window-right) (other-window 1))) @@ -1373,12 +1397,6 @@ For disabling the behaviour for certain buffers and/or modes." :config (eosd-start)) -(use-package scpaste - :disabled - :config - (setq scpaste-http-destination "https://p.bndl.org" - scpaste-scp-destination "nix:/var/www/p.bndl.org")) - (use-package eww :bind ("C-c a e w" . eww) :custom