2021-08-17 11:49:19 +00:00
|
|
|
;;; init-crux.el --- Crux Configuration File -*- lexical-binding: t -*-
|
|
|
|
;;; Commentary:
|
|
|
|
;;; Code:
|
|
|
|
|
|
|
|
(use-package crux
|
2022-10-05 15:38:32 +00:00
|
|
|
:defer 5
|
2021-09-29 18:47:42 +00:00
|
|
|
:commands crux-start-or-switch-to
|
2022-10-05 15:38:32 +00:00
|
|
|
:config
|
|
|
|
(defmacro crux-with-region-or-sexp-or-line (func)
|
|
|
|
"When called with no active region, call FUNC on current sexp."
|
|
|
|
`(defadvice ,func (before with-region-or-sexp-or-line activate compile)
|
|
|
|
(interactive
|
|
|
|
(cond
|
|
|
|
(mark-active (list (region-beginning) (region-end)))
|
|
|
|
((in-string-p) (flatten-list (bounds-of-thing-at-point 'string)))
|
|
|
|
((thing-at-point 'list) (flatten-list (bounds-of-thing-at-point 'list)))
|
|
|
|
(t (list (line-beginning-position) (line-beginning-position 2)))))))
|
|
|
|
|
|
|
|
(crux-with-region-or-sexp-or-line sp-kill-region)
|
|
|
|
(crux-with-region-or-buffer shell-command-on-region)
|
|
|
|
(crux-with-region-or-buffer indent-region)
|
|
|
|
(crux-with-region-or-buffer untabify)
|
|
|
|
(crux-with-region-or-line comment-or-uncomment-region)
|
2021-08-17 11:49:19 +00:00
|
|
|
:bind
|
|
|
|
("C-^" . crux-top-join-line)
|
|
|
|
("C-<backspace>" . crux-kill-line-backwards)
|
|
|
|
([remap kill-whole-line] . crux-kill-whole-line)
|
|
|
|
;; TODO don't need all of these
|
|
|
|
("C-<return>" . crux-smart-open-line)
|
|
|
|
("S-<return>" . crux-smart-open-line)
|
|
|
|
([remap open-line] . crux-smart-open-line)
|
|
|
|
("C-S-<return>" . crux-smart-open-line-above)
|
|
|
|
("M-o" . crux-smart-open-line-above)
|
|
|
|
("C-c d" . crux-duplicate-current-line-or-region)
|
|
|
|
("C-c M-d" . crux-duplicate-and-comment-current-line-or-region)
|
|
|
|
("C-c F" . crux-recentf-find-file)
|
|
|
|
("C-x 4 s" . crux-swap-windows)
|
|
|
|
("C-x M-o" . crux-other-window-or-switch-buffer)
|
2022-08-10 14:57:42 +00:00
|
|
|
("C-c C-M-x" . crux-eval-and-replace)
|
2021-08-17 11:49:19 +00:00
|
|
|
("C-c M-k" . crux-kill-other-buffers)
|
|
|
|
("C-c C-r" . crux-rename-buffer-and-file)
|
|
|
|
("C-c D" . crux-delete-file-and-buffer)
|
|
|
|
("C-c w" . crux-cleanup-buffer-or-region)
|
|
|
|
("C-c M-o" . crux-open-with)
|
|
|
|
("C-M-z" . curx-indent-defun)
|
|
|
|
("C-c C-u" . crux-view-url)
|
|
|
|
("C-c TAB" . crux-indent-rigidly-and-copy-to-clipboard)
|
2021-08-19 12:48:45 +00:00
|
|
|
("C-c C-M-j" . crux-switch-to-previous-buffer)
|
2022-04-28 05:59:12 +00:00
|
|
|
("C-c C-!" . crux-reopen-as-root))
|
2021-08-17 11:49:19 +00:00
|
|
|
|
|
|
|
(provide 'init-crux)
|
|
|
|
;;; init-crux.el ends here
|