diff options
| -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  | 
