From 1fa15e67360641a4f9b14c8c7cf92b8bec39431d Mon Sep 17 00:00:00 2001 From: Daniel Borchmann Date: Sun, 26 Dec 2021 11:29:54 +0100 Subject: [PATCH] Clean up local Emacs notes They should go somewhere else, but until then it's better to keep them clean. --- emacs-notes.org | 624 ------------------------------------------------ 1 file changed, 624 deletions(-) diff --git a/emacs-notes.org b/emacs-notes.org index 7f44be7..876823f 100644 --- a/emacs-notes.org +++ b/emacs-notes.org @@ -9,80 +9,6 @@ authors that I find useful. * Random Notes -** Insert URL from Safari :IRREAL: -:PROPERTIES: -:CREATED: [2018-08-04 Sat 17:44] -:END: - -Responding to [[http://irreal.org/blog/?p=6924][yesterday's post]], Sacha asks if I could post the code for -=jcs-insert-url= for others to use. I thought I'd already done that but -apparently not. That's probably because except for the part identical to -=jcs-get-link=, which I /did/ [[http://irreal.org/blog/?p=2895][write about]], it's pretty trivial. In any event, -here it is: - -#+BEGIN_SRC emacs-lisp -(defun jcs-insert-url () - "Insert URL of current browser page into Emacs buffer." - (interactive) - (insert (jcs-retrieve-url))) -#+END_SRC - -The =jcs-retrieve-url= function does all the work, of course, and is -just the code that I abstracted out of =jcs-get-link= to actually -retrieve the URL from Safari: - -#+BEGIN_SRC emacs-lisp -(defun jcs-retrieve-url () - "Retrieve the URL of the current Safari page as a string." - (org-trim (shell-command-to-string - "osascript -e 'tell application \"Safari\" to return URL of document 1'"))) -#+END_SRC - -One obvious problem with all this is that it works only for macOS. Not to -despair, though, because in the comments to the original post, [[http://irreal.org/blog/?p=6924#comment-3732979999][Brad Collins -suggests a solution]] that uses [[https://github.com/xuchunyang/grab-x-link][grab-x-link]] to do the same thing for FireFox and -Chrome on other systems. Be sure to read Brad's comment because there is---or at -least was---an issue with the MELPA version. - -Finally, Sacha took the part about looking for ways to make your workflow easier -seriously and came up with a bit of Elisp to [[http://sachachua.com/blog/2018/01/org-mode-inserting-a-function-definition/][insert a function definition at the -point]], regardless of where it's defined. That's very handy and I immediately -stole her code and used it to insert the two functions above. My old method was -to switch to =init.el=, find the function, copy it to the kill ring, switch back -to the original buffer, add the source block fences, and insert the code between -them. Sacha's code did all of that for me and I didn't even have to leave my -current buffer. That's splendid. If you find yourself having to add function -definitions to your text, be sure to read Sacha's post. It will save you a lot -of time. - -[[http://irreal.org/blog/?p=6926][Link]] - -** Calc for Programmers :IRREAL: -:PROPERTIES: -:CREATED: [2018-08-05 Sun 10:04] -:END: - -After writing about Florian Adamsky's post on [[http://irreal.org/blog/?p=7040][acronyms in AUCTeX]], I snooped -around on his site and came across a [[https://florian.adamsky.it/2016/03/31/emacs-calc-for-programmers-and-cs.html][nice post]] on [[https://www.gnu.org/software/emacs/manual/html_node/calc/index.html][Emacs Calc]] from a programmer's -and computer scientist's point of view. As regular readers know, I've been -working to increase my calc-fu lately so I read the post with interest. - -Adamsky demonstrates some of the Calc functions that are useful to programmers -and computer scientists. This includes such things as entering and displaying -numbers in various radixes and performing the standard logical operations on -(the usually binary representation of) numbers. He even shows how to add a new -“units” representation to Calc---in this case bits/bytes/bits per second. - -Calc is a large subsystem and famously hard to master but worth the effort. It's -been described as a “poor man's Mathematica.” It's not nearly as powerful as -Mathematica, of course, but it's surprising how many things it can do. If you're -a programmer/computer scientist and an Emacs user you should spend a little time -investigating Calc. It really can make your life easier. An easy way to get -started is to read Adamsky's post. It covers only a small slice of Calc but will -give you an idea of its power. - -[[http://irreal.org/blog/?p=7044][Link]] - ** Parsing with ~org-element~ :IRREAL: :PROPERTIES: :CREATED: [2018-08-10 Fri 17:55] @@ -137,105 +63,6 @@ The relevant code: '(("" "total:" ":=vsum(@2..@-1);T" ""))) #+end_src -** Emacs Lisp Byte-Code :IRREAL: -:PROPERTIES: -:CREATED: [2018-08-11 Sat 21:40] -:END: - -Very few Emacs users---no matter how advanced---ever need to worry about the -specifics of the Elisp bytecode, or even, for that matter, that it -exists. Still, as guys like Chris Wellons [[http://nullprogram.com/blog/2014/01/04/][have shown]], it can sometimes be useful -to have a basic understanding of the bytecodes. - -R Bernstein has put together a comprehensive, book-length [[http://rocky.github.io/elisp-bytecode.pdf][documentation on Elisp -bytecodes]]. After a short introduction, the documentation considers the bytecode -environment including the compiler, interpreter, and bytecode optimization. Then -there's a long section on the individual bytecode instructions. - -Finally, there are sections on the changes in bytecodes between Emacs versions, -a table of opcodes, and a reference section. There's also a GitHub repository of -the [[https://github.com/rocky/elisp-bytecode][document source]]. - -As I said, you probably will never need this but if you do, you'll be /very/ -glad to have Bernstein's documentation. It's another example of the vibrant -Emacs community. - -[[http://irreal.org/blog/?p=7166][Link]] -** Formatting Tables :IRREAL: -:PROPERTIES: -:CREATED: [2018-10-28 Sun 09:13] -:END: - -If you're like me, you automatically think of the Org mode table editor (or -Orgtbl minor mode) when you think of tables in Emacs. It's hard to beat that -functionality and Orgtbl mode makes it available everywhere in Emacs, even if -you're not in an Org buffer. Sometimes, though, you'd like to have special -formatting for some or all of the table. That's where =delim-col= comes in. - -=Delim-col= is /built-in/ Emacs functionality that allows you to do things like -adjust what string separates the columns, add a beginning or ending string to -each item, add an ending string for each row, and adjust the padding in the -table. It can be really handy for copying and pasting and then reformatting -tables from an external source. - -I didn't know about =delim-col= until I read about it [[https://emacsnotes.wordpress.com/2018/09/24/delim-col-a-handy-tool-for-creating-pretty-tables-and-converting-those-to-different-table-formats/][over at Emacs Notes]], where -you'll find a good explanation of the facility and what it can do. The Emacs -Notes post also offers at bit of Elisp to make choosing the strings and -delimiters a bit easier. By default you have to set them using a series of -=setq= statements if you want something different from the built-in choices. The -Emacs Notes codes arranges for you to be prompted for the values. - -You probably won't need the =delim-col= functionality very often but when you do -it's much easier than using something like a keyboard macro. Take a look at the -post and see if you don't agree. - -[[http://irreal.org/blog/?p=7540][Link]] - -** Org Mode Cookbook :IRREAL: -:PROPERTIES: -:CREATED: [2018-08-04 Sat 12:51] -:END: - -Way back in 2014, I [[http://irreal.org/blog/?p=2575][posted]] about Eric Neilsen's excellent [[http://ehneilsen.net/notebook/orgExamples/org-examples.html][Emacs org-mode -examples and cookbook]]. I recently came across a reference to it and was reminded -what a great resource it is. It's easy to browse through and just read one or -two entries when you have time. In skimming through it, I learned---or perhaps -relearned---how to [[http://ehneilsen.net/notebook/orgExamples/org-examples.html#sec-10][insert in-line calculations in a document]]. - -As I wrote in the original post, Neilsen is a researcher and his cookbook is -oriented at using Org mode to produce documents of various types. Still, that -covers a lot of territory and there are many good examples of powerful Org mode -use cases in it. The Document has moved or, really, taken up a second -residence. It was originally hosted at [[http://fnal.gov/][Fermilab]], where Neilsen works, and it's -still there but it's also available at his own site. The two documents are -identical so it doesn't matter if you use the new link or the original one -pointing to FNAL. - -If you're an Org user, especially if you use Org to produce documents, -you should take a look at Neilsen's cookbook and bookmark it for future -use. - -[[http://irreal.org/blog/?p=6894][Link]] - -** How to paste then copy -:PROPERTIES: -:CREATED: [2018-08-11 Sat 21:47] -:END: - -Question: how to set a mark such that all subsequent copy operations move their -text to that exact mark. - -Answer: use ~cua-selection-mode~! See -https://www.reddit.com/r/emacs/comments/8ekz0u/how_to_pastethencopy/. - -/Update/: turns out it doesn’t work so well, disabled it again. -** Tramp and Telnet over non-standard ports -:PROPERTIES: -:CREATED: [2018-12-29 Sat 15:58] -:END: - -Syntax: ~/telnet:HOST#PORT:~, works also with other protocols. - ** Fractals in Emacs :PROPERTIES: :CREATED: [2018-08-04 Sat 13:01] @@ -273,446 +100,6 @@ From https://nullprogram.com/blog/2012/09/14/ (insert-char (floor (* 256 (/ v 1.0 d))) 3)))) (image-mode))) #+end_src -** Presentations with ~org-reveal~ - -Website: https://github.com/yjwen/org-reveal - -Sample: - -#+BEGIN_SRC org - #+title: Foo! - #+author: bar - - #+options: author:t toc:t num:nil date:nil timestamp:nil - #+reveal_theme: sky - - * Slide 1 - * Slide 2 - ** Subslide 1 - ** Subslide 2 - - Item 1 - - Item 2 - - | a | b | d | - |---+---+---| - | 1 | 2 | 3 | - * Slide 3 -#+END_SRC -** Writing a PhD thesis with Org Mode - -From: https://write.as/dani/writing-a-phd-thesis-with-org-mode - -*TLDR*: I started using Emacs about 3 years ago. I couldn't be more grateful to -have seen the light, and to have been rescued from the darkness of Windoze, -Goggle and/or friends. After enlightenment, I've taken upon myself the task of -customising an environment to write my PhD thesis with Org Mode.* - -*** Why - -Post created in response to the [[https://www.reddit.com/r/emacs/comments/9ynsvc/write_a_thesis_using_emacs_and_orgmode/][current thread]] in /r/emacs/ on thesis writing -with Org Mode.\\ I see most people's reason to avoid Org mode for scientific -writing is the fact that supervisors or co-authors use Mic. Word. I'll try to -argue that that's not enough reason to accept subpar tools. - -*** What I'll talk about - -I'll mention a bit of my motivations, and then I'll discuss how to make use of -(mostly) built in Org functionality such as tagging, export, [[https://orgmode.org/manual/In_002dbuffer-settings.html][setupfiles]] and -includes, reference management, keyboard shortcuts and advanced searching; all -with the purpose of building a useful thesis writing environment. Readers should -have a minimum knowledge of Org mode, the Org export system and LaTeX. - -*** My requirements - -Here in the Netherlands, most PhD thesis consist of an introduction, 3 to 4 -research chapters (as submitted for publication), a summary, bibliography and -appendices. What this means for me is that my writing environment has to -/necessarily/ satisfy the following *minimum requirements*: - -- Inclusion of (parts of) external files -- Keeping track of references -- Include and reference figures -- Version control documents -- Support for sharing with my supervisor in whatever format he wants - -Failure to comply with any of these means the editor is unfit for -purpose^{#fn.1”>1}. Unfortunately, this set of requirements are not seamlessly -satisfied by likes of Mic. Word or G. Docs. I reckon they can probably be -configured to satisfy them, but why bother. - -Additionally, a PhD thesis writing environment should also provide the following -features: - -- Extended searching facilities for both text and references -- Simple syntax for tables and equations -- Support within a proper text editor -- Shortcuts to reach my files and build the thesis - -To the best of my knowledge, /only/ Emacs with Org Mode + ox-latex provide all -of these out of the box. - -*** Moulding Org Mode for thesis writing - -Most of my inspiration comes from reading Kitchin's blogs and code, and reading -the Org Mode documentation, mailing list and Emacs Stack Exchange. Here' I'll go -one by one through all of the requirements listed above, and how to deal with -them. - -**** Prelude: File structure - -I have a main /thesis.org/ document, with latex heading declarations and a -commented setup file. I also have /research.org/ files, in different -directories, with their own latex heading declarations and commented setup -files. - -The first lines of /thesis.org/ look like the following: - -#+BEGIN_src org - # -*- mode: org; org-latex-title-command: ""; org-latex-toc-command: "" -*- - #+TITLE: Thesis Title - #+LATEX_CLASS: mimosis - # Setupfile with #+LATEX_HEADER, #+OPTIONS and explanations - #+SETUPFILE: thesis.setup - #+LATEX_HEADER: \KOMAoptions{fontsize=12pt,headings=small} - #+LATEX_HEADER: \bibliography{~/Papers/bibtex/Publications} - #+EXCLUDE_TAGS: journal noexport - - * Frontmatter :ignore: - #+LATEX: \frontmatter - #+INCLUDE: ./Title.org - #+LATEX: \tableofcontents - - * Mainmatter :ignore: - #+LATEX: \mainmatter - - * Introduction - * Research 1 - #+INCLUDE: "../research1/research.org::*Abstract" :only-contents t - Some stuff. - #+INCLUDE: "../research1/research.org" :lines "5-" - - * Research 2 - ... -#+END_src - -And the first lines and structure overview of the multiple /research.org/ files: - -#+BEGIN_src org - #+TITLE: Research - #+LATEX_CLASS: elsarticle - #+LATEX_CLASS_OPTIONS: [authoryear,preprint,11pt] - #+SETUPFILE: paper.setup - #+LATEX_HEADER:\bibliography{./ref/Publications-research} - #+EXCLUDE_TAGS: thesis noexport - - * Frontmatter :ignore:journal: - #+LATEX: \begin{frontmatter} - ** Author List :ignore: Abstract :ignore: Keywords :ignore: - #+LATEX: \end{frontmatter} - * Introduction - ... -#+END_src - -**** Inserting (parts of) external files - -I write my research chapters with LaTeX classes targeting the journal's -format. That means that a research chapter may be written with the =elsarticle= -class, whereas the thesis as a whole is written with the =mimosis= [[https://github.com/Submanifold/latex-mimosis][class]], a -derivative of KOMA =scrbook=. Here's the class configuration for both: - -#+begin_src emacs-lisp -(add-to-list 'org-latex-classes - '("elsarticle" - "\\documentclass{elsarticle} - [NO-DEFAULT-PACKAGES] - [PACKAGES] - [EXTRA]" - ("\\section{%s}" - . "\\section*{%s}") ("\\subsection{%s}" - . "\\subsection*{%s}") ("\\subsubsection{%s}" - . "\\subsubsection*{%s}") ("\\paragraph{%s}" - . "\\paragraph*{%s}") ("\\subparagraph{%s}" - . "\\subparagraph*{%s}"))) -(add-to-list 'org-latex-classes - '("mimosis" - "\\documentclass{mimosis} - [NO-DEFAULT-PACKAGES] - [PACKAGES] - [EXTRA] - \\newcommand{\\mboxparagraph}[1]{\\paragraph{#1}\\mbox{}\\\\} - \\newcommand{\\mboxsubparagraph}[1]{\\subparagraph{#1}\\mbox{}\\\\}" - ("\\chapter{%s}" . "\\chapter*{%s}") - ("\\section{%s}" - . "\\section*{%s}") ("\\subsection{%s}" - . "\\subsection*{%s}") ("\\subsubsection{%s}" - . "\\subsubsection*{%s}") ("\\mboxparagraph{%s}" - . "\\mboxparagraph*{%s}") ("\\mboxsubparagraph{%s}" - . "\\mboxsubparagraph*{%s}"))) -#+END_src - -Research chapters print the bibliography on their own, and they may contain -acknowledgements that shouldn't be present in the middle of the thesis, so they -should be excluded. In other to insert research chapters into my thesis, I use -Org's =#+INCLUDE= derivative: - -#+begin_src org - #+INCLUDE: file.org -#+end_src - -In order to not include the some parts of the file, i.e., to exclude the title, -setupfile and headers, I narrow down the lines: - -#+begin_src org - # Include line 5 until the end of the file - #+INCLUDE: file.org :lines 5- -#+end_src - -In order to exclude parts of the file, I tag research chapter headings that are -only meant for publication with a =:journal:= tag (such as the bibliography or -acknowledgements). This way they are automatically excluded from the thesis (see -the =#+EXCLUDE_TAGS:= derivative in the /thesis.org/ file). Also, I could have -thesis specific content in the /research.org/ document tagged with =:thesis:=, -and it would be excluded in the /research.org/ export, but I currently don't -have any. - -Now, the most important piece of advice I can give anyone is to *learn how to -use tags*, =EXCLUDE_TAGS= and the org-plus-contributions =ignore= tag. With the -=ignore= tag we separate the structuring of the text as a physical document from -the structuring of the text as a semantic unity. This allows an extremely fine -control over pieces of text to include into another document. For example, in a -research chapter written with the =elsarticle= class, the abstract has to be -included in the Frontmatter. By tagging a headline as follows: - -#+begin_src org - ** Abstract :ignore: -#+end_src - -I can write the research abstract in it's own heading, pretend that the heading -itself does not exist (so it does not trigger =/begin{document}=), only its -contents, and then include the contents in the thesis in an arbitrary location: - -#+begin_src org - # in thesis.org - #+INCLUDE: "research.org::*Abstract" :only-contents t -#+end_src - -The =:ignore:= tag is one of the best Org mode features, in my opinion. It's -key to my workflow, and a shame to see it's not a part of Org core, but rather a -contribution to be found in /ox-extra.el/. To activate it, add the following to -your /init/: - -#+BEGIN_src emacs-lisp -(require 'ox-extra) -(ox-extras-activate '(ignore-headlines)) -#+END_src - -The realisation that it's possible to have such fine control over where to -include or exclude pieces of text opens the door to all sort of interesting -experiments: putting figures and captions directly into beamer or org-reveal -presentations, creating conference posters, writing blog posts, etc. - -**** Keep track of references - -For backwards compatibility I still use Mendeley to track literature. I export -bibtex files for each research project individually, and also a master bibtex -for use in the thesis. These documents are saved to =~/Papers/bibtex/=, but for -the research chapters, I keep local copies under -=./ref/Publications-research.bib=.\\ To insert citations, I use [[https://github.com/jkitchin/org-ref][org-ref.]] It's -documentation says it all. After setting up local bibliography files with the -derivative =#+BIBLIOGRAPHY=, press =C-c ]= to see a list of publications and -insert them in place. I also prefer to have =parencite= citations instead of -=cite=, because they work nicely with BibLaTeX. My setup for org-ref: - -#+begin_src emacs-lisp -(with-eval-after-load 'org-ref ;; see org-ref for use of these variables - (setq org-ref-default-bibliography '("~/Papers/bibtex/Publications.bib") - org-ref-pdf-directory "~/Papers/MendeleyDesktop/" - org-ref-get-pdf-filename-function 'org-ref-get-mendeley-filename - bibtex-completion-pdf-field "file" org-latex-prefer-user-labels t - org-ref-default-citation-link "parencite" - ;; bibtex-dialect 'biblatex - ) - - (defun org-ref-open-pdf-at-point-in-emacs () - "Open the pdf for bibtex key under point if it exists." - (interactive) - (let* ((results (org-ref-get-bibtex-key-and-file)) - (key (car results)) - (pdf-file (funcall org-ref-get-pdf-filename-function key))) - (if (file-exists-p pdf-file) - (find-file-other-window pdf-file) - (message "no pdf found for %s" key)))) - - ;; https://github.com/jkitchin/org-ref/issues/597 - (defun org-ref-grep-pdf (&optional _candidate) - "Search pdf files of marked CANDIDATEs." - (interactive) - (let ((keys (helm-marked-candidates)) - (get-pdf-function org-ref-get-pdf-filename-function)) - (helm-do-pdfgrep-1 - (-remove (lambda (pdf) (string= pdf "")) - (mapcar (lambda (key) (funcall get-pdf-function key)) - keys))))) - - (helm-add-action-to-source "Grep PDF" 'org-ref-grep-pdf helm-source-bibtex 1) - - (setq helm-bibtex-map (let ((map (make-sparse-keymap))) - (set-keymap-parent map helm-map) - (define-key map (kbd "C-s") (lambda () (interactive) (helm-run-after-exit 'org-ref-grep-pdf))) - map)) - (push `(keymap . ,helm-bibtex-map) helm-source-bibtex) - - (setq org-ref-helm-user-candidates - '(("Open in Emacs" . org-ref-open-pdf-at-point-in-emacs)))) -#+end_src - -**** Include and reference figures - -For each research project I keep a =./media= directory, where all my figures -live. You can include figures in Org mode by using the following syntax: - -#+begin_src org - #+NAME: figurename - #+CAPTION: This is a figure caption - [[path_to_figure][link_description]] -#+end_src - -Currently there is a bug in the ELPA version of Org mode, such that relative -paths to figures in =#+INCLUDE= 'd files aren't adapted with respect to the -including file, so the latex export cannot find them. I've [[https://code.orgmode.org/bzg/org-mode/commit/d81a1d088c74e605c99e90a2835c55df5144f43e][submitted a fix]] -which should land in the next release of Org. - -**** Version control documents - -[[https://magit.vc/][Magit]]. I thought about having the research chapters as git submodules in a -thesis git project directory, but I currently don't. This would allow me to -always have the thesis code in a saved state, even if I further work on my -research chapters to answer to reviewers questions. - -**** Support for sharing with my supervisor - -Unfortunately, my supervisor likes to write comments in Mic. Word. I give in -that sharing your writing with colleagues is a fundamental part of -research.\\ Fortunately, [[https://github.com/jkitchin/scimax/blob/master/ox-word.el][ox-word]] export via Pandoc & LaTeX is capable of -creating nice looking, structured Word files which I send to my supervisor. I -then manually work through each comment step by step, though I'm looking for a -way to improve this part of my workflow. I think the Emacs community is missing -a minor mode to track Word document changes from within Org Mode. There are some -ideas laying around on how to implement it [[https://lists.gnu.org/archive/html/emacs-orgmode/2015-06/msg00246.html][hidden deep in the mailing list]], or -in [[https://emacs.stackexchange.com/questions/34923/merging-changes-to-from-docx-files-into-org-files][this Emacs Exchange thread]]. - -I may update this post with more information later. - -**** Extended search facilities - -By extended search facilities I mean the ability to quickly search for -information in references, and to keep notes linked to the literature. For -searching I make use of [[https://github.com/jkitchin/org-ref/issues/597][org-ref + pdfgrep]], as shown in my org-ref setup. For -notes linked to documents I've recently started to use [[https://github.com/weirdNox/org-noter][Org-noter.]] - -**** Simple syntax for tables and equations - -Org tables are a pleasure to work with. The following: - -#+BEGIN_EXAMPLE -| a | b | c | -|---+---+---| -| 1 | 2 | 3 | -#+END_EXAMPLE - -Turns into: - -| a | b | c | -|-----+-----+-----| -| 1 | 2 | 3 | - -Equations can be written in LaTeX: - -#+BEGIN_EXAMPLE -\frac{d \vec{M} (t)}{dt} = \vec{M} (t) \times \gamma \vec{B} (t) -#+END_EXAMPLE - -will become /omitted/ - -**** Support within a proper text editor - -No need to talk about the synergy of using Emacs to edit text. I personally -started using Spacemacs without Evil mode, because I find it aesthetically -pleasing and because it offers great support for the languages I use the most, -and excellent integration with Helm and Org.\\ The following configurations make -the Org editing experience a bit nicer, in my opinion: - -#+BEGIN_src emacs-lisp -;; Writegood https://github.com/bnbeckwith/writegood-mode -(add-hook 'org-mode-hook 'writegood-mode) - -;; https://github.com/cadadr/elisp/blob/master/org-variable-pitch.el -(use-package org-variable-pitch - :load-path "~/Elisp") -(add-hook 'org-mode-hook 'org-variable-pitch-minor-mode) - -(setq visual-fill-column-width 120 visual-fill-column-center-text t) -(add-hook 'org-mode-hook 'visual-line-mode) - -;; https://github.com/joostkremers/visual-fill-column -(add-hook 'org-mode-hook 'visual-fill-column-mode) -(add-hook 'org-mode-hook 'org-display-inline-images) - -;; I have a modified version of the following: -;; https://github.com/lepisma/rogue/blob/master/config.el -(load-file "~/Projects/rogue/config.el") -(add-hook 'org-mode-hook '(lambda () (setq-local line-spacing 5))) - -;; Aesthetical enhancements. -(setq org-fontify-quote-and-verse-blocks t - org-hide-macro-markers t - org-fontify-whole-heading-line t - org-fontify-done-headline t - org-hide-emphasis-markers t) -#+END_src - -**** Shortcuts to reach my files and build the thesis - -I have a hydra (defined in Spacemacs as a transient-state) to move between my -Thesis files: - -#+begin_src emacs-lisp -;; Spacemacs hydra. -(spacemacs|define-transient-state - thesis-menu - :title "Ph.D. Thesis Menu" - :doc " -^Main Files^ ^Chapters^ ^Actions^ -^^^^^^^^------------------------------------------- -_m_: Thesis _1_: Research 1 _o_: Open Thesis.pdf externally -_t_: Title page _2_: Research 2 _c_: Async compile file -_i_: Introduction _3_: Research 3 _a_: things -_s_: thesis.setup _4_: Research 4 ^ ^ -" - :bindings - ("a" things :exit t) - ("m" (find-file "~/thesis/thesis.org") :exit t) - ("t" (find-file - "~/thesis/titlepage.org") :exit t) - ("s" (find-file - "~/thesis/thesis.setup") :exit t) - ("i" (find-file - "~/thesis/intro/intro.org") :exit t) - ("1" (find-file - "~/thesis/ch1/research.org") :exit t) - ("2" (find-file - "~/thesis/ch2/research.org") :exit t) - ("3" (find-file - "~/thesis/ch3/research.org") :exit t) - ("4" (find-file - "~/thesis/ch4/research.org") :exit t) - ("o" (shell-command "open - ~/thesis/thesis.pdf" :exit t)) - ("c" (org-latex-export-to-pdf :async t) - :exit t)) - -(global-set-key (kbd "H-t") 'spacemacs/thesis-menu-transient-state/body) -#+end_src ** Gnus and notmuch Currently working: ~notmuch~ for ~nnmaildir~ backend. However, I also have a @@ -726,17 +113,6 @@ Relevant functions: - ~nnir-notmuch-remove-prefix~ :: a server-local variable to decide what to remove from the lines in ~*nnir*~. -** Summary of Search and Replace Commands in Emacs -[2016-08-13 Sat 17:50] - -http://www.omps.in/blog/2016/01/20/day-10-search-and-replace-using-regex/ -** Bookmarks with Org-mode -:PROPERTIES: -:CREATED: [2018-07-08 Sun 09:29] -:END: - -[[http://karl-voit.at/2014/08/10/bookmarks-with-orgmode/]] - ** Inserting a function definition :CHUA: :PROPERTIES: :CREATED: [2018-08-04 Sat 17:40]