[Emacs] Add new org and magit packages, new keybindinigs
Add toc-org, magit-todos, and bufler, replace buffer-listing functions with functinos from bufler
This commit is contained in:
parent
98b995f985
commit
30bf89a0ab
@ -311,9 +311,9 @@ copy their code here. First we get the ~after!~ macro:
|
||||
| / | <c> | <c> |
|
||||
| Emphasis | Character | Character code |
|
||||
|----------+-----------+----------------|
|
||||
| Bold | ~*~ | 42 |
|
||||
| Italic | ~/~ | 47 |
|
||||
| Code | ~~~ | 126 |
|
||||
| Bold | ~*~ | 42 |
|
||||
| Italic | ~/~ | 47 |
|
||||
| Code | ~~~ | 126 |
|
||||
|
||||
#+begin_src emacs-lisp
|
||||
(defun org-mode-emphasize-bold ()
|
||||
@ -1643,6 +1643,22 @@ the usage of the ~:ignore:~ tag in org.
|
||||
(setq-default org-agenda-files (list "~/org/agenda" "~/org/notes.org"))
|
||||
#+end_src
|
||||
|
||||
**** Behavior
|
||||
A useful package I like is ~toc-org~ which creates automatically a table
|
||||
of contents. My main usage for this however is not just to create a
|
||||
table of content of my files to quickly jump around my file (I have
|
||||
~counsel-org-goto~ for that), but it is for creating table of contents
|
||||
for org files that will be hosted and viewable on Github.
|
||||
#+begin_src emacs-lisp
|
||||
(use-package toc-org
|
||||
:after org
|
||||
:straight (:build t)
|
||||
:init
|
||||
(add-to-list 'org-tag-alist '("TOC" . ?T))
|
||||
:hook (org-mode . toc-org-mode)
|
||||
:hook (markdown-mode . toc-org-mode))
|
||||
#+end_src
|
||||
|
||||
**** Babel
|
||||
A package I use from time to time is ~ob-latex-as-png~ which allows me
|
||||
to easily convert a LaTeX snippet into a PNG, regardless of the
|
||||
@ -2038,8 +2054,67 @@ I’ll also create a fuction for connecting to this new Tramp protocol:
|
||||
(magit-status "/yadm::"))
|
||||
#+end_src
|
||||
|
||||
** Making my life easier
|
||||
*** Bufler
|
||||
Bufler is a package that organizes and lists buffers in a much better
|
||||
way than how they are usually sorted. You can easily and quickly find
|
||||
buffers by their group, not only by their name, and THIS is great
|
||||
news! Also, no ~helm~ please! And for some reasons the keybindings are
|
||||
borked by default, so let’s redefine them, and let’s also rebind ~SPC~
|
||||
to ~p~ since it would conflict with my main ~general~ prefix.
|
||||
#+begin_src emacs-lisp
|
||||
(use-package bufler
|
||||
:straight (bufler :build t
|
||||
:files (:defaults (:exclude "helm-bufler.el")))
|
||||
:defer t
|
||||
:general
|
||||
(:keymaps 'bufler-list-mode-map
|
||||
:states 'normal
|
||||
"?" #'hydra:bufler/body
|
||||
"g" #'bufler
|
||||
"f" #'bufler-list-group-frame
|
||||
"F" #'bufler-list-group-make-frame
|
||||
"N" #'bufler-list-buffer-name-workspace
|
||||
"k" #'bufler-list-buffer-kill
|
||||
"p" #'bufler-list-buffer-peek
|
||||
"s" #'bufler-list-buffer-save
|
||||
"RET" #'bufler-list-buffer-switch))
|
||||
#+end_src
|
||||
|
||||
*** Helpful
|
||||
As the name tells, ~helpful~ is a really helpful package which greatly
|
||||
enhances a couple of built-in functions from Emacs, namely:
|
||||
| Vanilla Emacs Function | Helpful Function | Comment |
|
||||
|------------------------+------------------+-----------------------------------------------|
|
||||
| ~describe-function~ | ~helpful-callable~ | Only interactive functions |
|
||||
| ~describe-function~ | ~helpful-function~ | Only actual functions (including interactive) |
|
||||
| ~describe-function~ | ~helpful-macro~ | |
|
||||
| ~describe-command~ | ~helpful-command~ | |
|
||||
| ~describe-key~ | ~helpful-key~ | |
|
||||
| ~describe-variable~ | ~helpful-variable~ | |
|
||||
|
||||
#+begin_src emacs-lisp
|
||||
(use-package helpful
|
||||
:straight (:build t)
|
||||
:after (counsel ivy)
|
||||
:custom
|
||||
(counsel-describe-function-function #'helpfull-callable)
|
||||
(counsel-describe-variable-function #'helpfull-variable)
|
||||
:bind
|
||||
([remap describe-function] . counsel-describe-function)
|
||||
([remap describe-command] . helpful-command)
|
||||
([remap describe-variable] . counsel-describe-variable)
|
||||
([remap describe-key] . helpful-key))
|
||||
#+end_src
|
||||
|
||||
** Project Management
|
||||
*** Magit
|
||||
Magit is an awesome wrapper around Git for Emacs! Very often, I go
|
||||
from disliking to really hating Git GUI clients because they often
|
||||
obfuscate which Git commands are used to make things happen. Such a
|
||||
thing doesn’t happen with Magit, it’s pretty transparent but it still
|
||||
provides some awesome features and visualizations of what you are
|
||||
doing and what Git is doing! In short, I absolutely love it!
|
||||
#+begin_src emacs-lisp
|
||||
(use-package magit
|
||||
:straight (:build t)
|
||||
@ -2061,6 +2136,17 @@ I’ll also create a fuction for connecting to this new Tramp protocol:
|
||||
"a" #'with-editor-cancel)))
|
||||
#+end_src
|
||||
|
||||
[[https://github.com/alphapapa][Alphapapa]] also created an awesome package for Magit: magit-todos which
|
||||
display in the Magit buffer a list of TODOs found in the current
|
||||
project to remind you of what to do next.
|
||||
#+begin_src emacs-lisp
|
||||
(use-package magit-todos
|
||||
:straight (:build t)
|
||||
:after magit
|
||||
:config
|
||||
(setq magit-todos-ignore-case t))
|
||||
#+end_src
|
||||
|
||||
*** Forge
|
||||
*NOTE*: Make sure to configure a GitHub token before using this
|
||||
package!
|
||||
@ -2097,6 +2183,16 @@ I’ll also create a fuction for connecting to this new Tramp protocol:
|
||||
DSLs, or /Domain Specific Languages/, are languages dedicated to some
|
||||
very tasks, such as configuration languages or non-general programming
|
||||
such as SQL.
|
||||
|
||||
**** Shells
|
||||
Aside from Eshell, my main shell on my machine is fish (see my [[file:fish.org][fish
|
||||
config]]), therefore I need a mode for it.
|
||||
#+begin_src emacs-lisp
|
||||
(use-package fish-mode
|
||||
:straight (:build t)
|
||||
:defer t)
|
||||
#+end_src
|
||||
|
||||
**** Caddy
|
||||
[[https://caddyserver.com/][Caddy]] (or /Caddyserver/) is a web server akin to Nginx or Apache which I
|
||||
find much easier to configure that the latter two, plus it has
|
||||
@ -2406,7 +2502,8 @@ Undefining some stuff to make keybind prefixes work correctly.
|
||||
epa-key-list-mode-map special-mode-map splash-screen-keymap
|
||||
undo-tree-visualizer-mode-map magit-blame-read-only-mode-map
|
||||
org-agenda-keymap org-agenda-mode-map git-rebase-mode-map
|
||||
Buffer-menu-mode-map custom-mode-map gfm-view-mode-map)
|
||||
Buffer-menu-mode-map custom-mode-map gfm-view-mode-map
|
||||
electric-help-map image-mode-map magit-diff-mode-map)
|
||||
"SPC" nil)
|
||||
|
||||
(general-define-key
|
||||
@ -2478,9 +2575,9 @@ Undefining some stuff to make keybind prefixes work correctly.
|
||||
"asv" #'vterm
|
||||
|
||||
"b" '(nil :wk "buffers")
|
||||
"bb" #'counsel-ibuffer
|
||||
"bb" #'bufler-switch-buffer
|
||||
"bB" #'bury-buffer
|
||||
"bi" #'ibuffer-list-buffers-and-focus
|
||||
"bl" #'bufler-switch-buffer
|
||||
"bd" #'kill-this-buffer
|
||||
"bD" #'kill-buffer
|
||||
"bh" #'dashboard-refresh-buffer
|
||||
@ -2546,6 +2643,7 @@ Undefining some stuff to make keybind prefixes work correctly.
|
||||
"pg" #'projectile-find-tag
|
||||
"pk" #'project-kill-buffers
|
||||
"pp" #'counsel-projectile-switch-project
|
||||
"pt" #'ivy-magit-todos
|
||||
"pv" #'projectile-vc
|
||||
|
||||
"t" '(nil :wk "toggles")
|
||||
|
Loading…
Reference in New Issue
Block a user