Emacs: drag-stuff to move lines, valign to fix unicode tables, csv-mode stuff

This commit is contained in:
Joseph Ferano 2024-02-14 13:09:39 +08:00
parent 18cd27c699
commit 1539af6274

View File

@ -184,6 +184,7 @@ Finish up
evil-goggles evil-goggles
avy avy
all-the-icons-ibuffer all-the-icons-ibuffer
drag-stuff
;; ace-window ;; ace-window
;; Mail ;; Mail
smtpmail smtpmail
@ -224,6 +225,7 @@ Finish up
org-fancy-priorities org-fancy-priorities
org-roam org-roam
org-download org-download
valign
;; Programming Languages ;; Programming Languages
highlight-quoted highlight-quoted
rustic rustic
@ -601,6 +603,46 @@ weren't working, until I randomly saw this in someone's init.el
(setq sentence-end-double-space nil) (setq sentence-end-double-space nil)
#+end_src #+end_src
~drag-stuff~ package to move lines around, here's a snippet that re-indents
#+begin_src emacs-lisp
(defun indent-region-advice (&rest ignored)
(let ((deactivate deactivate-mark))
(if (region-active-p)
(indent-region (region-beginning) (region-end))
(indent-region (line-beginning-position) (line-end-position)))
(setq deactivate-mark deactivate)))
(advice-add 'drag-stuff-up :after 'indent-region-advice)
(advice-add 'drag-stuff-down :after 'indent-region-advice)
(define-key prog-mode-map (kbd "M-<up>") #'drag-stuff-up)
(define-key prog-mode-map (kbd "M-<down>") #'drag-stuff-down)
(define-key prog-mode-map (kbd "M-<left>") #'drag-stuff-left)
(define-key prog-mode-map (kbd "M-<right>") #'drag-stuff-right)
#+end_src
Simple function more quickly align text
#+begin_src emacs-lisp
(defun joe/align-whitespace (beg end)
"Align column text in region by whitespace."
(interactive "r")
(align-regexp beg end "\\(\\s-*\\)\\s-" 1 0 t)
(indent-region beg end))
#+end_src
#+begin_src emacs-lisp
(add-hook 'csv-mode-hook #'csv-header-line)
(add-hook 'csv-mode-hook #'csv-align-mode)
(defun csv-align-visible ()
"Align visible fields."
(interactive)
(csv-align-fields nil (window-start) (window-end)))
(add-hook 'csv-mode-hook
(lambda ()
(define-key csv-mode-map (kbd "C-c C-a") 'csv-align-mode)))
#+end_src #+end_src
*** COMMENT Hydra *** COMMENT Hydra
#+begin_src emacs-lisp #+begin_src emacs-lisp