1873 lines
63 KiB
Org Mode
1873 lines
63 KiB
Org Mode
* TODO [1/59] Reorganize this file to follow Emacs manual
|
||
:PROPERTIES:
|
||
:CREATED: [2023-07-12 Wed 21:37]
|
||
:END:
|
||
**** TODO Distribution
|
||
**** TODO Introduction
|
||
**** TODO [0/4] 1 The Organization of the Screen
|
||
***** TODO 1.1 Point
|
||
***** TODO 1.2 The Echo Area
|
||
***** TODO 1.3 The Mode Line
|
||
***** TODO 1.4 The Menu Bar
|
||
**** TODO 2 Kinds of User Input
|
||
**** TODO 3 Keys
|
||
**** TODO 4 Keys and Commands
|
||
**** TODO 5 Entering Emacs
|
||
**** TODO 6 Exiting Emacs
|
||
**** TODO [1/11] 7 Basic Editing Commands
|
||
***** CNCL 7.1 Inserting Text
|
||
:LOGBOOK:
|
||
- State "CNCL" from "TODO" [2024-07-29 Mon 16:24]
|
||
:END:
|
||
***** TODO 7.2 Changing the Location of Point
|
||
***** TODO 7.3 Erasing
|
||
***** TODO 7.4 Undoing Changes
|
||
***** TODO 7.5 Files
|
||
***** TODO 7.6 Help
|
||
***** TODO 7.7 Blank Lines
|
||
***** TODO 7.8 Continuation Lines
|
||
***** TODO 7.9 Cursor Position Information
|
||
***** TODO 7.10 Numeric Arguments
|
||
***** TODO 7.11 Repeating a Command
|
||
**** TODO [2/8] 8 The Minibuffer
|
||
***** TODO 8.1 Using the Minibuffer
|
||
***** TODO 8.2 Minibuffers for File Names
|
||
***** TODO 8.3 Editing in the Minibuffer
|
||
***** TODO [1/8] 8.4 Completion
|
||
****** TODO 8.4.1 Completion Example
|
||
****** TODO 8.4.2 Completion Commands
|
||
****** TODO 8.4.3 Completion Exit
|
||
****** TODO 8.4.4 How Completion Alternatives Are Chosen
|
||
****** TODO 8.4.5 Completion Options
|
||
****** TODO [0/1] Company
|
||
:LOGBOOK:
|
||
- State "DONE" from "TODO" [2023-07-05 Wed 16:46]
|
||
:END:
|
||
#+begin_src elisp :tangle no
|
||
(use-package company
|
||
:diminish company-mode
|
||
:config
|
||
(defvar company-minimum-prefix-length 3)
|
||
(defvar company-idle-delay 0)
|
||
(defvar company-global-modes t)
|
||
(defvar company-selection-wrap-around t)
|
||
(defvar company-tooltip-align-annotations t)
|
||
(defvar company-backends '((
|
||
company-capf
|
||
company-dabbrev-code
|
||
company-dabbrev
|
||
company-ispell
|
||
company-files
|
||
company-web
|
||
company-shell
|
||
company-posframe
|
||
)))
|
||
|
||
(global-company-mode)
|
||
(add-hook 'after-init-hook 'global-company-mode)
|
||
(add-hook 'after-init-hook 'company-tng-mode)
|
||
|
||
(with-eval-after-load 'company
|
||
(define-key company-active-map (kbd "M-/") #'company-complete))
|
||
|
||
(with-eval-after-load 'company
|
||
(define-key company-active-map
|
||
(kbd "TAB")
|
||
#'company-complete-common-or-cycle)
|
||
(define-key company-active-map
|
||
(kbd "<backtab>")
|
||
(lambda ()
|
||
(interactive)
|
||
(company-complete-common-or-cycle -1))))
|
||
:bind (
|
||
( "<tab>" . company-indent-or-complete-common)
|
||
( "C-c C-l" . company-other-backend)
|
||
)
|
||
)
|
||
#+end_src
|
||
|
||
#+begin_src elisp :tangle no
|
||
(use-package company-shell
|
||
:after company
|
||
:config
|
||
(add-to-list 'company-backends '(company-shell
|
||
company-shell-env
|
||
company-fish-shell
|
||
)
|
||
)
|
||
(setq company-transformers '(delete-consecutive-dups
|
||
company-sort-by-occurrence))
|
||
|
||
)
|
||
#+end_src
|
||
|
||
#+begin_src elisp :tangle no
|
||
(use-package company-capf
|
||
:after company
|
||
:config
|
||
(add-to-list 'company-backends '(company-capf))
|
||
)
|
||
#+end_src
|
||
|
||
#+begin_src elisp :tangle no
|
||
(use-package company-ispell
|
||
:after company
|
||
)
|
||
(add-to-list 'company-backends '(company-ispell))
|
||
#+end_src
|
||
|
||
#+begin_src elisp :tangle no
|
||
(use-package company-files
|
||
:after company
|
||
)
|
||
(add-to-list 'company-backends '(company-files))
|
||
#+end_src
|
||
|
||
******* TODO Required for proportional font
|
||
:LOGBOOK:
|
||
- State "DONE" from "TODO" [2023-07-05 Wed 16:46]
|
||
:END:
|
||
#+begin_src elisp :tangle no
|
||
(use-package company-posframe
|
||
:diminish company-posframe-mode
|
||
:config (company-posframe-mode)
|
||
)
|
||
#+end_src
|
||
|
||
****** DONE [5/5] [[https://tuhdo.github.io/helm-intro.html][Helm]]
|
||
:LOGBOOK:
|
||
- State "DONE" from "NEXT" [2023-08-18 Fri 12:57]
|
||
:END:
|
||
|
||
******* CNCL Basic Helm
|
||
#+begin_src elisp :tangle no
|
||
(use-package helm
|
||
:init (helm-mode)
|
||
:config
|
||
(defvar helm-M-x-fuzzy-match t)
|
||
(defvar helm-recentf-fuzzy-match t)
|
||
(defvar helm-buffers-fuzzy-matching t)
|
||
(defvar helm-locate-fuzzy-match t)
|
||
(defvar helm-mode-fuzzy-match t)
|
||
(defvar helm-split-window-inside-p nil) ; open helm buffer inside current window, not occupy whole other window
|
||
(defvar helm-lisp-fuzzy-completion t)
|
||
:bind (
|
||
("M-x" . helm-M-x) ;; Evaluate functions
|
||
("C-x C-f" . helm-find-files) ;; Open or create files
|
||
("C-x b" . helm-mini) ;; Select buffers
|
||
("C-x C-r" . helm-recentf) ;; Select recently saved files
|
||
("C-c i" . helm-imenu) ;; Select document heading
|
||
("M-y" . helm-show-kill-ring) ;; Show the kill ring
|
||
(:map helm-map
|
||
("C-z" . helm-select-action)
|
||
("<tab>" . helm-execute-persistent-action))
|
||
)
|
||
)
|
||
#+end_src
|
||
|
||
******* CNCL Interface to silversearch-ag for fast search among entire folders
|
||
:LOGBOOK:
|
||
- State "DONE" from "TODO" [2024-02-12 Mon 16:13]
|
||
:END:
|
||
|
||
#+begin_src elisp :tangle no
|
||
(use-package helm-ag)
|
||
#+end_src
|
||
|
||
******* CNCL [[https://github.com/emacs-helm/helm-firefox][Display firefox bookmarks with emacs helm interface]] :emacs:web:archive:
|
||
:PROPERTIES:
|
||
:TITLE: GitHub - emacs-helm/helm-firefox: Display firefox bookmarks with emacs helm interface
|
||
:URI: tps://github.com/emacs-helm/helm-firefox
|
||
:CREATED: [2023-01-28 Sat 09:11]
|
||
:END:
|
||
:LOGBOOK:
|
||
- State "CNCL" from "TODO" [2023-08-18 Fri 12:56] \\
|
||
Not using Firefox bookmarks for now.
|
||
:END:
|
||
|
||
#+begin_src elisp :tangle no
|
||
(use-package helm-firefox)
|
||
#+end_src
|
||
|
||
******* CNCL Allow refiling to level, override Helm to complete refiling target
|
||
:LOGBOOK:
|
||
- State "DONE" from "TODO" [2023-07-07 Fri 16:50]
|
||
:END:
|
||
#+begin_src elisp :tangle no
|
||
(setq org-refile-use-outline-path 'file)
|
||
#+end_src
|
||
|
||
******* CNCL Shell history
|
||
:LOGBOOK:
|
||
- State "DONE" from "TODO" [2023-08-18 Fri 13:01]
|
||
:END:
|
||
|
||
#+begin_src elisp :tangle no
|
||
(use-package helm-shell-history)
|
||
#+end_src
|
||
|
||
****** TODO [4/5] [[https://kristofferbalintona.me/posts/202202211546/][Vertico, Marginalia, All-the-icons-completion, and Orderless]]
|
||
:LOGBOOK:
|
||
- State "DONE" from "DONE" [2024-07-19 Fri 14:12]
|
||
- State "DONE" from "TODO" [2024-07-19 Fri 13:56]
|
||
:END:
|
||
******* DONE [[https://github.com/minad/vertico][Vertico]]
|
||
:LOGBOOK:
|
||
- State "DONE" from "TODO" [2024-07-19 Fri 13:34]
|
||
:END:
|
||
|
||
#+begin_src elisp
|
||
(use-package vertico
|
||
:demand t ; Otherwise won't get loaded immediately
|
||
:init (vertico-mode)
|
||
:straight (vertico :files (:defaults "extensions/*") ; Special recipe to load extensions conveniently
|
||
:includes (vertico-indexed
|
||
vertico-flat
|
||
vertico-grid
|
||
vertico-mouse
|
||
vertico-quick
|
||
vertico-buffer
|
||
vertico-repeat
|
||
vertico-reverse
|
||
vertico-directory
|
||
vertico-multiform
|
||
vertico-unobtrusive
|
||
))
|
||
|
||
:config
|
||
(setq vertico-cycle t)
|
||
(setq vertico-count 13)
|
||
(setq vertico-resize nil)
|
||
(setq vertico-cycle nil)
|
||
|
||
;; Extensions
|
||
(setq vertico-grid-separator " ")
|
||
(setq vertico-grid-lookahead 50)
|
||
(setq vertico-buffer-display-action '(display-buffer-reuse-window))
|
||
(setq vertico-multiform-categories
|
||
'((file reverse)
|
||
(consult-grep buffer)
|
||
(consult-location)
|
||
(imenu buffer)
|
||
(library reverse indexed)
|
||
(org-roam-node reverse indexed)
|
||
(t reverse)
|
||
)
|
||
)
|
||
(setq vertico-multiform-commands
|
||
'(("flyspell-correct-*" grid reverse)
|
||
(org-refile grid reverse indexed)
|
||
(consult-yank-pop indexed)
|
||
(consult-flycheck)
|
||
(consult-lsp-diagnostics)
|
||
)
|
||
)
|
||
|
||
;; Extensions
|
||
(vertico-multiform-mode)
|
||
|
||
:bind (:map vertico-map
|
||
("C-j" . vertico-next)
|
||
("C-k" . vertico-previous)
|
||
("C-f" . vertico-exit)
|
||
:map minibuffer-local-map
|
||
("M-h" . backward-kill-word))
|
||
)
|
||
#+end_src
|
||
|
||
#+begin_src elisp
|
||
(use-package savehist
|
||
:init
|
||
(savehist-mode)
|
||
)
|
||
#+end_src
|
||
|
||
#+begin_src elisp
|
||
;; A few more useful configurations...
|
||
(use-package emacs
|
||
:custom
|
||
;; Support opening new minibuffers from inside existing minibuffers.
|
||
(enable-recursive-minibuffers t)
|
||
;; Emacs 28 and newer: Hide commands in M-x which do not work in the current
|
||
;; mode. Vertico commands are hidden in normal buffers. This setting is
|
||
;; useful beyond Vertico.
|
||
(read-extended-command-predicate #'command-completion-default-include-p)
|
||
:init
|
||
;; Add prompt indicator to `completing-read-multiple'.
|
||
;; We display [CRM<separator>], e.g., [CRM,] if the separator is a comma.
|
||
(defun crm-indicator (args)
|
||
(cons (format "[CRM%s] %s"
|
||
(replace-regexp-in-string
|
||
"\\`\\[.*?]\\*\\|\\[.*?]\\*\\'" ""
|
||
crm-separator)
|
||
(car args))
|
||
(cdr args)))
|
||
(advice-add #'completing-read-multiple :filter-args #'crm-indicator)
|
||
|
||
;; Do not allow the cursor in the minibuffer prompt
|
||
(setq minibuffer-prompt-properties
|
||
'(read-only t cursor-intangible t face minibuffer-prompt))
|
||
(add-hook 'minibuffer-setup-hook #'cursor-intangible-mode))
|
||
#+end_src
|
||
|
||
******* DONE [[https://github.com/minad/marginalia/][Marginalia]]
|
||
:LOGBOOK:
|
||
- State "DONE" from "TODO" [2024-07-19 Fri 13:35]
|
||
:END:
|
||
|
||
#+begin_src elisp
|
||
(use-package marginalia
|
||
:init
|
||
(marginalia-mode)
|
||
:config
|
||
(setq marginalia-max-relative-age 0)
|
||
(setq marginalia-align 'right)
|
||
:bind (("M-A" . marginalia-cycle)
|
||
:map minibuffer-local-map
|
||
("M-A" . marginalia-cycle))
|
||
)
|
||
#+end_src
|
||
|
||
******* DONE [[https://github.com/oantolin/orderless][Orderless]]
|
||
|
||
Seast space separated words with no order.
|
||
|
||
#+begin_src elisp
|
||
(use-package orderless
|
||
:config
|
||
(setq completion-styles '(orderless basic))
|
||
(setq completion-category-overrides '((file (styles basic partial-completion))))
|
||
)
|
||
#+end_src
|
||
|
||
******* DONE [[https://github.com/minad/consult][Consult]]
|
||
:LOGBOOK:
|
||
- State "DONE" from "TODO" [2024-07-19 Fri 13:35]
|
||
:END:
|
||
|
||
#+begin_src elisp
|
||
;; Example configuration for Consult
|
||
(use-package consult
|
||
;; Replace bindings. Lazily loaded by `use-package'.
|
||
:bind (;; C-c bindings in `mode-specific-map'
|
||
("C-c M-x" . consult-mode-command)
|
||
("C-c h" . consult-history)
|
||
("C-c k" . consult-kmacro)
|
||
("C-c m" . consult-man)
|
||
("C-c i" . consult-info)
|
||
([remap Info-search] . consult-info)
|
||
;; C-x bindings in `ctl-x-map'
|
||
("C-x M-:" . consult-complex-command) ;; orig. repeat-complex-command
|
||
("C-x b" . consult-buffer) ;; orig. switch-to-buffer
|
||
("C-x 4 b" . consult-buffer-other-window) ;; orig. switch-to-buffer-other-window
|
||
("C-x 5 b" . consult-buffer-other-frame) ;; orig. switch-to-buffer-other-frame
|
||
("C-x t b" . consult-buffer-other-tab) ;; orig. switch-to-buffer-other-tab
|
||
("C-x r b" . consult-bookmark) ;; orig. bookmark-jump
|
||
("C-x p b" . consult-project-buffer) ;; orig. project-switch-to-buffer
|
||
;; Custom M-# bindings for fast register access
|
||
("M-#" . consult-register-load)
|
||
("M-'" . consult-register-store) ;; orig. abbrev-prefix-mark (unrelated)
|
||
("C-M-#" . consult-register)
|
||
;; Other custom bindings
|
||
("M-y" . consult-yank-pop) ;; orig. yank-pop
|
||
;; M-g bindings in `goto-map'
|
||
("M-g e" . consult-compile-error)
|
||
("M-g f" . consult-flymake) ;; Alternative: consult-flycheck
|
||
("M-g g" . consult-goto-line) ;; orig. goto-line
|
||
("M-g M-g" . consult-goto-line) ;; orig. goto-line
|
||
("M-g o" . consult-outline) ;; Alternative: consult-org-heading
|
||
("M-g m" . consult-mark)
|
||
("M-g k" . consult-global-mark)
|
||
("M-g i" . consult-imenu)
|
||
("M-g I" . consult-imenu-multi)
|
||
;; M-s bindings in `search-map'
|
||
("M-s d" . consult-find) ;; Alternative: consult-fd
|
||
("M-s c" . consult-locate)
|
||
("M-s g" . consult-grep)
|
||
("M-s G" . consult-git-grep)
|
||
("M-s r" . consult-ripgrep)
|
||
("M-s l" . consult-line)
|
||
("M-s L" . consult-line-multi)
|
||
("M-s k" . consult-keep-lines)
|
||
("M-s u" . consult-focus-lines)
|
||
;; Isearch integration
|
||
("M-s e" . consult-isearch-history)
|
||
:map isearch-mode-map
|
||
("M-e" . consult-isearch-history) ;; orig. isearch-edit-string
|
||
("M-s e" . consult-isearch-history) ;; orig. isearch-edit-string
|
||
("M-s l" . consult-line) ;; needed by consult-line to detect isearch
|
||
("M-s L" . consult-line-multi) ;; needed by consult-line to detect isearch
|
||
;; Minibuffer history
|
||
:map minibuffer-local-map
|
||
("M-s" . consult-history) ;; orig. next-matching-history-element
|
||
("M-r" . consult-history)) ;; orig. previous-matching-history-element
|
||
|
||
;; Enable automatic preview at point in the *Completions* buffer. This is
|
||
;; relevant when you use the default completion UI.
|
||
:hook (completion-list-mode . consult-preview-at-point-mode)
|
||
|
||
;; The :init configuration is always executed (Not lazy)
|
||
:init
|
||
|
||
;; Optionally configure the register formatting. This improves the register
|
||
;; preview for `consult-register', `consult-register-load',
|
||
;; `consult-register-store' and the Emacs built-ins.
|
||
(setq register-preview-delay 0.5
|
||
register-preview-function #'consult-register-format)
|
||
|
||
;; Optionally tweak the register preview window.
|
||
;; This adds thin lines, sorting and hides the mode line of the window.
|
||
(advice-add #'register-preview :override #'consult-register-window)
|
||
|
||
;; Use Consult to select xref locations with preview
|
||
(setq xref-show-xrefs-function #'consult-xref
|
||
xref-show-definitions-function #'consult-xref)
|
||
|
||
;; Configure other variables and modes in the :config section,
|
||
;; after lazily loading the package.
|
||
:config
|
||
|
||
;; Optionally configure preview. The default value
|
||
;; is 'any, such that any key triggers the preview.
|
||
;; (setq consult-preview-key 'any)
|
||
;; (setq consult-preview-key "M-.")
|
||
;; (setq consult-preview-key '("S-<down>" "S-<up>"))
|
||
;; For some commands and buffer sources it is useful to configure the
|
||
;; :preview-key on a per-command basis using the `consult-customize' macro.
|
||
(consult-customize
|
||
consult-theme :preview-key '(:debounce 0.2 any)
|
||
consult-ripgrep consult-git-grep consult-grep
|
||
consult-bookmark consult-recent-file consult-xref
|
||
consult--source-bookmark consult--source-file-register
|
||
consult--source-recent-file consult--source-project-recent-file
|
||
;; :preview-key "M-."
|
||
:preview-key '(:debounce 0.4 any))
|
||
|
||
;; Optionally configure the narrowing key.
|
||
;; Both < and C-+ work reasonably well.
|
||
(setq consult-narrow-key "<") ;; "C-+"
|
||
|
||
;; Optionally make narrowing help available in the minibuffer.
|
||
;; You may want to use `embark-prefix-help-command' or which-key instead.
|
||
;; (keymap-set consult-narrow-map (concat consult-narrow-key " ?") #'consult-narrow-help)
|
||
)
|
||
#+end_src
|
||
|
||
******* TODO All the icons completion
|
||
:LOGBOOK:
|
||
- State "DONE" from "TODO" [2024-07-19 Fri 13:35]
|
||
:END:
|
||
|
||
#+begin_src elisp :tangle no
|
||
(use-package all-the-icons-completion
|
||
:after (marginalia all-the-icons)
|
||
:hook (marginalia-mode . all-the-icons-completion-marginalia-setup)
|
||
:init
|
||
(all-the-icons-completion-mode)
|
||
)
|
||
#+end_src
|
||
|
||
***** TODO 8.5 Minibuffer History
|
||
***** DONE 8.6 Repeating Minibuffer Commands
|
||
:LOGBOOK:
|
||
- State "DONE" from "TODO" [2024-07-24 Wed 11:30]
|
||
:END:
|
||
|
||
Instead of C-x o, C-x o, C-x o, you can use C-x o o o.
|
||
|
||
#+begin_src elisp
|
||
(repeat-mode)
|
||
#+end_src
|
||
|
||
***** TODO 8.7 Entering passwords
|
||
***** DONE 8.8 Yes or No Prompts
|
||
:LOGBOOK:
|
||
- State "DONE" from "TODO" [2024-07-24 Wed 11:30]
|
||
:END:
|
||
|
||
#+begin_src elisp
|
||
(defalias 'yes-or-no-p 'y-or-n-p)
|
||
#+end_src
|
||
|
||
**** TODO 9 Running Commands by Name
|
||
**** TODO [1/11] 10 Help
|
||
***** DONE Add ~/org/info to when searching for INFO documentation after Info-mode has started
|
||
|
||
#+begin_src elisp
|
||
;; Define the variable globally (outside any hook)
|
||
(defvar info-additiononal-directory-list nil
|
||
"List of additional directories to search for Info files.")
|
||
|
||
;; Set the variable inside the hook
|
||
(add-hook 'info-mode-hook
|
||
(lambda ()
|
||
(setq info-additional-directory-list (list (concat org-directory "/info")))
|
||
)
|
||
)
|
||
(global-set-key (kbd "C-c l") #'dictionary-lookup-definition)
|
||
#+end_src
|
||
|
||
***** TODO 10.1 Help Summary
|
||
***** TODO 10.2 Documentation for a Key
|
||
***** TODO 10.3 Help by Command or Variable Name
|
||
***** TODO 10.4 Apropos
|
||
***** TODO 10.5 Help Mode Commands
|
||
***** TODO 10.6 Keyword Search for Packages
|
||
***** TODO 10.7 Help for International Language Support
|
||
***** TODO 10.8 Other Help Commands
|
||
***** TODO 10.9 Help Files
|
||
***** TODO 10.10 Help on Active Text and Tooltips
|
||
**** TODO [0/7] 11 The Mark and the Region
|
||
***** TODO 11.1 Setting the Mark
|
||
***** TODO 11.2 Commands to Mark Textual Objects
|
||
***** TODO 11.3 Operating on the Region
|
||
***** TODO 11.4 The Mark Ring
|
||
***** TODO 11.5 The Global Mark Ring
|
||
***** TODO 11.6 Shift Selection
|
||
***** TODO 11.7 Disabling Transient Mark Mode
|
||
**** TODO [0/6] 12 Killing and Moving Text
|
||
***** TODO [0/4] 12.1 Deletion and Killing
|
||
****** TODO 12.1.1 Deletion
|
||
****** TODO 12.1.2 Killing by Lines
|
||
****** TODO 12.1.3 Other Kill Commands
|
||
****** TODO 12.1.4 Options for Killing
|
||
***** TODO [0/3] 12.2 Yanking
|
||
****** TODO 12.2.1 The Kill Ring
|
||
****** TODO 12.2.2 Yanking Earlier Kills
|
||
****** TODO 12.2.3 Appending Kills
|
||
***** TODO [0/3] 12.3 “Cut and Paste” Operations on Graphical Displays
|
||
****** TODO 12.3.1 Using the Clipboard
|
||
****** TODO 12.3.2 Cut and Paste with Other Window Applications
|
||
****** TODO 12.3.3 Secondary Selection
|
||
***** TODO 12.4 Accumulating Text
|
||
***** TODO 12.5 Rectangles
|
||
***** TODO 12.6 CUA Bindings
|
||
**** TODO [0/8] 13 Registers
|
||
***** TODO 13.1 Saving Positions in Registers
|
||
***** TODO 13.2 Saving Text in Registers
|
||
***** TODO 13.3 Saving Rectangles in Registers
|
||
***** TODO 13.4 Saving Window Configurations in Registers
|
||
***** TODO 13.5 Keeping Numbers in Registers
|
||
***** TODO 13.6 Keeping File Names in Registers
|
||
***** TODO 13.7 Keyboard Macro Registers
|
||
***** TODO 13.8 Bookmarks
|
||
**** TODO [0/23] 14 Controlling the Display
|
||
***** TODO 14.1 Scrolling
|
||
***** TODO 14.2 Recentering
|
||
***** TODO 14.3 Automatic Scrolling
|
||
***** TODO 14.4 Horizontal Scrolling
|
||
***** TODO 14.5 Narrowing
|
||
***** TODO 14.6 View Mode
|
||
***** TODO 14.7 Follow Mode
|
||
***** TODO 14.8 Text Faces
|
||
***** TODO [0/2] 14.9 Colors for Faces
|
||
****** TODO 14.9.1 Color Names
|
||
****** TODO 14.9.2 RGB Triplets
|
||
***** TODO 14.10 Standard Faces
|
||
***** TODO 14.11 Text Scale
|
||
***** TODO 14.12 Font Lock mode
|
||
***** TODO 14.13 Interactive Highlighting
|
||
***** TODO 14.14 Window Fringes
|
||
***** TODO 14.15 Displaying Boundaries
|
||
***** TODO 14.16 Useless Whitespace
|
||
***** TODO 14.17 Selective Display
|
||
***** TODO 14.18 Optional Mode Line Features
|
||
***** TODO 14.19 How Text Is Displayed
|
||
***** TODO 14.20 Displaying the Cursor
|
||
***** TODO 14.21 Line Truncation
|
||
***** TODO 14.22 Visual Line Mode
|
||
***** TODO 14.23 Customization of Display
|
||
**** TODO [0/12] 15 Searching and Replacement
|
||
***** TODO [0/7] 15.1 Incremental Search
|
||
****** TODO 15.1.1 Basics of Incremental Search
|
||
****** TODO 15.1.2 Repeating Incremental Search
|
||
****** TODO 15.1.3 Isearch Yanking
|
||
****** TODO 15.1.4 Errors in Incremental Search
|
||
****** TODO 15.1.5 Special Input for Incremental Search
|
||
****** TODO 15.1.6 Not Exiting Incremental Search
|
||
****** TODO 15.1.7 Searching the Minibuffer
|
||
***** TODO 15.2 Nonincremental Search
|
||
***** TODO 15.3 Word Search
|
||
***** TODO 15.4 Symbol Search
|
||
***** TODO 15.5 Regular Expression Search
|
||
***** TODO 15.6 Syntax of Regular Expressions
|
||
***** TODO 15.7 Backslash in Regular Expressions
|
||
***** TODO 15.8 Regular Expression Example
|
||
***** TODO 15.9 Lax Matching During Searching
|
||
***** TODO [0/4] 15.10 Replacement Commands
|
||
****** TODO 15.10.1 Unconditional Replacement
|
||
****** TODO 15.10.2 Regexp Replacement
|
||
****** TODO 15.10.3 Replace Commands and Lax Matches
|
||
****** TODO 15.10.4 Query Replace
|
||
***** TODO 15.11 Other Search-and-Loop Commands
|
||
***** TODO 15.12 Tailoring Search to Your Needs
|
||
**** TODO [0/4] 16 Commands for Fixing Typos
|
||
***** TODO 16.1 Undo
|
||
***** TODO 16.2 Transposing Text
|
||
***** TODO 16.3 Case Conversion
|
||
***** TODO 16.4 Checking and Correcting Spelling
|
||
**** TODO [0/7] 17 Keyboard Macros
|
||
***** TODO 17.1 Basic Use
|
||
***** TODO 17.2 The Keyboard Macro Ring
|
||
***** TODO 17.3 The Keyboard Macro Counter
|
||
***** TODO 17.4 Executing Macros with Variations
|
||
***** TODO 17.5 Naming and Saving Keyboard Macros
|
||
***** TODO 17.6 Editing a Keyboard Macro
|
||
****** TODO 17.7 Stepwise Editing a Keyboard Macro
|
||
**** TODO [7/29] 18 File Handling
|
||
***** TODO 18.1 File Names
|
||
***** TODO 18.2 Visiting Files
|
||
***** TODO [0/6] 18.3 Saving Files
|
||
****** TODO 18.3.1 Commands for Saving Files
|
||
****** TODO [0/3] 18.3.2 Backup Files
|
||
******* TODO 18.3.2.1 Single or Numbered Backups
|
||
******* TODO 18.3.2.2 Automatic Deletion of Backups
|
||
******* TODO 18.3.2.3 Copying vs. Renaming
|
||
****** TODO 18.3.3 Customizing Saving of Files
|
||
****** TODO 18.3.4 Protection against Simultaneous Editing
|
||
****** TODO 18.3.5 Shadowing Files
|
||
****** TODO 18.3.6 Updating Time Stamps Automatically
|
||
***** TODO 18.4 Reverting a Buffer
|
||
***** TODO [0/1] 18.5 Auto Revert: Keeping buffers automatically up-to-date
|
||
****** TODO [0/2] 18.5.1 Auto Reverting Non-File Buffers
|
||
******* TODO 18.5.1.1 Auto Reverting the Buffer Menu
|
||
******* TODO 18.5.1.2 Auto Reverting Dired buffers
|
||
***** TODO [0/3] 18.6 Auto-Saving: Protection Against Disasters
|
||
****** TODO 18.6.1 Auto-Save Files
|
||
****** TODO 18.6.2 Controlling Auto-Saving
|
||
****** TODO 18.6.3 Recovering Data from Auto-Saves
|
||
***** TODO 18.7 File Name Aliases
|
||
***** TODO 18.8 File Directories
|
||
***** TODO 18.9 Comparing Files
|
||
***** TODO 18.10 Diff Mode
|
||
***** TODO 18.11 Copying, Naming and Renaming Files
|
||
***** TODO 18.12 Miscellaneous File Operations
|
||
***** TODO 18.13 Accessing Compressed Files
|
||
***** TODO 18.14 File Archives
|
||
***** TODO 18.15 Remote Files
|
||
***** TODO 18.16 Quoted File Names
|
||
***** TODO 18.17 File Name Cache
|
||
***** TODO 18.18 Convenience Features for Finding Files
|
||
***** TODO 18.19 Viewing Image Files
|
||
***** TODO 18.20 Filesets
|
||
***** DONE Recent files
|
||
|
||
#+begin_src elisp
|
||
;; Recentf mode changes
|
||
(defvar recentf-max-saved-items 1000)
|
||
(defvar recentf-exclude '("/tmp/" "/ssh:"))
|
||
(recentf-mode)
|
||
#+end_src
|
||
|
||
***** DONE Backup
|
||
|
||
Keep folders clean (create new directory when not yet existing)
|
||
|
||
#+begin_src elisp
|
||
(make-directory (expand-file-name "backups/" org-directory) t)
|
||
(setq backup-directory-alist `(("." . ,(expand-file-name "backups/" org-directory))))
|
||
#+end_src
|
||
|
||
***** DONE Save versions
|
||
:LOGBOOK:
|
||
- State "DONE" from "TODO" [2023-07-05 Wed 14:10]
|
||
:END:
|
||
I am not sure if I will end up using this or git, but here we are for now
|
||
|
||
#+begin_src elisp
|
||
(setq delete-old-versions -1)
|
||
(setq version-control t)
|
||
(setq vc-make-backup-files t)
|
||
(setq auto-save-file-name-transforms '((".*" "~/.emacs.d/auto-save-list/" t)))
|
||
#+end_src
|
||
|
||
***** DONE Auto saving
|
||
|
||
Away from my file tree
|
||
|
||
#+begin_src elisp
|
||
(setq auto-save-file-name-transforms `((".*" ,temporary-file-directory t))
|
||
create-lockfiles nil)
|
||
#+end_src
|
||
|
||
***** DONE Large file warning
|
||
:LOGBOOK:
|
||
- State "DONE" from "TODO" [2024-07-19 Fri 15:11]
|
||
:END:
|
||
|
||
#+begin_src elisp
|
||
(setq large-file-warning-threshold (* 15 1024 1024))
|
||
#+end_src
|
||
|
||
***** DONE Move deleted files to trash
|
||
:LOGBOOK:
|
||
- State "DONE" from "TODO" [2024-07-19 Fri 15:15]
|
||
:END:
|
||
|
||
#+begin_src elisp
|
||
(setq delete-by-moving-to-trash t)
|
||
#+end_src
|
||
|
||
***** DONE [[https://github.com/magit/magit][Magit]]
|
||
:PROPERTIES:
|
||
:CREATED: [2023-01-29 Sun 10:12]
|
||
:CLOSED: [2023-02-01 Wed 21:58]
|
||
:END:
|
||
:LOGBOOK:
|
||
- State "DONE" from "TODO" [2024-07-19 Fri 15:15]
|
||
:END:
|
||
|
||
#+begin_src elisp
|
||
(use-package magit)
|
||
#+end_src
|
||
|
||
***** TODO [[https://github.com/DerBeutlin/filetags.el][Filetags: manage filetags in the filename]]
|
||
:PROPERTIES:
|
||
:TITLE: Filetags: Emacs package to manage filetags in the filename
|
||
:URI: https://github.com/DerBeutlin/filetags.el
|
||
:CREATED: [2023-01-28 Sat 08:58]
|
||
:END:
|
||
:LOGBOOK:
|
||
- State "DONE" from "TODO" [2023-07-12 Wed 12:43]
|
||
:END:
|
||
|
||
#+begin_src elisp :tangle no
|
||
(use-package filetags
|
||
:config
|
||
(setq filetags-enforce-controlled-vocabulary nil)
|
||
(setq filetags-controlled-vocabulary '(("winter" "summer") ("emacs")))
|
||
(setq filetags-load-controlled-vocabulary-from-file nil)
|
||
)
|
||
#+end_src
|
||
|
||
***** TODO [[https://github.com/joostkremers/pandoc-mode][pandoc-mode]]
|
||
:PROPERTIES:
|
||
:TITLE: GitHub - joostkremers/pandoc-mode: An Emacs minor mode for interacting with Pandoc.
|
||
:URI: https://github.com/joostkremers/pandoc-mode
|
||
:CREATED: [2023-01-29 Sun 10:20]
|
||
:END:
|
||
:LOGBOOK:
|
||
- State "DONE" from "TODO" [2023-08-18 Fri 13:04]
|
||
- State "DONE" from "WAIT" [2023-07-07 Fri 15:00]
|
||
- State "DONE" from "TODO" [2023-07-07 Fri 14:53]
|
||
:END:
|
||
|
||
#+begin_src elisp :tangle no
|
||
(use-package pandoc-mode
|
||
:after hydra
|
||
:config
|
||
(add-hook 'markdown-mode-hook 'pandoc-mode) ;; Pandoc minor mode in markdown
|
||
(add-hook 'pandoc-mode-hook 'pandoc-load-default-settings) ;; if a settings file for this format exists
|
||
)
|
||
#+end_src
|
||
|
||
****** DONE Install [[https://pandoc.org/index.html][Pandoc - index]]
|
||
CLOSED: [2023-01-31 Tue 05:11]
|
||
:PROPERTIES:
|
||
:CREATED: [2023-01-29 Sun 10:15]
|
||
:CLOSED: [2023-01-31 Tue 05:11]
|
||
:END:
|
||
|
||
**** TODO [0/7] 19 Using Multiple Buffers
|
||
***** TODO 19.1 Creating and Selecting Buffers
|
||
***** TODO 19.2 Listing Existing Buffers
|
||
***** TODO 19.3 Miscellaneous Buffer Operations
|
||
***** TODO 19.4 Killing Buffers
|
||
***** TODO 19.5 Operating on Several Buffers
|
||
***** TODO 19.6 Indirect Buffers
|
||
***** TODO [0/3] 19.7 Convenience Features and Customization of Buffer Handling
|
||
****** TODO 19.7.1 Making Buffer Names Unique
|
||
****** TODO 19.7.2 Fast minibuffer selection
|
||
****** TODO 19.7.3 Customizing Buffer Menus
|
||
**** TODO [3/9] Buffers
|
||
***** TODO [1/2] Icons
|
||
:LOGBOOK:
|
||
- State "DONE" from "TODO" [2024-07-09 Tue 17:08]
|
||
:END:
|
||
|
||
****** DONE [[https://github.com/domtronn/all-the-icons.el][all-the-icons.el]]
|
||
:LOGBOOK:
|
||
- State "DONE" from "TODO" [2024-07-19 Fri 14:01]
|
||
- State "DONE" from "TODO" [2024-06-27 Thu 11:02]
|
||
- State "DONE" from "TODO" [2023-08-28 Mon 18:55]
|
||
- State "DONE" from "DONE" [2023-08-18 Fri 12:31]
|
||
:END:
|
||
|
||
#+begin_src elisp
|
||
(use-package all-the-icons
|
||
:if (display-graphic-p)
|
||
)
|
||
#+end_src
|
||
|
||
****** TODO [0/4] all-the-icons Mode Line
|
||
:LOGBOOK:
|
||
- State "DONE" from "TODO" [2024-07-09 Tue 17:07]
|
||
- State "DONE" from "TODO" [2024-07-09 Tue 15:57]
|
||
- State "DONE" from "TODO" [2023-08-28 Mon 18:54]
|
||
:END:
|
||
|
||
#+begin_src elisp :tangle no
|
||
(setq mode-line-format '("%e"
|
||
(:eval
|
||
(concat
|
||
(custom-modeline-modified)
|
||
(custom-modeline-region-info)
|
||
(custom-modeline-flycheck-status)
|
||
(custom-modeline-icon-vc)
|
||
)
|
||
)
|
||
)
|
||
)
|
||
#+end_src
|
||
|
||
******* TODO Modified or read only
|
||
:LOGBOOK:
|
||
- State "DONE" from "TODO" [2024-06-27 Thu 11:15]
|
||
:END:
|
||
#+begin_src elisp :tangle no
|
||
(defun custom-modeline-modified ()
|
||
(let* ((config-alist
|
||
'(
|
||
("*" all-the-icons-faicon-family all-the-icons-faicon "chain-broken" :height 1.2 :v-adjust -0.0)
|
||
("-" all-the-icons-faicon-family all-the-icons-faicon "link" :height 1.2 :v-adjust -0.0)
|
||
("%" all-the-icons-octicon-family all-the-icons-octicon "lock" :height 1.2 :v-adjust 0.1)
|
||
)
|
||
)
|
||
(result (cdr (assoc (format-mode-line "%*") config-alist)))
|
||
)
|
||
(propertize (apply (cadr result) (cddr result))
|
||
'face `(:family ,(funcall (car result)))
|
||
)
|
||
)
|
||
)
|
||
#+end_src
|
||
|
||
******* TODO Region marking
|
||
:LOGBOOK:
|
||
- State "DONE" from "TODO" [2024-06-27 Thu 11:15]
|
||
- State "DONE" from "TODO" [2023-08-18 Fri 12:16]
|
||
:END:
|
||
|
||
#+begin_src elisp :tangle no
|
||
(defun custom-modeline-region-info ()
|
||
(when mark-active
|
||
(let ((words (count-lines (region-beginning) (region-end)))
|
||
(chars (count-words (region-end) (region-beginning))))
|
||
(concat
|
||
(propertize (format " %s" (all-the-icons-octicon "pencil") words chars)
|
||
'face `(:family ,(all-the-icons-octicon-family))
|
||
'display '(raise -0.0))
|
||
(propertize (format " (%s, %s)" words chars)
|
||
'face `(:height 0.9))))))
|
||
#+end_src
|
||
|
||
******* TODO Version control icon
|
||
:LOGBOOK:
|
||
- State "DONE" from "TODO" [2024-06-27 Thu 11:15]
|
||
- State "DONE" from "TODO" [2023-08-18 Fri 12:16]
|
||
- State "DONE" from "TODO" [2023-07-07 Fri 12:17]
|
||
:END:
|
||
#+begin_src elisp :tangle no
|
||
(defun -custom-modeline-github-vc ()
|
||
(let ((branch (mapconcat 'concat (cdr (split-string vc-mode "[:-]")) "-")))
|
||
(concat
|
||
(propertize (format " %s" (all-the-icons-alltheicon "git")) 'face `(:height 1.2) 'display '(raise -0.1))
|
||
" · "
|
||
(propertize (format "%s" (all-the-icons-octicon "git-branch"))
|
||
'face `(:height 1.3 :family ,(all-the-icons-octicon-family))
|
||
'display '(raise -0.1))
|
||
(propertize (format " %s" branch) 'face `(:height 0.9)))))
|
||
|
||
(defun -custom-modeline-svn-vc ()
|
||
(let ((revision (cadr (split-string vc-mode "-"))))
|
||
(concat
|
||
(propertize (format " %s" (all-the-icons-faicon "cloud")) 'face `(:height 1.2) 'display '(raise -0.1))
|
||
(propertize (format " · %s" revision) 'face `(:height 0.9)))))
|
||
|
||
(defun custom-modeline-icon-vc ()
|
||
(when vc-mode
|
||
(cond
|
||
((string-match "Git[:-]" vc-mode) (-custom-modeline-github-vc))
|
||
((string-match "SVN-" vc-mode) (-custom-modeline-svn-vc))
|
||
(t (format "%s" vc-mode)))))
|
||
#+end_src
|
||
|
||
******* TODO Flycheck checker information
|
||
:LOGBOOK:
|
||
- State "DONE" from "TODO" [2024-06-27 Thu 11:16]
|
||
- State "DONE" from "TODO" [2023-08-18 Fri 11:49]
|
||
:END:
|
||
|
||
#+begin_src elisp :tangle no
|
||
(defun custom-modeline-flycheck-status ()
|
||
(let* ((text (pcase flycheck-last-status-change
|
||
(`finished (if flycheck-current-errors
|
||
(let ((count (let-alist (flycheck-count-errors flycheck-current-errors)
|
||
(+ (or .warning 0) (or .error 0)))))
|
||
(format "✖ %s Issue%s" count (unless (eq 1 count) "s")))
|
||
"✔ No Issues"))
|
||
(`running "⟲ Running")
|
||
(`no-checker "⚠ No Checker")
|
||
(`not-checked "✖ Disabled")
|
||
(`errored "⚠ Error")
|
||
(`interrupted "⛔ Interrupted")
|
||
(`suspicious ""))))
|
||
(propertize text
|
||
'help-echo "Show Flycheck Errors"
|
||
'mouse-face '(:box 1)
|
||
'local-map (make-mode-line-mouse-map
|
||
'mouse-1 (lambda () (interactive) (flycheck-list-errors))))))
|
||
#+end_src
|
||
|
||
***** TODO Scroll to the first and last line of the buffer
|
||
|
||
#+begin_src elisp :tangle no
|
||
(setq scroll-error-top-bottom t)
|
||
#+end_src
|
||
|
||
***** DONE Narrow to region
|
||
|
||
#+begin_src elisp
|
||
(put 'narrow-to-region 'disabled nil)
|
||
#+end_src
|
||
|
||
***** DONE Paragraph text wrapping
|
||
|
||
#+begin_src elisp
|
||
(setq global-visual-line-mode t)
|
||
#+end_src
|
||
|
||
***** TODO Increase line spacing
|
||
|
||
#+begin_src elisp :tangle no
|
||
(setq line-spacing 6)
|
||
#+end_src
|
||
|
||
***** TODO RTL Support
|
||
:LOGBOOK:
|
||
- State "DONE" from "TODO" [2023-07-05 Wed 12:19]
|
||
:END:
|
||
|
||
For a correct RTL display you can add the following snippet to your init file:
|
||
|
||
#+begin_src elisp :tangle no
|
||
(defun set-bidi-env ()
|
||
(interactive)
|
||
(setq bidi-paragraph-direction 'nil)
|
||
)
|
||
|
||
(add-hook 'org-mode-hook 'set-bidi-env)
|
||
#+end_src
|
||
|
||
***** TODO File encoding system
|
||
|
||
#+begin_src elisp :tangle no
|
||
(prefer-coding-system 'utf-8)
|
||
(setq buffer-file-coding-system 'utf-8-auto-unix)
|
||
#+end_src
|
||
|
||
***** DONE Overwrite selected text
|
||
|
||
#+begin_src elisp
|
||
(delete-selection-mode t)
|
||
#+end_src
|
||
|
||
***** TODO Expand region
|
||
:LOGBOOK:
|
||
- State "DONE" from "NEXT" [2023-08-03 Thu 13:11]
|
||
:END:
|
||
|
||
#+begin_src elisp :tangle no
|
||
(use-package expand-region
|
||
:bind ("C-=" . er/expand-region)
|
||
)
|
||
#+end_src
|
||
|
||
**** TODO [0/8] 20 Multiple Windows
|
||
***** TODO 20.1 Concepts of Emacs Windows
|
||
***** TODO 20.2 Splitting Windows
|
||
***** TODO 20.3 Using Other Windows
|
||
***** TODO 20.4 Displaying in Another Window
|
||
***** TODO 20.5 Deleting and Resizing Windows
|
||
***** TODO [0/2] 20.6 Displaying a Buffer in a Window
|
||
****** TODO 20.6.1 How display-buffer works
|
||
****** TODO 20.6.2 Displaying non-editable buffers.
|
||
***** TODO 20.7 Convenience Features for Window Handling
|
||
***** TODO 20.8 Window Tab Line
|
||
**** TODO [3/22] 21 Frames and Graphical Displays
|
||
***** TODO 21.1 Mouse Commands for Editing
|
||
***** TODO 21.2 Mouse Commands for Words and Lines
|
||
***** TODO 21.3 Following References with the Mouse
|
||
***** TODO 21.4 Mouse Clicks for Menus
|
||
***** TODO 21.5 Mode Line Mouse Commands
|
||
***** TODO 21.6 Creating Frames
|
||
***** TODO 21.7 Frame Commands
|
||
***** TODO 21.8 Fonts
|
||
***** TODO 21.9 Speedbar Frames
|
||
***** TODO 21.10 Multiple Displays
|
||
***** TODO 21.11 Frame Parameters
|
||
***** DONE 21.12 Scroll Bars
|
||
:LOGBOOK:
|
||
- State "DONE" from "TODO" [2024-07-29 Mon 16:50]
|
||
:END:
|
||
#+begin_src elisp
|
||
(when window-system
|
||
(scroll-bar-mode 0)
|
||
)
|
||
#+end_src
|
||
***** TODO 21.13 Window Dividers
|
||
***** TODO 21.14 Drag and Drop
|
||
***** DONE 21.15 Menu Bars
|
||
:LOGBOOK:
|
||
- State "DONE" from "TODO" [2024-07-29 Mon 16:49]
|
||
:END:
|
||
#+begin_src elisp
|
||
(when window-system
|
||
(menu-bar-mode 0)
|
||
)
|
||
#+end_src
|
||
***** DONE 21.16 Tool Bars
|
||
:LOGBOOK:
|
||
- State "DONE" from "TODO" [2024-07-29 Mon 16:49]
|
||
:END:
|
||
#+begin_src elisp
|
||
(when window-system
|
||
(tool-bar-mode 0)
|
||
)
|
||
#+end_src
|
||
***** TODO 21.17 Tab Bars
|
||
***** TODO 21.18 Using Dialog Boxes
|
||
***** TODO 21.19 Tooltips
|
||
***** TODO 21.20 Mouse Avoidance
|
||
***** TODO 21.21 Non-Window Terminals
|
||
***** TODO 21.22 Using a Mouse in Text Terminals
|
||
**** DONE [7/7] Frames
|
||
:LOGBOOK:
|
||
|
||
- State "DONE" from "TODO" [2024-07-20 Sat 11:07]
|
||
:END:
|
||
***** DONE Set the initial frame size and position
|
||
:LOGBOOK:
|
||
- State "DONE" from "TODO" [2024-07-20 Sat 11:03]
|
||
- State "DONE" from "TODO" [2024-07-08 Mon 22:11]
|
||
:END:
|
||
|
||
#+begin_src elisp
|
||
;; initial frame
|
||
(setq initial-frame-alist
|
||
'((width . 192) ; characters in a line
|
||
(height . 37) ; number of lines
|
||
(top . 1) ; top position
|
||
(left . 1) ; left position
|
||
)
|
||
)
|
||
|
||
;; sebsequent frame
|
||
(setq default-frame-alist
|
||
'((width . 192) ; characters in a line
|
||
(height . 37) ; number of lines
|
||
)
|
||
)
|
||
#+end_src
|
||
|
||
***** DONE Set frame margins to zero, window margins to zero
|
||
|
||
#+begin_src elisp
|
||
(modify-all-frames-parameters '((internal-border-width . 0)))
|
||
#+end_src
|
||
|
||
***** DONE Initial screen
|
||
:LOGBOOK:
|
||
- State "DONE" from "TODO" [2024-07-19 Fri 13:59]
|
||
:END:
|
||
|
||
#+begin_src elisp
|
||
(setq inhibit-splash-screen t)
|
||
(setq inhibit-startup-message t)
|
||
(setq initial-scratch-message "")
|
||
(setq initial-major-mode 'org-mode)
|
||
#+end_src
|
||
|
||
***** DONE Startup echo message
|
||
|
||
#+begin_src elisp
|
||
(defun display-startup-echo-area-message ()
|
||
"Display a welcome message."
|
||
(message "Ladies and gentlemen, we are floating in space!")
|
||
)
|
||
#+end_src
|
||
|
||
***** DONE [[https://protesilaos.com/emacs/ef-themes][Theme]]
|
||
:LOGBOOK:
|
||
- State "DONE" from "TODO" [2024-07-16 Tue 19:50]
|
||
- State "DONE" from "TODO" [2024-07-10 Wed 17:06]
|
||
:END:
|
||
|
||
#+begin_src elisp
|
||
;; Make customisations that affect Emacs faces BEFORE loading a theme
|
||
;; (any change needs a theme re-load to take effect).
|
||
|
||
;; (require 'ef-themes)
|
||
(use-package ef-themes
|
||
:config
|
||
;; If you like two specific themes and want to switch between them, you
|
||
;; can specify them in `ef-themes-to-toggle' and then invoke the command
|
||
;; `ef-themes-toggle'. All the themes are included in the variable
|
||
;; `ef-themes-collection'.
|
||
(defvar ef-themes-to-toggle '(ef-summer ef-winter))
|
||
|
||
(defvar ef-themes-headings ; read the manual's entry or the doc string
|
||
'((0 variable-pitch light 1.9)
|
||
(1 variable-pitch light 1.8)
|
||
(2 variable-pitch regular 1.7)
|
||
(3 variable-pitch regular 1.6)
|
||
(4 variable-pitch regular 1.5)
|
||
(5 variable-pitch 1.4) ; absence of weight means `bold'
|
||
(6 variable-pitch 1.3)
|
||
(7 variable-pitch 1.2)
|
||
(t variable-pitch 1.1)))
|
||
|
||
;; They are nil by default...
|
||
(defvar ef-themes-mixed-fonts t)
|
||
(defvar ef-themes-variable-pitch-ui t)
|
||
|
||
;; Disable all other themes to avoid awkward blending:
|
||
(mapc #'disable-theme custom-enabled-themes)
|
||
|
||
;; Load the theme of choice:
|
||
(load-theme 'ef-winter :no-confirm)
|
||
|
||
;; OR use this to load the theme which also calls `ef-themes-post-load-hook':
|
||
(ef-themes-select 'ef-winter)
|
||
|
||
;; The themes we provide are recorded in the `ef-themes-dark-themes',
|
||
;; `ef-themes-light-themes'.
|
||
|
||
;; We also provide these commands, but do not assign them to any key:
|
||
;;
|
||
;; - `ef-themes-toggle'
|
||
;; - `ef-themes-select'
|
||
;; - `ef-themes-select-dark'
|
||
;; - `ef-themes-select-light'
|
||
;; - `ef-themes-load-random'
|
||
;; - `ef-themes-preview-colors'
|
||
;; - `ef-themes-preview-colors-current'
|
||
)
|
||
#+end_src
|
||
|
||
***** DONE Set the cursor shape and blinking
|
||
:LOGBOOK:
|
||
- State "DONE" from "TODO" [2024-07-20 Sat 11:05]
|
||
:END:
|
||
|
||
#+begin_src elisp
|
||
(setq-default cursor-type '(box . 1)) ; Bar cursor
|
||
(blink-cursor-mode -1) ; Don't blink the cursor
|
||
#+end_src
|
||
|
||
**** TODO [9/10] Windows
|
||
:LOGBOOK:
|
||
- State "DONE" from "DONE" [2024-07-16 Tue 20:04]
|
||
:END:
|
||
|
||
***** DONE Save windows arrangement
|
||
#+begin_src elisp
|
||
(when (fboundp 'winner-mode)
|
||
(winner-mode t)
|
||
)
|
||
#+end_src
|
||
|
||
***** DONE Switch to other-window
|
||
:LOGBOOK:
|
||
- State "DONE" from "TODO" [2024-07-16 Tue 20:04]
|
||
:END:
|
||
|
||
#+begin_src elisp
|
||
(use-package ace-window
|
||
:config
|
||
(defvar aw-dispatch-always nil) ; works for less than three buffers
|
||
:bind
|
||
("M-o" . ace-window)
|
||
)
|
||
#+end_src
|
||
|
||
***** DONE Neotree
|
||
:LOGBOOK:
|
||
- State "DONE" from "TODO" [2024-07-19 Fri 15:22]
|
||
- State "DONE" from "TODO" [2023-07-05 Wed 16:48]
|
||
:END:
|
||
|
||
#+begin_src elisp
|
||
(use-package neotree
|
||
:init (defvar neo-smart-open t)
|
||
:config (defvar neo-theme (if (display-graphic-p) 'icons 'arrow))
|
||
)
|
||
#+end_src
|
||
|
||
***** DONE Tab Line
|
||
:LOGBOOK:
|
||
- State "DONE" from "TODO" [2024-07-16 Tue 19:51]
|
||
:END:
|
||
|
||
#+begin_src elisp
|
||
(global-tab-line-mode)
|
||
#+end_src
|
||
|
||
***** DONE [3/3] Mode Line
|
||
:LOGBOOK:
|
||
- State "DONE" from "TODO" [2024-07-20 Sat 11:10]
|
||
- State "DONE" from "DONE" [2024-07-09 Tue 17:08]
|
||
:END:
|
||
|
||
****** DONE Basic settings
|
||
|
||
#+begin_src elisp
|
||
(use-package mood-line
|
||
;; Enable mood-line
|
||
:config
|
||
(mood-line-mode)
|
||
|
||
;; Use pretty Fira Code-compatible glyphs
|
||
(defvar mood-line-glyph-alist mood-line-glyphs-fira-code)
|
||
)
|
||
#+end_src
|
||
|
||
****** DONE [3/3] Format
|
||
:LOGBOOK:
|
||
- State "DONE" from "TODO" [2024-07-19 Fri 15:26]
|
||
:END:
|
||
|
||
******** DONE Default format
|
||
|
||
#+begin_src elisp
|
||
;; Default format:
|
||
;; * init.el 4:32 Top ELisp ! Issues: 2
|
||
(defvar mood-line-format mood-line-format-default)
|
||
#+end_src
|
||
|
||
******** CNCL Extended format
|
||
|
||
#+begin_src elisp :tangle no
|
||
;; Extended format:
|
||
;; * init.el 4:32:52 Top SPCx2 LF UTF-8 ELisp ! Issues: 2
|
||
(defvar mood-line-format mood-line-format-default-extended)
|
||
#+end_src
|
||
|
||
******** CNCL Custom format
|
||
|
||
#+begin_src elisp :tangle no
|
||
;; Custom format:
|
||
;; * init.el : ELisp Top 4:32 | ! Issues: 2
|
||
(setq mood-line-format
|
||
(mood-line-defformat
|
||
:left
|
||
(((mood-line-segment-buffer-status) . " ")
|
||
((mood-line-segment-buffer-name) . " : ")
|
||
(mood-line-segment-major-mode))
|
||
:right
|
||
(((mood-line-segment-scroll) . " ")
|
||
((mood-line-segment-cursor-position) . " ")
|
||
((when (mood-line-segment-checker) "|") . " ")
|
||
((mood-line-segment-checker) . " "))))
|
||
#+end_src
|
||
|
||
****** DONE [3/3] Glyphs
|
||
******** CNCL Default glyphs
|
||
|
||
#+begin_src elisp :tangle no
|
||
;; The default set of glyphs:
|
||
;; * myModifiedFile.js Replace*3 + main JavaScript ! Issues: 2
|
||
(defvar mood-line-glyph-alist mood-line-glyphs-ascii)
|
||
#+end_src
|
||
|
||
******** CNCL Fira Code-compatible Unicode glyphs
|
||
|
||
#+begin_src elisp :tangle no
|
||
;; A set of Fira Code-compatible Unicode glyphs:
|
||
;; ● myModifiedFile.js Replace×3 + main JavaScript → Issues: 2
|
||
(setq mood-line-glyph-alist mood-line-glyphs-fira-code)
|
||
#+end_src
|
||
|
||
******** DONE Unicode glyphs
|
||
|
||
#+begin_src elisp
|
||
;; A set of Unicode glyphs:
|
||
;; ● myModifiedFile.js Replace✕3 🞤 main JavaScript ⚑ Issues: 2
|
||
(defvar mood-line-glyph-alist mood-line-glyphs-unicode)
|
||
#+end_src
|
||
|
||
***** CNCL Add clock
|
||
:LOGBOOK:
|
||
- State "DONE" from "TODO" [2023-07-05 Wed 16:48]
|
||
:END:
|
||
Modify this later to show clock only in full-screen mode
|
||
|
||
#+begin_src elisp :tangle no
|
||
(display-time-mode nil)
|
||
#+end_src
|
||
|
||
***** DONE [[https://github.com/emacsmirror/diminish][Diminish]] minor modes from the mode line
|
||
:LOGBOOK:
|
||
- State "DONE" from "NEXT" [2023-08-03 Thu 13:05]
|
||
:END:
|
||
|
||
#+begin_src elisp
|
||
(use-package diminish
|
||
:demand t
|
||
:diminish (visual-line-mode . "ω")
|
||
:diminish abbrev-mode
|
||
:diminish auto-fill-function
|
||
)
|
||
#+end_src
|
||
|
||
***** DONE [[https://github.com/justbur/emacs-which-key][Which-key]]
|
||
|
||
Figure out the next keystroke. which-key package opens a small buffer at the bottom with suggestions for next keystroke and possible commands that are available
|
||
|
||
#+begin_src elisp
|
||
(use-package which-key
|
||
:config
|
||
(defvar which-key-sort-order 'which-key-key-order-alpha)
|
||
(defvar which-key-idle-delay 0.05)
|
||
(which-key-mode)
|
||
(which-key-setup-minibuffer)
|
||
(which-key-setup-side-window-right)
|
||
)
|
||
#+end_src
|
||
|
||
**** TODO [0/19] 22 International Character Set Support
|
||
***** TODO 22.1 Introduction to International Character Sets
|
||
***** TODO 22.2 Language Environments
|
||
***** TODO 22.3 Input Methods
|
||
***** TODO 22.4 Selecting an Input Method
|
||
***** TODO 22.5 Coding Systems
|
||
***** TODO 22.6 Recognizing Coding Systems
|
||
***** TODO 22.7 Specifying a File’s Coding System
|
||
***** TODO 22.8 Choosing Coding Systems for Output
|
||
***** TODO 22.9 Specifying a Coding System for File Text
|
||
***** TODO 22.10 Coding Systems for Interprocess Communication
|
||
***** TODO 22.11 Coding Systems for File Names
|
||
***** TODO 22.12 Coding Systems for Terminal I/O
|
||
***** TODO 22.13 Fontsets
|
||
***** TODO 22.14 Defining Fontsets
|
||
***** TODO 22.15 Modifying Fontsets
|
||
***** TODO 22.16 Undisplayable Characters
|
||
***** TODO 22.17 Unibyte Editing Mode
|
||
***** TODO 22.18 Charsets
|
||
***** TODO 22.19 Bidirectional Editing
|
||
**** TODO [0/2] International
|
||
***** TODO [0/1] Fonts
|
||
:LOGBOOK:
|
||
- State "DONE" from [2023-08-22 Tue 11:10]
|
||
:END:
|
||
|
||
#+begin_src elisp
|
||
(set-face-attribute 'default nil :font "Cantarell") ;; default font
|
||
; (set-fontset-font t nil "sans-serif" nil 'append) ;; fallback font
|
||
(set-face-attribute 'fixed-pitch nil :family "Monospace")
|
||
; (set-fontset-font t 'arabic "Amiri") ;; default Arabic font
|
||
; (set-fontset-font t 'arabic "Simplified Arabic" nil 'append) ;; default Arabic fallback
|
||
; (set-fontset-font t 'arabic (font-spec :script 'arabic) nil 'append) ;; if font not available, don't display boxes
|
||
#+end_src
|
||
|
||
***** TODO [[https://github.com/rolandwalker/unicode-fonts][Unicode Fonts]]
|
||
|
||
[[https://www.emacswiki.org/emacs/UnicodeFonts][EmacsWiki]]: If you are using a language written in Chinese or Arabic script, try customizing ‘unicode-fonts-skip-font-groups’ to control which script you see, and send a friendly bug report.
|
||
|
||
#+begin_src elisp :tangle no
|
||
(use-package unicode-fonts
|
||
:config
|
||
(defvar unicode-fonts-block-font-mapping
|
||
'(("Emoticons" ("Apple Color Emoji" "Symbola" "Quivira"))))
|
||
(defvar unicode-fonts-fontset-names '("fontset-default"))
|
||
(defvar unicode-skip-font-groups '(""))
|
||
(unicode-fonts-setup)
|
||
)
|
||
#+end_src
|
||
|
||
**** TODO [1/4] 23 Major and Minor Modes
|
||
***** TODO 23.1 Major Modes
|
||
***** TODO 23.2 Minor Modes
|
||
***** TODO 23.3 Choosing File Modes
|
||
***** CNCL Discover major mode
|
||
:LOGBOOK:
|
||
- State "CNCL" from "DONE" [2024-07-10 Wed 11:30] \\
|
||
Not needed
|
||
- State "DONE" from "TODO" [2023-07-05 Wed 16:48]
|
||
:END:
|
||
|
||
#+begin_src elisp :tangle no
|
||
(use-package discover-my-major
|
||
:bind (("C-h C-m" . discover-my-major)
|
||
("C-h M-m" . discover-my-mode)
|
||
)
|
||
)
|
||
#+end_src
|
||
|
||
**** TODO [0/4] 24 Indentation
|
||
***** TODO 24.1 Indentation Commands
|
||
***** TODO 24.2 Tab Stops
|
||
***** TODO 24.3 Tabs vs. Spaces
|
||
***** TODO 24.4 Convenience Features for Indentation
|
||
**** TODO [0/16] 25 Commands for Human Languages
|
||
***** TODO 25.1 Words
|
||
***** TODO 25.2 Sentences
|
||
***** TODO 25.3 Paragraphs
|
||
***** TODO 25.4 Pages
|
||
***** TODO 25.5 Quotation Marks
|
||
***** TODO [0/4] 25.6 Filling Text
|
||
****** TODO 25.6.1 Auto Fill Mode
|
||
****** TODO 25.6.2 Explicit Fill Commands
|
||
****** TODO 25.6.3 The Fill Prefix
|
||
****** TODO 25.6.4 Adaptive Filling
|
||
***** TODO 25.7 Case Conversion Commands
|
||
***** TODO 25.8 Text Mode
|
||
***** TODO [0/5] 25.9 Outline Mode
|
||
****** TODO 25.9.1 Format of Outlines
|
||
****** TODO 25.9.2 Outline Motion Commands
|
||
****** TODO 25.9.3 Outline Visibility Commands
|
||
****** TODO 25.9.4 Viewing One Outline in Multiple Views
|
||
****** TODO 25.9.5 Folding Editing
|
||
***** TODO [0/2] 25.10 Org Mode
|
||
****** TODO 25.10.1 Org as an organizer
|
||
****** TODO 25.10.2 Org as an authoring system
|
||
***** TODO [0/4] 25.11 TeX Mode
|
||
****** TODO 25.11.1 TeX Editing Commands
|
||
****** TODO 25.11.2 LaTeX Editing Commands
|
||
****** TODO 25.11.3 TeX Printing Commands
|
||
****** TODO 25.11.4 TeX Mode Miscellany
|
||
***** TODO 25.12 SGML and HTML Modes
|
||
***** TODO 25.13 Nroff Mode
|
||
***** TODO [0/7] 25.14 Enriched Text
|
||
****** TODO 25.14.1 Enriched Mode
|
||
****** TODO 25.14.2 Hard and Soft Newlines
|
||
****** TODO 25.14.3 Editing Format Information
|
||
****** TODO 25.14.4 Faces in Enriched Text
|
||
****** TODO 25.14.5 Indentation in Enriched Text
|
||
****** TODO 25.14.6 Justification in Enriched Text
|
||
****** TODO 25.14.7 Setting Other Text Properties
|
||
***** TODO [0/8] 25.15 Editing Text-based Tables
|
||
****** TODO 25.15.1 What is a Text-based Table?
|
||
****** TODO 25.15.2 Creating a Table
|
||
****** TODO 25.15.3 Table Recognition
|
||
****** TODO 25.15.4 Commands for Table Cells
|
||
****** TODO 25.15.5 Cell Justification
|
||
****** TODO 25.15.6 Table Rows and Columns
|
||
****** TODO 25.15.7 Converting Between Plain Text and Tables
|
||
****** TODO 25.15.8 Table Miscellany
|
||
***** TODO 25.16 Two-Column Editing
|
||
**** TODO [0/14] 26 Editing Programs
|
||
***** TODO 26.1 Major Modes for Programming Languages
|
||
***** TODO [0/4] 26.2 Top-Level Definitions, or Defuns
|
||
****** TODO 26.2.1 Left Margin Convention
|
||
****** TODO 26.2.2 Moving by Defuns
|
||
****** TODO 26.2.3 Imenu
|
||
****** TODO 26.2.4 Which Function Mode
|
||
***** TODO [0/5] 26.3 Indentation for Programs
|
||
****** TODO 26.3.1 Basic Program Indentation Commands
|
||
****** TODO 26.3.2 Indenting Several Lines
|
||
****** TODO 26.3.3 Customizing Lisp Indentation
|
||
****** TODO 26.3.4 Commands for C Indentation
|
||
****** TODO 26.3.5 Customizing C Indentation
|
||
***** TODO [0/3] 26.4 Commands for Editing with Parentheses
|
||
****** TODO 26.4.1 Expressions with Balanced Parentheses
|
||
****** TODO 26.4.2 Moving in the Parenthesis Structure
|
||
****** TODO 26.4.3 Matching Parentheses
|
||
***** TODO [0/3] 26.5 Manipulating Comments
|
||
****** TODO 26.5.1 Comment Commands
|
||
****** TODO 26.5.2 Multiple Lines of Comments
|
||
****** TODO 26.5.3 Options Controlling Comments
|
||
***** TODO [0/3] 26.6 Documentation Lookup
|
||
****** TODO 26.6.1 Info Documentation Lookup
|
||
****** TODO 26.6.2 Man Page Lookup
|
||
****** TODO 26.6.3 Emacs Lisp Documentation Lookup
|
||
***** TODO 26.7 Hideshow minor mode
|
||
***** TODO 26.8 Completion for Symbol Names
|
||
***** TODO 26.9 MixedCase Words
|
||
***** TODO 26.10 Semantic
|
||
***** TODO 26.11 Other Features Useful for Editing Programs
|
||
***** TODO [0/4] 26.12 C and Related Modes
|
||
****** TODO 26.12.1 C Mode Motion Commands
|
||
****** TODO 26.12.2 Electric C Characters
|
||
****** TODO 26.12.3 Hungry Delete Feature in C
|
||
****** TODO 26.12.4 Other Commands for C Mode
|
||
***** TODO 26.13 Asm Mode
|
||
***** TODO [0/6] 26.14 Fortran Mode
|
||
****** TODO 26.14.1 Motion Commands
|
||
****** TODO [0/5] 26.14.2 Fortran Indentation
|
||
******* TODO 26.14.2.1 Fortran Indentation and Filling Commands
|
||
******* TODO 26.14.2.2 Continuation Lines
|
||
******* TODO 26.14.2.3 Line Numbers
|
||
******* TODO 26.14.2.4 Syntactic Conventions
|
||
******* TODO 26.14.2.5 Variables for Fortran Indentation
|
||
****** TODO 26.14.3 Fortran Comments
|
||
****** TODO 26.14.4 Auto Fill in Fortran Mode
|
||
****** TODO 26.14.5 Checking Columns in Fortran
|
||
****** TODO 26.14.6 Fortran Keyword Abbrevs
|
||
**** TODO [0/11] 27 Compiling and Testing Programs
|
||
***** TODO 27.1 Running Compilations under Emacs
|
||
***** TODO 27.2 Compilation Mode
|
||
***** TODO 27.3 Subshells for Compilation
|
||
***** TODO 27.4 Searching with Grep under Emacs
|
||
***** TODO 27.5 Finding Syntax Errors On The Fly
|
||
***** TODO [0/5] 27.6 Running Debuggers Under Emacs
|
||
****** TODO 27.6.1 Starting GUD
|
||
****** TODO 27.6.2 Debugger Operation
|
||
****** TODO 27.6.3 Commands of GUD
|
||
****** TODO 27.6.4 GUD Customization
|
||
****** TODO [0/8] 27.6.5 GDB Graphical Interface
|
||
******* TODO 27.6.5.1 GDB User Interface Layout
|
||
******* TODO 27.6.5.2 Source Buffers
|
||
******* TODO 27.6.5.3 Breakpoints Buffer
|
||
******* TODO 27.6.5.4 Threads Buffer
|
||
******* TODO 27.6.5.5 Stack Buffer
|
||
******* TODO 27.6.5.6 Other GDB Buffers
|
||
******* TODO 27.6.5.7 Watch Expressions
|
||
******* TODO 27.6.5.8 Multithreaded Debugging
|
||
***** TODO 27.7 Executing Lisp Expressions
|
||
***** TODO 27.8 Libraries of Lisp Code for Emacs
|
||
***** TODO 27.9 Evaluating Emacs Lisp Expressions
|
||
***** TODO 27.10 Lisp Interaction Buffers
|
||
***** TODO 27.11 Running an External Lisp
|
||
**** TODO [0/7] 28 Maintaining Large Programs
|
||
***** TODO [0/13] 28.1 Version Control
|
||
****** TODO [0/7] 28.1.1 Introduction to Version Control
|
||
******* TODO 28.1.1.1 Understanding the Problems it Addresses
|
||
******* TODO 28.1.1.2 Supported Version Control Systems
|
||
******* TODO 28.1.1.3 Concepts of Version Control
|
||
******* TODO 28.1.1.4 Merge-based vs Lock-based Version Control
|
||
******* TODO 28.1.1.5 Changeset-based vs File-based Version Control
|
||
******* TODO 28.1.1.6 Decentralized vs Centralized Repositories
|
||
******* TODO 28.1.1.7 Types of Log File
|
||
****** TODO 28.1.2 Version Control and the Mode Line
|
||
****** TODO [0/3] 28.1.3 Basic Editing under Version Control
|
||
******* TODO 28.1.3.1 Basic Version Control with Merging
|
||
******* TODO 28.1.3.2 Basic Version Control with Locking
|
||
******* TODO 28.1.3.3 Advanced Control in C-x v v
|
||
****** TODO 28.1.4 Features of the Log Entry Buffer
|
||
****** TODO 28.1.5 Registering a File for Version Control
|
||
****** TODO 28.1.6 Examining And Comparing Old Revisions
|
||
****** TODO 28.1.7 VC Change Log
|
||
****** TODO 28.1.8 Undoing Version Control Actions
|
||
****** TODO 28.1.9 Ignore Version Control Files
|
||
****** TODO [0/2] 28.1.10 VC Directory Mode
|
||
******* TODO 28.1.10.1 The VC Directory Buffer
|
||
******* TODO 28.1.10.2 VC Directory Commands
|
||
****** TODO [0/4] 28.1.11 Version Control Branches
|
||
******* TODO 28.1.11.1 Switching between Branches
|
||
******* TODO 28.1.11.2 Pulling/Pushing Changes into/from a Branch
|
||
******* TODO 28.1.11.3 Merging Branches
|
||
******* TODO 28.1.11.4 Creating New Branches
|
||
****** TODO [0/4] 28.1.12 Miscellaneous Commands and Features of VC
|
||
******* TODO 28.1.12.1 Change Logs and VC
|
||
******* TODO 28.1.12.2 Deleting and Renaming Version-Controlled Files
|
||
******* TODO 28.1.12.3 Revision Tags
|
||
******* TODO 28.1.12.4 Inserting Version Control Headers
|
||
****** TODO [0/3] 28.1.13 Customizing VC
|
||
******* TODO 28.1.13.1 General Options
|
||
******* TODO 28.1.13.2 Options for RCS and SCCS
|
||
******* TODO 28.1.13.3 Options specific for CVS
|
||
***** TODO [0/4] 28.2 Working with Projects
|
||
****** TODO 28.2.1 Project Commands That Operate on Files
|
||
****** TODO 28.2.2 Project Commands That Operate on Buffers
|
||
****** TODO 28.2.3 Switching Projects
|
||
****** TODO 28.2.4 Managing the Project List File
|
||
***** TODO [0/2] 28.3 Change Logs
|
||
****** TODO 28.3.1 Change Log Commands
|
||
****** TODO 28.3.2 Format of ChangeLog
|
||
***** TODO [0/3] 28.4 Find Identifier References
|
||
****** TODO [0/4] 28.4.1 Find Identifiers
|
||
******* TODO 28.4.1.1 Looking Up Identifiers
|
||
******* TODO 28.4.1.2 Commands Available in the *xref* Buffer
|
||
******* TODO 28.4.1.3 Searching and Replacing with Identifiers
|
||
******* TODO 28.4.1.4 Identifier Inquiries
|
||
****** TODO [0/3] 28.4.2 Tags Tables
|
||
******* TODO 28.4.2.1 Source File Tag Syntax
|
||
******* TODO 28.4.2.2 Creating Tags Tables
|
||
******* TODO 28.4.2.3 Etags Regexps
|
||
****** TODO 28.4.3 Selecting a Tags Table
|
||
***** TODO 28.5 Emacs Development Environment
|
||
***** TODO [0/7] 28.6 Merging Files with Emerge
|
||
****** TODO 28.6.1 Overview of Emerge
|
||
****** TODO 28.6.2 Submodes of Emerge
|
||
****** TODO 28.6.3 State of a Difference
|
||
****** TODO 28.6.4 Merge Commands
|
||
****** TODO 28.6.5 Exiting Emerge
|
||
****** TODO 28.6.6 Combining the Two Versions
|
||
****** TODO 28.6.7 Fine Points of Emerge
|
||
***** TODO 28.7 Bug Reference
|
||
**** TODO [0/8] 29 Abbrevs
|
||
***** TODO 29.1 Abbrev Concepts
|
||
***** TODO 29.2 Defining Abbrevs
|
||
***** TODO 29.3 Controlling Abbrev Expansion
|
||
***** TODO 29.4 Abbrevs Suggestions
|
||
***** TODO 29.5 Examining and Editing Abbrevs
|
||
***** TODO 29.6 Saving Abbrevs
|
||
***** TODO 29.7 Dynamic Abbrev Expansion
|
||
***** TODO 29.8 Customizing Dynamic Abbreviation
|
||
**** TODO [0/22] 30 Dired, the Directory Editor
|
||
***** TODO 30.1 Entering Dired
|
||
***** TODO 30.2 Navigation in the Dired Buffer
|
||
***** TODO 30.3 Deleting Files with Dired
|
||
***** TODO 30.4 Flagging Many Files at Once
|
||
***** TODO 30.5 Visiting Files in Dired
|
||
***** TODO 30.6 Dired Marks vs. Flags
|
||
***** TODO 30.7 Operating on Files
|
||
***** TODO 30.8 Shell Commands in Dired
|
||
***** TODO 30.9 Transforming File Names in Dired
|
||
***** TODO 30.10 File Comparison with Dired
|
||
***** TODO 30.11 Subdirectories in Dired
|
||
***** TODO 30.12 Subdirectory Switches in Dired
|
||
***** TODO 30.13 Moving Over Subdirectories
|
||
***** TODO 30.14 Hiding Subdirectories
|
||
***** TODO 30.15 Updating the Dired Buffer
|
||
***** TODO 30.16 Dired and find
|
||
***** TODO 30.17 Editing the Dired Buffer
|
||
***** TODO 30.18 Viewing Image Thumbnails in Dired
|
||
***** TODO 30.19 Other Dired Features
|
||
***** TODO Basic settings
|
||
|
||
#+begin_src elisp :tangle no
|
||
(use-package dired
|
||
:init
|
||
(setq dired-dwim-target t)
|
||
(setq dired-recursive-copies 'top)
|
||
(setq dired-recursive-deletes 'top)
|
||
(setq dired-listing-switches "-alh")
|
||
(setq dired-listing-switches "-agho --group-directories-first") ; Sort Dired buffers
|
||
(setq dired-dwim-target t) ; Copy and move files netween dired buffers
|
||
:config
|
||
(add-hook 'dired-mode-hook 'dired-hide-details-mode)
|
||
(add-hook 'dired-mode-hook 'all-the-icons-dired-mode)
|
||
:bind (:map dired-mode-map
|
||
("C-c C-e" . wdired-change-to-wdired-mode))
|
||
)
|
||
#+end_src
|
||
|
||
***** TODO Images in dired
|
||
|
||
#+begin_src elisp :tangle no
|
||
;; Image-dired Keyboard shortcuts
|
||
(with-eval-after-load 'dired
|
||
(define-key dired-mode-map (kbd "C-t C-d") 'image-dired)
|
||
(define-key dired-mode-map (kbd "C-<return>") 'image-dired-dired-display-external)
|
||
)
|
||
|
||
(setq image-dired-external-viewer "/usr/bin/gimp") ; Define external image viewer/edito
|
||
(put 'dired-find-alternate-file 'disabled nil) ; Open dired in same buffer
|
||
#+end_src
|
||
|
||
***** TODO Icons in dired
|
||
|
||
#+begin_src elisp :tangle no
|
||
(use-package all-the-icons-dired
|
||
:after dired all-the-icons
|
||
:if (display-graphic-p)
|
||
)
|
||
#+end_src
|
||
|
||
***** TODO [[https://github.com/DerBeutlin/date2name.el][Date2name: add ISO timestamps to files in dired]]
|
||
:PROPERTIES:
|
||
:TITLE: GitHub - DerBeutlin/date2name.el: Emacs package to add ISO timestamps to files in dired
|
||
:URI: https://github.com/DerBeutlin/date2name.el
|
||
:CREATED: [2023-01-28 Sat 06:20]
|
||
:END:
|
||
:LOGBOOK:
|
||
- State "DONE" from "TODO" [2023-07-12 Wed 12:44]
|
||
:END:
|
||
|
||
#+begin_src elisp :tangle no
|
||
(use-package date2name)
|
||
#+end_src
|
||
|
||
**** TODO [0/10] 31 The Calendar and the Diary
|
||
***** TODO [0/3] 31.1 Movement in the Calendar
|
||
****** TODO 31.1.1 Motion by Standard Lengths of Time
|
||
****** TODO 31.1.2 Beginning or End of Week, Month or Year
|
||
****** TODO 31.1.3 Specified Dates
|
||
***** TODO 31.2 Scrolling in the Calendar
|
||
***** TODO 31.3 Counting Days
|
||
***** TODO 31.4 Miscellaneous Calendar Commands
|
||
***** TODO 31.5 Writing Calendar Files
|
||
***** TODO 31.6 Holidays
|
||
***** TODO 31.7 Times of Sunrise and Sunset
|
||
***** TODO 31.8 Phases of the Moon
|
||
***** TODO [0/3] 31.9 Conversion To and From Other Calendars
|
||
****** TODO 31.9.1 Supported Calendar Systems
|
||
****** TODO 31.9.2 Converting To Other Calendars
|
||
****** TODO 31.9.3 Converting From Other Calendars
|
||
***** TODO [0/10] 31.10 The Diary
|
||
****** TODO 31.10.1 The Diary File
|
||
****** TODO 31.10.2 Displaying the Diary
|
||
****** TODO 31.10.3 Date Formats
|
||
****** TODO 31.10.4 Commands to Add to the Diary
|
||
****** TODO 31.10.5 Special Diary Entries
|
||
****** TODO 31.10.6 Appointments
|
||
****** TODO 31.10.7 Importing and Exporting Diary Entries
|
||
****** TODO 31.11 Daylight Saving Time
|
||
****** TODO 31.12 Summing Time Intervals
|
||
****** TODO [0/10] 31.13 More advanced features of the Calendar and Diary
|
||
******* TODO 31.13.1 Customizing the Calendar
|
||
******* TODO 31.13.2 Customizing the Holidays
|
||
******* TODO 31.13.3 Converting from the Mayan Calendar
|
||
******* TODO 31.13.4 Date Display Format
|
||
******* TODO 31.13.5 Time Display Format
|
||
******* TODO 31.13.6 Customizing the Diary
|
||
******* TODO 31.13.7 Diary Entries Using non-Gregorian Calendars
|
||
******* TODO 31.13.8 Diary Display
|
||
******* TODO 31.13.9 Fancy Diary Display
|
||
******* TODO 31.13.10 Sexp Entries and the Fancy Diary Display
|
||
**** TODO [0/7] 32 Sending Mail
|
||
***** TODO 32.1 The Format of the Mail Buffer
|
||
***** TODO 32.2 Mail Header Fields
|
||
***** TODO 32.3 Mail Aliases
|
||
***** TODO [0/4] 32.4 Mail Commands
|
||
****** TODO 32.4.1 Mail Sending
|
||
****** TODO 32.4.2 Mail Header Editing
|
||
****** TODO 32.4.3 Citing Mail
|
||
****** TODO 32.4.4 Mail Miscellany
|
||
***** TODO 32.5 Mail Signature
|
||
***** TODO 32.6 Mail Amusements
|
||
***** TODO 32.7 Mail-Composition Methods
|
||
**** TODO [0/20] 33 Reading Mail with Rmail
|
||
***** TODO 33.1 Basic Concepts of Rmail
|
||
***** TODO 33.2 Scrolling Within a Message
|
||
***** TODO 33.3 Moving Among Messages
|
||
***** TODO 33.4 Deleting Messages
|
||
***** TODO 33.5 Rmail Files and Inboxes
|
||
***** TODO 33.6 Multiple Rmail Files
|
||
***** TODO 33.7 Copying Messages Out to Files
|
||
***** TODO 33.8 Labels
|
||
***** TODO 33.9 Rmail Attributes
|
||
***** TODO 33.10 Sending Replies
|
||
***** TODO [0/2] 33.11 Summaries
|
||
****** TODO 33.11.1 Making Summaries
|
||
****** TODO 33.11.2 Editing in Summaries
|
||
***** TODO 33.12 Sorting the Rmail File
|
||
***** TODO 33.13 Display of Messages
|
||
***** TODO 33.14 Rmail and Coding Systems
|
||
***** TODO 33.15 Editing Within a Message
|
||
***** TODO 33.16 Digest Messages
|
||
***** TODO 33.17 Reading Rot13 Messages
|
||
***** TODO 33.18 movemail program
|
||
***** TODO 33.19 Retrieving Mail from Remote Mailboxes
|
||
***** TODO 33.20 Retrieving Mail from Local Mailboxes in Various Formats
|
||
**** TODO [0/4] 34 Email and Usenet News with Gnus
|
||
***** TODO 34.1 Gnus Buffers
|
||
***** TODO 34.2 When Gnus Starts Up
|
||
***** TODO 34.3 Using the Gnus Group Buffer
|
||
***** TODO 34.4 Using the Gnus Summary Buffer
|
||
**** TODO 35 Host Security
|
||
**** TODO 36 Network Security
|
||
**** TODO [0/4] 37 Document Viewing
|
||
***** TODO 37.1 DocView Navigation
|
||
***** TODO 37.2 DocView Searching
|
||
***** TODO 37.3 DocView Slicing
|
||
#+begin_src elisp
|
||
(setq doc-view-continuous t)
|
||
#+end_src
|
||
***** TODO 37.4 DocView Conversion
|
||
**** TODO [0/11] 38 Running Shell Commands from Emacs
|
||
***** TODO 38.1 Single Shell Commands
|
||
***** TODO 38.2 Interactive Subshell
|
||
***** TODO 38.3 Shell Mode
|
||
***** TODO 38.4 Shell Prompts
|
||
***** TODO [0/3] 38.5 Shell Command History
|
||
****** TODO 38.5.1 Shell History Ring
|
||
****** TODO 38.5.2 Shell History Copying
|
||
****** TODO 38.5.3 Shell History References
|
||
***** TODO 38.6 Directory Tracking
|
||
***** TODO 38.7 Shell Mode Options
|
||
***** TODO 38.8 Emacs Terminal Emulator
|
||
***** TODO 38.9 Term Mode
|
||
***** TODO 38.10 Remote Host Shell
|
||
***** TODO 38.11 Serial Terminal
|
||
**** TODO [0/3] 39 Using Emacs as a Server
|
||
***** TODO 39.1 TCP Emacs server
|
||
***** TODO 39.2 Invoking emacsclient
|
||
***** TODO 39.3 emacsclient Options
|
||
**** TODO [0/4] 40 Printing Hard Copies
|
||
***** TODO 40.1 PostScript Hardcopy
|
||
***** TODO 40.2 Variables for PostScript Hardcopy
|
||
***** TODO 40.3 Printing Package
|
||
**** TODO 41 Sorting Text
|
||
**** TODO [0/4] 42 Editing Pictures
|
||
***** TODO 42.1 Basic Editing in Picture Mode
|
||
***** TODO 42.2 Controlling Motion after Insert
|
||
***** TODO 42.3 Picture Mode Tabs
|
||
***** TODO 42.4 Picture Mode Rectangle Commands
|
||
**** TODO 43 Editing Binary Files
|
||
**** TODO 44 Saving Emacs Sessions
|
||
**** TODO 45 Recursive Editing Levels
|
||
**** TODO [0/5] 46 Hyperlinking and Web Navigation Features
|
||
***** TODO 46.1 Web Browsing with EWW
|
||
***** TODO 46.2 Embedded WebKit Widgets
|
||
***** TODO 46.3 Following URLs
|
||
***** TODO 46.4 Activating URLs
|
||
***** TODO 46.5 Finding Files and URLs at Point
|
||
**** TODO 47 Games and Other Amusements
|
||
**** TODO [0/4] 48 Emacs Lisp Packages
|
||
***** TODO 48.1 The Package Menu Buffer
|
||
***** TODO 48.2 Package Statuses
|
||
***** TODO 48.3 Package Installation
|
||
***** TODO 48.4 Package Files and Directory Layout
|
||
**** TODO [0/5] 49 Customization
|
||
***** TODO [0/8] 49.1 Easy Customization Interface
|
||
****** TODO 49.1.1 Customization Groups
|
||
****** TODO 49.1.2 Browsing and Searching for Settings
|
||
****** TODO 49.1.3 Changing a Variable
|
||
****** TODO 49.1.4 Saving Customizations
|
||
****** TODO 49.1.5 Customizing Faces
|
||
****** TODO 49.1.6 Customizing Specific Items
|
||
****** TODO 49.1.7 Custom Themes
|
||
****** TODO 49.1.8 Creating Custom Themes
|
||
***** TODO [0/8] 49.2 Variables
|
||
****** TODO 49.2.1 Examining and Setting Variables
|
||
****** TODO 49.2.2 Hooks
|
||
****** TODO 49.2.3 Local Variables
|
||
****** TODO 49.2.4 Local Variables in Files
|
||
****** TODO 49.2.4.1 Specifying File Variables
|
||
****** TODO 49.2.4.2 Safety of File Variables
|
||
****** TODO 49.2.5 Per-Directory Local Variables
|
||
****** TODO 49.2.6 Per-Connection Local Variables
|
||
***** TODO [0/11] 49.3 Customizing Key Bindings
|
||
****** TODO 49.3.1 Keymaps
|
||
****** TODO 49.3.2 Prefix Keymaps
|
||
****** TODO 49.3.3 Local Keymaps
|
||
****** TODO 49.3.4 Minibuffer Keymaps
|
||
****** TODO 49.3.5 Changing Key Bindings Interactively
|
||
****** TODO 49.3.6 Rebinding Keys in Your Init File
|
||
****** TODO 49.3.7 Modifier Keys
|
||
****** TODO 49.3.8 Rebinding Function Keys
|
||
****** TODO 49.3.9 Named ASCII Control Characters
|
||
****** TODO 49.3.10 Rebinding Mouse Buttons
|
||
****** TODO 49.3.11 Disabling Commands
|
||
***** TODO [0/6] 49.4 The Emacs Initialization File
|
||
****** TODO 49.4.1 Init File Syntax
|
||
****** TODO 49.4.2 Init File Examples
|
||
****** TODO 49.4.3 Terminal-specific Initialization
|
||
****** TODO 49.4.4 How Emacs Finds Your Init File
|
||
****** TODO 49.4.5 Non-ASCII Characters in Init Files
|
||
****** TODO 49.4.6 The Early Init File
|
||
***** TODO 49.5 Keeping Persistent Authentication Information
|
||
**** TODO 50 Quitting and Aborting
|
||
**** TODO [0/9] 51 Dealing with Emacs Trouble
|
||
***** TODO 51.1 If DEL Fails to Delete
|
||
***** TODO 51.2 Recursive Editing Levels
|
||
***** TODO 51.3 Garbage on the Screen
|
||
***** TODO 51.4 Garbage in the Text
|
||
***** TODO 51.5 Running out of Memory
|
||
***** TODO 51.6 When Emacs Crashes
|
||
***** TODO 51.7 Recovery After a Crash
|
||
***** TODO 51.8 Emergency Escape
|
||
***** TODO 51.9 Long Lines
|
||
**** TODO [0/5] 52 Reporting Bugs
|
||
***** TODO 52.1 Reading Existing Bug Reports and Known Problems
|
||
***** TODO 52.2 When Is There a Bug
|
||
***** TODO 52.3 Understanding Bug Reporting
|
||
***** TODO 52.4 Checklist for Bug Reports
|
||
***** TODO 52.5 Sending Patches for GNU Emacs
|
||
**** TODO [0/2] 53 Contributing to Emacs Development
|
||
***** TODO 53.1 Coding Standards
|
||
***** TODO 53.2 Copyright Assignment
|