Compare commits

..

No commits in common. "539f3bb2bc53d963ab8c825f87bf13488150bbf4" and "fb133ff49fb41dc5f68730f2bac52f201d0e12a0" have entirely different histories.

View File

@ -104,10 +104,10 @@ presentations.
The [[https://github.com/bdarcus/citar][Citar]] extension package provides quick filtering and selecting of The [[https://github.com/bdarcus/citar][Citar]] extension package provides quick filtering and selecting of
bibliographic entries, and the option to run different commands on those bibliographic entries, and the option to run different commands on those
selections. [[https://github.com/bdarcus/citar][Citar]] exploits the extension packages [[https://github.com/minad/vertico][Vertico]] and [[https://github.com/minad/marginalia][Marginalia]]. The selections. [[https://github.com/bdarcus/citar][Citar]] exploits the extension packages [[https://github.com/minad/vertico][Vertico]], [[https://github.com/oantolin/embark][Embark]], [[https://github.com/minad/marginalia][Marginalia]],
[[https://github.com/andras-simonyi/citeproc-el][CiteProc]] extension package provides [[https://citationstyles.org/][CSL: citation style language]] processing and [[https://github.com/minad/consult][Consult]]. The [[https://github.com/andras-simonyi/citeproc-el][CiteProc]] extension package provides [[https://citationstyles.org/][CSL: citation style
capabilities to [[https://github.com/bdarcus/citar][Citar]] and [[https://orgmode.org/][Org Mode]]. A curated repository of CSL styles is the language]] processing capabilities to [[https://github.com/bdarcus/citar][Citar]] and [[https://orgmode.org/][Org Mode]]. A curated repository
[[https://github.com/citation-style-language/styles#readme][citation style language repository]]. of CSL styles is the [[https://github.com/citation-style-language/styles#readme][citation style language repository]].
The [[https://github.com/vedang/pdf-tools][PDF-Tools]] extension package renders [[https://en.wikipedia.org/wiki/PDF][PDF]] file with the possibility to The [[https://github.com/vedang/pdf-tools][PDF-Tools]] extension package renders [[https://en.wikipedia.org/wiki/PDF][PDF]] file with the possibility to
annotate the file or to click on anchors in the [[https://en.wikipedia.org/wiki/PDF][PDF]] file that link back to the annotate the file or to click on anchors in the [[https://en.wikipedia.org/wiki/PDF][PDF]] file that link back to the
@ -1237,60 +1237,6 @@ sub makeglossaries {
(sort (cl-remove-duplicates result)))) (sort (cl-remove-duplicates result))))
#+end_src #+end_src
* [[info:emacs#Saving Emacs Sessions][Saving Emacs sessions (info)]]
:PROPERTIES:
:CUSTOM_ID: sec:desktop
:END:
Listing [[lst:desktop-setup][setup desktop]] makes Emacs save its state between closing its session to
opening the next session. This setup relies on =desktop-save-mode= in case of
overlapping functionality of =desktop-save-mode= and =savehist-mode=. Listing
[[lst:prune-file-name-history]] prunes non-existing files from =file-name-history=,
which is under Emacs control but neither =desktop-save-mode= nor
=savehist-mode=.
NOTE: The src_emacs-lisp{(describe-function 'savehist-mode)} documentation
explains why it is best to turn on =savehist-mode= in =user-init-file=.
BUG: Adding ~kill-ring~ to ~savehist-additional-variables~ does not save
~kill-ring~ from an Emacs session to the next session, contrary to the
src_emacs-lisp{(describe-variable 'savehist-additional-variables)}
documentation.
#+caption[Setup =desktop= to save Emacs sessions]:
#+caption: Setup =desktop= to save Emacs sessions.
#+name: lst:desktop-setup
#+begin_src emacs-lisp -n :results silent
(with-eval-after-load 'emacs
;; GAV: I fail to implement the idea of ChatGPT on how to reload
;; `eww' pages automatically while restoring the desktop (idea is to
;; add save and restore handlers to `desktop-buffer-mode-handlers').
;; GAV: (setopt eww-restore-desktop t) fails and starts hesitantly.
;; GAV: I fail to code a function for setting the
;; `desktop-buffers-not-to-save-function' option.
(setopt desktop-buffers-not-to-save
(rx bos (or "*Apropos" "compilation*"))
desktop-modes-not-to-save
'(emacs-lisp-mode image-mode tags-table-mode))
(desktop-save-mode t))
#+end_src
#+caption[Prune non-existing files from =file-name-history=]:
#+caption: Prune non-existing files from =file-name-history=.
#+name: lst:prune-file-name-history
#+begin_src emacs-lisp -n :results silent
(defun prune-file-name-history ()
"Prune non-existing files from `file-name-history'."
(interactive)
(let ((old (length file-name-history)) ok)
(dolist (name file-name-history)
(when (file-exists-p name)
(push name ok)))
(setq file-name-history (nreverse ok))
(message "Pruned `file-name-history' from `%S' to `%S' files"
old (length file-name-history))))
#+end_src
* Completion * Completion
:PROPERTIES: :PROPERTIES:
@ -1319,6 +1265,14 @@ NOTE: Play with =vertico-buffer-mode=, =vertico-flat-mode=, =vertico-grid-mode=,
=vertico-indexed-mode=, =vertico-mouse-mode= (not easy to use with my trackpad), =vertico-indexed-mode=, =vertico-mouse-mode= (not easy to use with my trackpad),
=vertico-reverse-mode=. =vertico-reverse-mode=.
NOTE: The src_emacs-lisp{(describe-function 'savehist-mode)} documentation
explains why it is best to turn on =savehist-mode= in =user-init-file=.
BUG: Adding ~kill-ring~ to ~savehist-additional-variables~ does not save
~kill-ring~ from an Emacs session to the next session, contrary to the
src_emacs-lisp{(describe-variable 'savehist-additional-variables)}
documentation.
#+caption[Setup =vertico-mode=]: #+caption[Setup =vertico-mode=]:
#+caption: Setup =vertico-mode=. #+caption: Setup =vertico-mode=.
#+name: lst:setup-vertico-mode #+name: lst:setup-vertico-mode
@ -1331,6 +1285,22 @@ NOTE: Play with =vertico-buffer-mode=, =vertico-flat-mode=, =vertico-grid-mode=,
(vertico-mode +1)) (vertico-mode +1))
#+end_src #+end_src
#+caption[Prune non-existing files from =file-name-history=]:
#+caption: Prune non-existing files from =file-name-history=.
#+name: lst:prune-file-name-history
#+begin_src emacs-lisp -n :results silent
(defun prune-file-name-history ()
"Prune non-existing files from `file-name-history'."
(interactive)
(let ((old (length file-name-history)) ok)
(dolist (name file-name-history)
(when (file-exists-p name)
(push name ok)))
(setq file-name-history (nreverse ok))
(message "Pruned `file-name-history' from `%S' to `%S' files"
old (length file-name-history))))
#+end_src
#+attr_latex: :booktabs yes :float table #+attr_latex: :booktabs yes :float table
#+caption[Vertico key map bindings]: #+caption[Vertico key map bindings]:
#+caption: Vertico key map bindings. #+caption: Vertico key map bindings.
@ -1475,6 +1445,9 @@ Consult usage tips are:
| consult-yank-pop | global-map | {{{kbd(M-y)}}} | | consult-yank-pop | global-map | {{{kbd(M-y)}}} |
|-----------------------------+----------------------+--------------------| |-----------------------------+----------------------+--------------------|
| elfeed | global-map | {{{kbd(C-x w)}}} | | elfeed | global-map | {{{kbd(C-x w)}}} |
| embark-act | global-map | {{{kbd(C-\,)}}} |
| embark-bindings | global-map | {{{kbd(C-h B)}}} |
| embark-dwim | global-map | {{{kbd(C-:)}}} |
| iedit-mode | global-map | {{{kbd(C-;)}}} | | iedit-mode | global-map | {{{kbd(C-;)}}} |
| minibuffer-complete-history | minibuffer-local-map | {{{kbd(C-<tab>)}}} | | minibuffer-complete-history | minibuffer-local-map | {{{kbd(C-<tab>)}}} |
| narrow-or-widen-dwim | ctl-x-keymap | {{{kbd(C-x C-n)}}} | | narrow-or-widen-dwim | ctl-x-keymap | {{{kbd(C-x C-n)}}} |
@ -2489,14 +2462,15 @@ def __org_babel_python_format_value(result, result_file, result_params):
[[https://github.com/bdarcus/citar][Citar]] is a completing-read front-end to browse and act on BibTeX, BibLaTeX, as [[https://github.com/bdarcus/citar][Citar]] is a completing-read front-end to browse and act on BibTeX, BibLaTeX, as
well as CSL JSON bibliographic data with LaTeX, markdown, and org-cite editing well as CSL JSON bibliographic data with LaTeX, markdown, and org-cite editing
support. In combination with vertico and marginalia, [[https://github.com/bdarcus/citar][Citar]] provides quick support. In combination with vertico, embark, marginalia, and consult, [[https://github.com/bdarcus/citar][Citar]]
filtering and selecting of bibliographic entries from the minibuffer as well as provides quick filtering and selecting of bibliographic entries from the
the option to run different commands on those selections. The article [[https://kristofferbalintona.me/posts/202206141852/][Citations minibuffer as well as the option to run different commands on those
in org-mode: Org-cite and Citar]] tries to walk you from understanding the general selections. The article [[https://kristofferbalintona.me/posts/202206141852/][Citations in org-mode: Org-cite and Citar]] tries to walk
context (bibliography producer, text processor, text to product converter) to an you from understanding the general context (bibliography producer, text
Emacs setup. Listing [[lst:set-oc+citar-options]] shows the =oc= and =citar= setup processor, text to product converter) to an Emacs setup. Listing
with binding of {{{kbd(C-c b)}}} to src_emacs-lisp{(call-interactively [[lst:set-oc+citar-options]] shows the =oc= and =citar= setup with binding of
'org-cite-insert)} in =org-mode-map=. {{{kbd(C-c b)}}} to src_emacs-lisp{(call-interactively 'org-cite-insert)} in
=org-mode-map=.
#+caption[Set =oc= and =citar= options]: #+caption[Set =oc= and =citar= options]:
#+caption: Set =oc= and =citar= options. #+caption: Set =oc= and =citar= options.
@ -2532,11 +2506,17 @@ valid directories and files. In an [[https://orgmode.org/][Org-mode]] buffer th
1. by navigating to an item and selecting it with {{{kbd(RET)}}} 1. by navigating to an item and selecting it with {{{kbd(RET)}}}
2. by repeatingly navigating to an item and preselecting it with 2. by repeatingly navigating to an item and preselecting it with
{{{kbd(TAB)}}}. Select all preselected items with {{{kbd(RET)}}}. {{{kbd(TAB)}}}. Select all preselected items with {{{kbd(RET)}}}.
2. View an electronic copy or the DOI of an [[https://orgmode.org/][Org-mode]] cite link: 2. View an electronic copy of an [[https://orgmode.org/][Org-mode]] cite link:
1. Click on the [[https://orgmode.org/][Org-mode]] cite link. 1. Move point to the [[https://orgmode.org/][Org-mode]] cite link.
2. Navigate to the corresponding resource. 2. Type {{{kbd(C-:)}}} or {{{kbd(M-x embark-dwim)}}}.
3. Select it. 3. Navigate to the corresponding library file.
3. The following =citar= functions may be useful too: 4. Select it.
3. Open the DOI of an [[https://orgmode.org/][Org-mode]] cite link:
1. Move point to the [[https://orgmode.org/][Org-mode]] cite link.
2. Type {{{kbd(C-:)}}} or {{{kbd(M-x embark-dwim)}}}.
3. Navigate to the corresponding link.
4. Select it.
4. The following =citar= functions may be useful too:
1. src_emacs-lisp{(call-interactively 'citar-insert-citation)}. 1. src_emacs-lisp{(call-interactively 'citar-insert-citation)}.
2. src_emacs-lisp[:results silent]{(call-interactively 'citar-open)}. 2. src_emacs-lisp[:results silent]{(call-interactively 'citar-open)}.
@ -3757,6 +3737,33 @@ Return \"Front Matter\" when current page is above the first headline."
(add-to-list 'which-func-functions 'which-func-pdf-view-function) (add-to-list 'which-func-functions 'which-func-pdf-view-function)
#+end_src #+end_src
* [[info:emacs#Saving Emacs Sessions][Saving Emacs sessions (info)]]
:PROPERTIES:
:CUSTOM_ID: sec:desktop
:END:
Listing [[lst:desktop-setup][setup desktop]] makes Emacs save its state between closing its session to
opening the next session.
#+caption[Setup =desktop= to save Emacs sessions]:
#+caption: Setup =desktop= to save Emacs sessions.
#+name: lst:desktop-setup
#+begin_src emacs-lisp -n :results silent
(with-eval-after-load 'emacs
;; GAV: I fail to implement the idea of ChatGPT on how to reload
;; `eww' pages automatically while restoring the desktop (idea is to
;; add save and restore handlers to `desktop-buffer-mode-handlers').
;; GAV: (setopt eww-restore-desktop t) fails and starts hesitantly.
;; GAV: I fail to code a function for setting the
;; `desktop-buffers-not-to-save-function' option.
(setopt desktop-buffers-not-to-save
(rx bos (or "*Apropos" "compilation*"))
desktop-modes-not-to-save
'(emacs-lisp-mode image-mode tags-table-mode))
(desktop-save-mode t))
#+end_src
* Programming Tools * Programming Tools
:PROPERTIES: :PROPERTIES:
:CUSTOM_ID: sec:programming-tools :CUSTOM_ID: sec:programming-tools