diff options
Diffstat (limited to 'Emacs/.config/emacs/config.org')
-rw-r--r-- | Emacs/.config/emacs/config.org | 173 |
1 files changed, 93 insertions, 80 deletions
diff --git a/Emacs/.config/emacs/config.org b/Emacs/.config/emacs/config.org index 22dde73..fda5a0d 100644 --- a/Emacs/.config/emacs/config.org +++ b/Emacs/.config/emacs/config.org @@ -507,46 +507,45 @@ code. *** Some binds in Emacs Some bindings that I couldn't fit elsewhere easily. #+begin_src emacs-lisp - (use-package emacs - :straight nil - :general - (general-def - "C-x d" #'delete-frame) - - (nmmap - "C--" #'text-scale-decrease - "C-=" #'text-scale-increase) - - (leader - "SPC" '(execute-extended-command :which-key "M-x") - "'" '(browse-url-emacs :which-key "Open url in Emacs") - "u" 'universal-argument - ";" 'eval-expression - ":" `(,(proc (interactive) (switch-to-buffer "*scratch*")) - :which-key "Switch to *scratch*") - "!" '(async-shell-command :which-key "Async shell command") - "h" '(help-command :which-key "Help")) - - (mode-leader - "t" #'+oreo/switch-theme) - - (code-leader - "F" (list (proc (interactive) (find-file "~/Code/")) ':which-key "Open ~/Code/")) - - (file-leader - "f" #'find-file - "F" #'find-file-other-frame - "s" #'save-buffer - "p" (list (proc (interactive) (find-file (concat user-emacs-directory "config.org"))) - ':which-key "Open config.org")) - - (quit-leader - "q" #'save-buffers-kill-terminal - "c" #'+literate/compile-config - "l" #'+literate/load-config - "d" #'delete-frame) - - (search-leader "i" #'imenu)) +(use-package emacs + :straight nil + :general + (general-def + "C-x d" #'delete-frame) + + (nmmap + "C--" #'text-scale-decrease + "C-=" #'text-scale-increase) + + (leader + "SPC" '(execute-extended-command :which-key "M-x") + "'" '(browse-url-emacs :which-key "Open url in Emacs") + ";" 'eval-expression + ":" `(,(proc (interactive) (switch-to-buffer "*scratch*")) + :which-key "Switch to *scratch*") + "!" '(async-shell-command :which-key "Async shell command") + "h" '(help-command :which-key "Help")) + + (mode-leader + "t" #'+oreo/switch-theme) + + (code-leader + "F" (list (proc (interactive) (find-file "~/Code/")) ':which-key "Open ~/Code/")) + + (file-leader + "f" #'find-file + "F" #'find-file-other-frame + "s" #'save-buffer + "p" (list (proc (interactive) (find-file (concat user-emacs-directory "config.org"))) + ':which-key "Open config.org")) + + (quit-leader + "q" #'save-buffers-kill-terminal + "c" #'+literate/compile-config + "l" #'+literate/load-config + "d" #'delete-frame) + + (search-leader "i" #'imenu)) #+end_src ** Evil My editor journey started off with Vim rather than Emacs, so my brain @@ -1118,29 +1117,30 @@ and a Makefile skeleton. 'auto-insert-alist '(("Makefile" . "Makefile skeleton") "" - "CC=g++ + "CC=gcc CFLAGS=-Wall -ggdb OBJECTS=main.o OUT=main ARGS= -%.o: %.cpp - $(CC) $(CFLAGS) -c $^ -o $@ +%.o: %.c + $(CC) $(CFLAGS) -c $^ -o $@ $(OUT): $(OBJECTS) - $(CC) $(CFLAGS) $^ -o $@ + $(CC) $(CFLAGS) $^ -o $@ .PHONY: clean: - rm -rfv $(OUT) $(OBJECTS) + rm -rfv $(OUT) $(OBJECTS) .PHONY: run run: $(OUT) - ./$^ $(ARGS) + ./$^ $(ARGS) + .PHONY: memcheck memcheck: $(OUT) - sh /etc/profile.d/debuginfod.sh && valgrind --leak-check=full -s --tool=memcheck ./$^ $(ARGS)" + sh /etc/profile.d/debuginfod.sh && valgrind --leak-check=full -s --tool=memcheck ./$^ $(ARGS)" _))) #+end_src *** Yasnippet default @@ -1610,9 +1610,9 @@ integrate it into my workflow just a bit better. (when (eq beg end) (notmuch-search-next-thread))) (advice-add #'notmuch-poll-and-refresh-this-buffer :before - #'+mail/sync-mail) +#'+mail/sync-mail) (advice-add #'notmuch-poll-and-refresh-this-buffer :after - #'+mail/trash-junk) +#'+mail/trash-junk) (with-eval-after-load "evil-collection" (evil-collection-notmuch-setup))) #+end_src @@ -2238,7 +2238,7 @@ would be describing changes... (setq undo-tree-auto-save-history t) :general (leader - "U" #'undo-tree-visualize)) + "u" #'undo-tree-visualize)) #+end_src *** Whitespace Deleting whitespace, highlighting when going beyond the 80th character @@ -2372,6 +2372,9 @@ and when I don't. #+begin_src emacs-lisp (use-package flycheck :commands (flycheck-mode flycheck-list-errors) + :hook + (c-mode-hook . flycheck-mode) + (c++-mode-hook . flycheck-mode) :general (mode-leader "f" #'flycheck-mode) @@ -2907,6 +2910,13 @@ Setup for C and C++ modes via the cc-mode package. C and C++ are great languages for general purpose programming. My preferred choice when I want greater control over memory management. *** cc-mode +Tons of stuff, namely: ++ ~auto-fill-mode~ for 80 char limit ++ Some keybindings to make evil statement movement is easy ++ Lots of pretty symbols ++ Indenting options and a nice (for me) code style for C (though + aggressive indent screws with this a bit) ++ Auto inserts to get a C file going #+begin_src emacs-lisp (use-package cc-mode :defer t @@ -2954,25 +2964,24 @@ when I want greater control over memory management. (setq-default c-default-style '((other . "user"))) (with-eval-after-load "autoinsert" - (define-auto-insert - '("\\.c\\'" . "C skeleton") - '("" - "/* " (file-name-nondirectory (buffer-file-name (current-buffer))) "\n" - " * Created: " (format-time-string "%Y-%m-%d") "\n" - " * Author: " user-full-name "\n" - " */\n" - "\n" - _)) - - (define-auto-insert - '("\\.cpp\\'" . "C++ skeleton") - '("" - "/* " (file-name-nondirectory (buffer-file-name (current-buffer))) "\n" - " * Created: " (format-time-string "%Y-%m-%d") "\n" - " * Author: " user-full-name "\n" - " */\n" - "\n" - _))) + (let ((skeleton + '("" + "/* " (file-name-nondirectory (buffer-file-name (current-buffer))) "\n" + " * Created: " (format-time-string "%Y-%m-%d") "\n" + " * Author: " user-full-name "\n" + " */\n" + "#include <stdio.h>\n" + "#include <stdlib.h>\n" + "#include <malloc.h>\n" + "#include <string.h>\n" + "\n" + _))) + (define-auto-insert + '("\\.c\\'" . "C skeleton") + skeleton) + (define-auto-insert + '("\\.cpp\\'" . "C++ skeleton") + skeleton))) :config (c-add-style "user" @@ -3002,22 +3011,24 @@ format [[file:~/Dotfiles/ClangFormat/.clang-format][config file]] in my dotfiles :straight nil :load-path "/usr/share/clang/" :after cc-mode - :commands (+code/clang-format-region-or-buffer) + :commands (+code/clang-format-region-or-buffer + clang-format-mode) + :hook + (c-mode-hook . clang-format-mode) + (c++-mode-hook . clang-format-mode) :general (code-leader :keymaps '(c-mode-map c++-mode-map) "f" #'+code/clang-format-region-or-buffer) :config - (defvar +code/clang-format-automatically t - "Automatically call clang-format every time save occurs in C/C++ -buffer") - - (+oreo/create-auto-save - (and +code/clang-format-automatically - (or (eq major-mode 'c-mode) - (eq major-mode 'c++-mode))) - (clang-format-buffer)) - + (define-minor-mode clang-format-mode + "On save formats the current buffer via clang-format." + :lighter nil + (let ((save-func (proc (interactive) + (clang-format-buffer)))) + (if clang-format-mode + (add-hook 'after-save-hook save-func nil t) + (remove-hook 'after-save-hook save-func t)))) (defun +code/clang-format-region-or-buffer () (interactive) (if (mark) @@ -3268,6 +3279,8 @@ development on Emacs. sly-mrepl nil) :general + (shell-leader + "s" #'+shell/toggle-sly) (nmap :keymaps '(lisp-mode-map sly-mrepl-mode-map) "gr" #'sly-eval-buffer |