aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--emacs/custom.el2
-rw-r--r--emacs/init.html1898
-rw-r--r--emacs/init.org63
-rw-r--r--emacs/org.css49
4 files changed, 1071 insertions, 941 deletions
diff --git a/emacs/custom.el b/emacs/custom.el
index 1905a1d..7c0e1ce 100644
--- a/emacs/custom.el
+++ b/emacs/custom.el
@@ -14,7 +14,7 @@
'(markdown-command "/usr/bin/markdown-calibre")
'(package-selected-packages
(quote
- (cmake-mode websocket markdown-mode go-mode magit evil-leader evil helm projectile writeroom-mode org-eldoc evil-commentary circe yasnippet yaml-mode which-key web-mode wc-mode use-package terraform-mode smart-tabs-mode slim-mode scss-mode rainbow-delimiters php-mode org-evil olivetti mu4e-alert mmm-jinja2 markdown-preview-mode helm-projectile helm-ag go-eldoc go-add-tags flycheck expand-region evil-surround evil-org evil-numbers evil-mu4e evil-magit evil-args dockerfile-mode disable-mouse default-text-scale crux cmake-font-lock ag))))
+ (htmlize cmake-mode websocket markdown-mode go-mode magit evil-leader evil helm projectile writeroom-mode org-eldoc evil-commentary circe yasnippet yaml-mode which-key web-mode wc-mode use-package terraform-mode smart-tabs-mode slim-mode scss-mode rainbow-delimiters php-mode org-evil olivetti mu4e-alert mmm-jinja2 markdown-preview-mode helm-projectile helm-ag go-eldoc go-add-tags flycheck expand-region evil-surround evil-org evil-numbers evil-mu4e evil-magit evil-args dockerfile-mode disable-mouse default-text-scale crux cmake-font-lock ag))))
(custom-set-faces
;; custom-set-faces was added by Custom.
;; If you edit it by hand, you could mess it up, so be careful.
diff --git a/emacs/init.html b/emacs/init.html
index 302ba4d..7bd1d77 100644
--- a/emacs/init.html
+++ b/emacs/init.html
@@ -4,7 +4,7 @@
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<title>mssola's GNU Emacs configuration</title>
-<!-- 2017-01-18 Wed 15:25 -->
+<!-- 2017-01-18 Wed 18:42 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="generator" content="Org-mode" />
<meta name="author" content="Miquel Sabaté Solà" />
@@ -89,6 +89,7 @@
/*]]>*/-->
</style>
<link rel="stylesheet" href="http://jo.mssola.com/static/style.css" type="text/css" />
+<link rel="stylesheet" href="http://jo.mssola.com/static/org.css" type="text/css" />
<script type="text/javascript">
/*
@licstart The following is the entire license notice for the
@@ -143,49 +144,53 @@ for the JavaScript code in this tag.
<h2>Table of Contents</h2>
<div id="text-table-of-contents">
<ul>
-<li><a href="#sec-1">1. Preface</a></li>
-<li><a href="#sec-2">2. Introduction</a></li>
-<li><a href="#sec-3">3. General</a>
+<li><a href="#sec-1">Preface</a></li>
+<li><a href="#sec-2">Introduction</a></li>
+<li><a href="#sec-3">General</a>
<ul>
-<li><a href="#sec-3-1">3.1. GUI</a></li>
-<li><a href="#sec-3-2">3.2. Basic editing configuration</a></li>
-<li><a href="#sec-3-3">3.3. Font and theme</a></li>
-<li><a href="#sec-3-4">3.4. General global key bindings</a></li>
-<li><a href="#sec-3-5">3.5. Others</a></li>
+<li><a href="#sec-3-1">GUI</a></li>
+<li><a href="#sec-3-2">Basic editing configuration</a></li>
+<li><a href="#sec-3-3">Font and theme</a></li>
+<li><a href="#sec-3-4">General global key bindings</a></li>
+<li><a href="#sec-3-5">Others</a></li>
</ul>
</li>
-<li><a href="#sec-4">4. Calendar</a></li>
-<li><a href="#sec-5">5. General purpose defuns</a></li>
-<li><a href="#sec-6">6. Lisp packages</a>
+<li><a href="#sec-4">Calendar</a></li>
+<li><a href="#sec-5">General purpose defuns</a></li>
+<li><a href="#sec-6">Lisp packages</a>
<ul>
-<li><a href="#sec-6-1">6.1. Custom packages</a></li>
-<li><a href="#sec-6-2">6.2. use-package</a></li>
+<li><a href="#sec-6-1">Custom packages</a></li>
+<li><a href="#sec-6-2">use-package</a></li>
</ul>
</li>
-<li><a href="#sec-7">7. Project</a></li>
-<li><a href="#sec-8">8. Edit</a></li>
-<li><a href="#sec-9">9. Dired</a></li>
-<li><a href="#sec-10">10. Evil</a></li>
-<li><a href="#sec-11">11. Magit</a></li>
-<li><a href="#sec-12">12. mu4e</a></li>
-<li><a href="#sec-13">13. org</a>
+<li><a href="#sec-7">Project</a></li>
+<li><a href="#sec-8">Edit</a></li>
+<li><a href="#sec-9">Dired</a></li>
+<li><a href="#sec-10">Evil</a></li>
+<li><a href="#sec-11">Magit</a></li>
+<li><a href="#sec-12">mu4e</a></li>
+<li><a href="#sec-13">org</a>
<ul>
-<li><a href="#sec-13-1">13.1. <span class="todo TODO">TODO</span> shortcut for making an org link, and transforming a link into a proper org link</a></li>
-<li><a href="#sec-13-2">13.2. <span class="todo TODO">TODO</span> make it work with evil</a></li>
-<li><a href="#sec-13-3">13.3. <span class="todo TODO">TODO</span> Proper keybindings for quick access.</a></li>
-<li><a href="#sec-13-4">13.4. <span class="todo TODO">TODO</span> shortcuts for stuff like: create something urgent for today</a></li>
+<li><a href="#sec-13-1">General settings</a></li>
+<li><a href="#sec-13-2">Publishing</a></li>
+<li><a href="#sec-13-3">Agenda</a></li>
+<li><a href="#sec-13-4">Other</a></li>
+<li><a href="#sec-13-5"><span class="todo TODO">TODO</span> shortcut for making an org link, and transforming a link into a proper org link</a></li>
+<li><a href="#sec-13-6"><span class="todo TODO">TODO</span> make it work with evil</a></li>
+<li><a href="#sec-13-7"><span class="todo TODO">TODO</span> Proper keybindings for quick access.</a></li>
+<li><a href="#sec-13-8"><span class="todo TODO">TODO</span> shortcuts for stuff like: create something urgent for today</a></li>
</ul>
</li>
-<li><a href="#sec-14">14. Languages</a></li>
-<li><a href="#sec-15">15. Misc</a></li>
-<li><a href="#sec-16">16. Credits</a></li>
-<li><a href="#sec-17">17. License</a></li>
+<li><a href="#sec-14">Languages</a></li>
+<li><a href="#sec-15">Misc</a></li>
+<li><a href="#sec-16">Credits</a></li>
+<li><a href="#sec-17">License</a></li>
</ul>
</div>
</div>
<div id="outline-container-sec-1" class="outline-2">
-<h2 id="sec-1"><span class="section-number-2">1</span> Preface</h2>
+<h2 id="sec-1">Preface</h2>
<div class="outline-text-2" id="text-1">
<p>
This is my attempt of getting my configuration organized with literate
@@ -198,23 +203,23 @@ file <b>always</b>. The initial contents of the <code>init.el</code> are:
<div class="org-src-container">
-<pre class="src src-elisp">;; We can't tangle without org!
-(require 'org)
+<pre class="src src-elisp"><span class="org-comment-delimiter">;; </span><span class="org-comment">We can't tangle without org!</span>
+<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">require</span> '<span class="org-constant">org</span><span class="org-rainbow-delimiters-depth-1">)</span>
-;; Follow symlinks
-(setq vc-follow-symlinks t)
+<span class="org-comment-delimiter">;; </span><span class="org-comment">Follow symlinks</span>
+<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">setq</span> vc-follow-symlinks t<span class="org-rainbow-delimiters-depth-1">)</span>
-;; Open the configuration
-(find-file (concat user-emacs-directory "init.org"))
+<span class="org-comment-delimiter">;; </span><span class="org-comment">Open the configuration</span>
+<span class="org-rainbow-delimiters-depth-1">(</span>find-file <span class="org-rainbow-delimiters-depth-2">(</span>concat user-emacs-directory <span class="org-string">"init.org"</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>
-;; Tangle it
-(org-babel-tangle)
+<span class="org-comment-delimiter">;; </span><span class="org-comment">Tangle it</span>
+<span class="org-rainbow-delimiters-depth-1">(</span>org-babel-tangle<span class="org-rainbow-delimiters-depth-1">)</span>
-;; Load it
-(load-file (concat user-emacs-directory "init.el"))
+<span class="org-comment-delimiter">;; </span><span class="org-comment">Load it</span>
+<span class="org-rainbow-delimiters-depth-1">(</span>load-file <span class="org-rainbow-delimiters-depth-2">(</span>concat user-emacs-directory <span class="org-string">"init.el"</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>
-;; Finally byte-compile it
-(byte-compile-file (concat user-emacs-directory "init.el"))
+<span class="org-comment-delimiter">;; </span><span class="org-comment">Finally byte-compile it</span>
+<span class="org-rainbow-delimiters-depth-1">(</span>byte-compile-file <span class="org-rainbow-delimiters-depth-2">(</span>concat user-emacs-directory <span class="org-string">"init.el"</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>
</pre>
</div>
@@ -237,27 +242,27 @@ on each change, the following function is provided:
<div class="org-src-container">
-<pre class="src src-elisp">(defun tangle-init ()
- "If the current buffer is 'init.org' the code-blocks are
- tangled, and the tangled file is compiled. Morever, an init.html is generated."
+<pre class="src src-elisp"><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">defun</span> <span class="org-function-name">tangle-init</span> <span class="org-rainbow-delimiters-depth-2">()</span>
+ <span class="org-doc">"If the current buffer is 'init.org' the code-blocks are</span>
+<span class="org-doc"> tangled, and the tangled file is compiled. Morever, an init.html is generated."</span>
- (when (or (equal (buffer-file-name)
- (expand-file-name (concat user-emacs-directory "init.org")))
- (string-suffix-p "dotfiles/emacs/init.org" (buffer-file-name)))
+ <span class="org-rainbow-delimiters-depth-2">(</span><span class="org-keyword">when</span> <span class="org-rainbow-delimiters-depth-3">(</span><span class="org-keyword">or</span> <span class="org-rainbow-delimiters-depth-4">(</span>equal <span class="org-rainbow-delimiters-depth-5">(</span>buffer-file-name<span class="org-rainbow-delimiters-depth-5">)</span>
+ <span class="org-rainbow-delimiters-depth-5">(</span>expand-file-name <span class="org-rainbow-delimiters-depth-6">(</span>concat user-emacs-directory <span class="org-string">"init.org"</span><span class="org-rainbow-delimiters-depth-6">)</span><span class="org-rainbow-delimiters-depth-5">)</span><span class="org-rainbow-delimiters-depth-4">)</span>
+ <span class="org-rainbow-delimiters-depth-4">(</span>string-suffix-p <span class="org-string">"dotfiles/emacs/init.org"</span> <span class="org-rainbow-delimiters-depth-5">(</span>buffer-file-name<span class="org-rainbow-delimiters-depth-5">)</span><span class="org-rainbow-delimiters-depth-4">)</span><span class="org-rainbow-delimiters-depth-3">)</span>
- ;; Avoid running hooks when tangling
- (let ((prog-mode-hook nil))
- (org-babel-tangle)
- (org-html-export-to-html)
- (byte-compile-file (concat user-emacs-directory "init.el")))))
+ <span class="org-comment-delimiter">;; </span><span class="org-comment">Avoid running hooks when tangling</span>
+ <span class="org-rainbow-delimiters-depth-3">(</span><span class="org-keyword">let</span> <span class="org-rainbow-delimiters-depth-4">(</span><span class="org-rainbow-delimiters-depth-5">(</span>prog-mode-hook nil<span class="org-rainbow-delimiters-depth-5">)</span><span class="org-rainbow-delimiters-depth-4">)</span>
+ <span class="org-rainbow-delimiters-depth-4">(</span>org-babel-tangle<span class="org-rainbow-delimiters-depth-4">)</span>
+ <span class="org-rainbow-delimiters-depth-4">(</span>org-html-export-to-html<span class="org-rainbow-delimiters-depth-4">)</span>
+ <span class="org-rainbow-delimiters-depth-4">(</span>byte-compile-file <span class="org-rainbow-delimiters-depth-5">(</span>concat user-emacs-directory <span class="org-string">"init.el"</span><span class="org-rainbow-delimiters-depth-5">)</span><span class="org-rainbow-delimiters-depth-4">)</span><span class="org-rainbow-delimiters-depth-3">)</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>
-(add-hook 'after-save-hook 'tangle-init)
+<span class="org-rainbow-delimiters-depth-1">(</span>add-hook 'after-save-hook 'tangle-init<span class="org-rainbow-delimiters-depth-1">)</span>
</pre>
</div>
</div>
</div>
<div id="outline-container-sec-2" class="outline-2">
-<h2 id="sec-2"><span class="section-number-2">2</span> Introduction</h2>
+<h2 id="sec-2">Introduction</h2>
<div class="outline-text-2" id="text-2">
<p>
I'm using GNU Emacs 25, but everything should be working in GNU Emacs 24. There
@@ -267,8 +272,8 @@ individually handled.
<div class="org-src-container">
-<pre class="src src-elisp">(unless (&gt;= emacs-major-version 24)
- (error "Don't be a cheap bastard and upgrade to at least GNU Emacs 24"))
+<pre class="src src-elisp"><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">unless</span> <span class="org-rainbow-delimiters-depth-2">(</span>&gt;= emacs-major-version 24<span class="org-rainbow-delimiters-depth-2">)</span>
+ <span class="org-rainbow-delimiters-depth-2">(</span><span class="org-warning">error</span> <span class="org-string">"Don't be a cheap bastard and upgrade to at least GNU Emacs 24"</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>
</pre>
</div>
@@ -279,11 +284,11 @@ Temporarily reduce garbage collection so startup time is lower. Idea taken from
<div class="org-src-container">
-<pre class="src src-elisp">(defconst mssola-initial-gc-cons-threshold gc-cons-threshold
- "Initial value of `gc-cons-threshold' at start-up time.")
-(setq gc-cons-threshold (* 1024 1024 1024))
-(add-hook 'after-init-hook
- (lambda () (setq gc-cons-threshold mssola-initial-gc-cons-threshold)))
+<pre class="src src-elisp"><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">defconst</span> <span class="org-variable-name">mssola-initial-gc-cons-threshold</span> gc-cons-threshold
+ <span class="org-doc">"Initial value of `</span><span class="org-doc"><span class="org-constant">gc-cons-threshold</span></span><span class="org-doc">' at start-up time."</span><span class="org-rainbow-delimiters-depth-1">)</span>
+<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">setq</span> gc-cons-threshold <span class="org-rainbow-delimiters-depth-2">(</span>* 1024 1024 1024<span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>
+<span class="org-rainbow-delimiters-depth-1">(</span>add-hook 'after-init-hook
+ <span class="org-rainbow-delimiters-depth-2">(</span><span class="org-keyword">lambda</span> <span class="org-rainbow-delimiters-depth-3">()</span> <span class="org-rainbow-delimiters-depth-3">(</span><span class="org-keyword">setq</span> gc-cons-threshold mssola-initial-gc-cons-threshold<span class="org-rainbow-delimiters-depth-3">)</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>
</pre>
</div>
@@ -293,18 +298,18 @@ User name and email.
<div class="org-src-container">
-<pre class="src src-elisp">(setq user-full-name "Miquel Sabaté Solà"
- user-mail-address "mikisabate@gmail.com")
+<pre class="src src-elisp"><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">setq</span> user-full-name <span class="org-string">"Miquel Sabat&#233; Sol&#224;"</span>
+ user-mail-address <span class="org-string">"mikisabate@gmail.com"</span><span class="org-rainbow-delimiters-depth-1">)</span>
</pre>
</div>
</div>
</div>
<div id="outline-container-sec-3" class="outline-2">
-<h2 id="sec-3"><span class="section-number-2">3</span> General</h2>
+<h2 id="sec-3">General</h2>
<div class="outline-text-2" id="text-3">
</div><div id="outline-container-sec-3-1" class="outline-3">
-<h3 id="sec-3-1"><span class="section-number-3">3.1</span> GUI</h3>
+<h3 id="sec-3-1">GUI</h3>
<div class="outline-text-3" id="text-3-1">
<p>
I like a minimalistic GUI. Because of this, almost all GUI elements have been
@@ -318,12 +323,12 @@ name of the buffer is displayed (e.g. "mssola: <b>scratch</b>").
<div class="org-src-container">
-<pre class="src src-elisp">(setq frame-title-format
- '((:eval
- (concat (user-real-login-name) ": "
- (if (buffer-file-name)
- (abbreviate-file-name (buffer-file-name))
- "%b")))))
+<pre class="src src-elisp"><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">setq</span> frame-title-format
+ '<span class="org-rainbow-delimiters-depth-2">(</span><span class="org-rainbow-delimiters-depth-3">(</span><span class="org-builtin">:eval</span>
+ <span class="org-rainbow-delimiters-depth-4">(</span>concat <span class="org-rainbow-delimiters-depth-5">(</span>user-real-login-name<span class="org-rainbow-delimiters-depth-5">)</span> <span class="org-string">": "</span>
+ <span class="org-rainbow-delimiters-depth-5">(</span><span class="org-keyword">if</span> <span class="org-rainbow-delimiters-depth-6">(</span>buffer-file-name<span class="org-rainbow-delimiters-depth-6">)</span>
+ <span class="org-rainbow-delimiters-depth-6">(</span>abbreviate-file-name <span class="org-rainbow-delimiters-depth-7">(</span>buffer-file-name<span class="org-rainbow-delimiters-depth-7">)</span><span class="org-rainbow-delimiters-depth-6">)</span>
+ <span class="org-string">"%b"</span><span class="org-rainbow-delimiters-depth-5">)</span><span class="org-rainbow-delimiters-depth-4">)</span><span class="org-rainbow-delimiters-depth-3">)</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>
</pre>
</div>
@@ -334,28 +339,28 @@ modes.
<div class="org-src-container">
-<pre class="src src-elisp">(menu-bar-mode -1)
-(when (fboundp 'set-scroll-bar-mode)
- (set-scroll-bar-mode nil))
-(when (fboundp 'tool-bar-mode)
- (tool-bar-mode -1))
-(when (fboundp 'tooltip-mode)
- (tooltip-mode 0))
+<pre class="src src-elisp"><span class="org-rainbow-delimiters-depth-1">(</span>menu-bar-mode -1<span class="org-rainbow-delimiters-depth-1">)</span>
+<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">when</span> <span class="org-rainbow-delimiters-depth-2">(</span>fboundp 'set-scroll-bar-mode<span class="org-rainbow-delimiters-depth-2">)</span>
+ <span class="org-rainbow-delimiters-depth-2">(</span>set-scroll-bar-mode nil<span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>
+<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">when</span> <span class="org-rainbow-delimiters-depth-2">(</span>fboundp 'tool-bar-mode<span class="org-rainbow-delimiters-depth-2">)</span>
+ <span class="org-rainbow-delimiters-depth-2">(</span>tool-bar-mode -1<span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>
+<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">when</span> <span class="org-rainbow-delimiters-depth-2">(</span>fboundp 'tooltip-mode<span class="org-rainbow-delimiters-depth-2">)</span>
+ <span class="org-rainbow-delimiters-depth-2">(</span>tooltip-mode 0<span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>
-(line-number-mode 1)
-(column-number-mode 1)
+<span class="org-rainbow-delimiters-depth-1">(</span>line-number-mode 1<span class="org-rainbow-delimiters-depth-1">)</span>
+<span class="org-rainbow-delimiters-depth-1">(</span>column-number-mode 1<span class="org-rainbow-delimiters-depth-1">)</span>
-;; Nice scrolling
-(setq scroll-margin 0
+<span class="org-comment-delimiter">;; </span><span class="org-comment">Nice scrolling</span>
+<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">setq</span> scroll-margin 0
scroll-conservatively 100000
- scroll-preserve-screen-position 1)
+ scroll-preserve-screen-position 1<span class="org-rainbow-delimiters-depth-1">)</span>
</pre>
</div>
</div>
</div>
<div id="outline-container-sec-3-2" class="outline-3">
-<h3 id="sec-3-2"><span class="section-number-3">3.2</span> Basic editing configuration</h3>
+<h3 id="sec-3-2">Basic editing configuration</h3>
<div class="outline-text-3" id="text-3-2">
<p>
Use UTF-8 <b>always</b>.
@@ -363,18 +368,18 @@ Use UTF-8 <b>always</b>.
<div class="org-src-container">
-<pre class="src src-elisp">(prefer-coding-system 'utf-8)
-(set-default-coding-systems 'utf-8)
-(set-terminal-coding-system 'utf-8)
-(set-keyboard-coding-system 'utf-8)
-(set-language-environment 'utf-8)
+<pre class="src src-elisp"><span class="org-rainbow-delimiters-depth-1">(</span>prefer-coding-system 'utf-8<span class="org-rainbow-delimiters-depth-1">)</span>
+<span class="org-rainbow-delimiters-depth-1">(</span>set-default-coding-systems 'utf-8<span class="org-rainbow-delimiters-depth-1">)</span>
+<span class="org-rainbow-delimiters-depth-1">(</span>set-terminal-coding-system 'utf-8<span class="org-rainbow-delimiters-depth-1">)</span>
+<span class="org-rainbow-delimiters-depth-1">(</span>set-keyboard-coding-system 'utf-8<span class="org-rainbow-delimiters-depth-1">)</span>
+<span class="org-rainbow-delimiters-depth-1">(</span>set-language-environment 'utf-8<span class="org-rainbow-delimiters-depth-1">)</span>
</pre>
</div>
</div>
</div>
<div id="outline-container-sec-3-3" class="outline-3">
-<h3 id="sec-3-3"><span class="section-number-3">3.3</span> Font and theme</h3>
+<h3 id="sec-3-3">Font and theme</h3>
<div class="outline-text-3" id="text-3-3">
<p>
I'm using "Droid Sans Mono" simply because I've grown used to it.
@@ -382,17 +387,17 @@ I'm using "Droid Sans Mono" simply because I've grown used to it.
<div class="org-src-container">
-<pre class="src src-elisp">(set-frame-font "Droid Sans Mono Dotted for Powerline-10")
-(add-to-list 'default-frame-alist '(font . "Droid Sans Mono Dotted for Powerline-10"))
+<pre class="src src-elisp"><span class="org-rainbow-delimiters-depth-1">(</span>set-frame-font <span class="org-string">"Droid Sans Mono Dotted for Powerline-10"</span><span class="org-rainbow-delimiters-depth-1">)</span>
+<span class="org-rainbow-delimiters-depth-1">(</span>add-to-list 'default-frame-alist '<span class="org-rainbow-delimiters-depth-2">(</span>font . <span class="org-string">"Droid Sans Mono Dotted for Powerline-10"</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>
-; Emacs in daemon mode does not like `set-face-attribute` because this is only
-; applied if there is a frame in place, which doesn't happen when starting the
-; daemon. Thus, we should call that after the frame has been created (e.g. by
-; emacsclient).
-; See: https://lists.gnu.org/archive/html/help-gnu-emacs/2015-03/msg00016.html
-(add-hook 'after-make-frame-functions-hook
- (lambda ()
- (set-face-attribute 'default t :font "Droid Sans Mono Dotted for Powerline-10")))
+<span class="org-comment-delimiter">; </span><span class="org-comment">Emacs in daemon mode does not like `set-face-attribute` because this is only</span>
+<span class="org-comment-delimiter">; </span><span class="org-comment">applied if there is a frame in place, which doesn't happen when starting the</span>
+<span class="org-comment-delimiter">; </span><span class="org-comment">daemon. Thus, we should call that after the frame has been created (e.g. by</span>
+<span class="org-comment-delimiter">; </span><span class="org-comment">emacsclient).</span>
+<span class="org-comment-delimiter">; </span><span class="org-comment">See: https://lists.gnu.org/archive/html/help-gnu-emacs/2015-03/msg00016.html</span>
+<span class="org-rainbow-delimiters-depth-1">(</span>add-hook 'after-make-frame-functions-hook
+ <span class="org-rainbow-delimiters-depth-2">(</span><span class="org-keyword">lambda</span> <span class="org-rainbow-delimiters-depth-3">()</span>
+ <span class="org-rainbow-delimiters-depth-3">(</span>set-face-attribute 'default t <span class="org-builtin">:font</span> <span class="org-string">"Droid Sans Mono Dotted for Powerline-10"</span><span class="org-rainbow-delimiters-depth-3">)</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>
</pre>
</div>
@@ -403,14 +408,14 @@ I've hacked my own theme called <a href="https://github.com/mssola/soria">soria<
<div class="org-src-container">
-<pre class="src src-elisp">(load-theme 'soria t)
+<pre class="src src-elisp"><span class="org-rainbow-delimiters-depth-1">(</span>load-theme 'soria t<span class="org-rainbow-delimiters-depth-1">)</span>
</pre>
</div>
</div>
</div>
<div id="outline-container-sec-3-4" class="outline-3">
-<h3 id="sec-3-4"><span class="section-number-3">3.4</span> General global key bindings</h3>
+<h3 id="sec-3-4">General global key bindings</h3>
<div class="outline-text-3" id="text-3-4">
<p>
Use kill-this-buffer instead of kill-buffer.
@@ -418,7 +423,7 @@ Use kill-this-buffer instead of kill-buffer.
<div class="org-src-container">
-<pre class="src src-elisp">(global-set-key (kbd "C-x k") 'kill-this-buffer)
+<pre class="src src-elisp"><span class="org-rainbow-delimiters-depth-1">(</span>global-set-key <span class="org-rainbow-delimiters-depth-2">(</span>kbd <span class="org-string">"C-x k"</span><span class="org-rainbow-delimiters-depth-2">)</span> 'kill-this-buffer<span class="org-rainbow-delimiters-depth-1">)</span>
</pre>
</div>
@@ -430,7 +435,7 @@ cannot be loaded due to some error.
<div class="org-src-container">
-<pre class="src src-elisp">(global-unset-key (kbd "C-z"))
+<pre class="src src-elisp"><span class="org-rainbow-delimiters-depth-1">(</span>global-unset-key <span class="org-rainbow-delimiters-depth-2">(</span>kbd <span class="org-string">"C-z"</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>
</pre>
</div>
@@ -440,8 +445,8 @@ Disable all the Fn keys.
<div class="org-src-container">
-<pre class="src src-elisp">(dotimes (i 12)
- (global-unset-key (kbd (format "&lt;f%d&gt;" (+ i 1)))))
+<pre class="src src-elisp"><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">dotimes</span> <span class="org-rainbow-delimiters-depth-2">(</span>i 12<span class="org-rainbow-delimiters-depth-2">)</span>
+ <span class="org-rainbow-delimiters-depth-2">(</span>global-unset-key <span class="org-rainbow-delimiters-depth-3">(</span>kbd <span class="org-rainbow-delimiters-depth-4">(</span>format <span class="org-string">"&lt;f%d&gt;"</span> <span class="org-rainbow-delimiters-depth-5">(</span>+ i 1<span class="org-rainbow-delimiters-depth-5">)</span><span class="org-rainbow-delimiters-depth-4">)</span><span class="org-rainbow-delimiters-depth-3">)</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>
</pre>
</div>
@@ -451,14 +456,14 @@ Disable overwrite-mode.
<div class="org-src-container">
-<pre class="src src-elisp">(define-key global-map [(insert)] nil)
+<pre class="src src-elisp"><span class="org-rainbow-delimiters-depth-1">(</span>define-key global-map <span class="org-rainbow-delimiters-depth-2">[</span><span class="org-rainbow-delimiters-depth-3">(</span>insert<span class="org-rainbow-delimiters-depth-3">)</span><span class="org-rainbow-delimiters-depth-2">]</span> nil<span class="org-rainbow-delimiters-depth-1">)</span>
</pre>
</div>
</div>
</div>
<div id="outline-container-sec-3-5" class="outline-3">
-<h3 id="sec-3-5"><span class="section-number-3">3.5</span> Others</h3>
+<h3 id="sec-3-5">Others</h3>
<div class="outline-text-3" id="text-3-5">
<p>
Revert buffers automatically when underlying files are changed externally.
@@ -466,7 +471,7 @@ Revert buffers automatically when underlying files are changed externally.
<div class="org-src-container">
-<pre class="src src-elisp">(global-auto-revert-mode t)
+<pre class="src src-elisp"><span class="org-rainbow-delimiters-depth-1">(</span>global-auto-revert-mode t<span class="org-rainbow-delimiters-depth-1">)</span>
</pre>
</div>
@@ -476,7 +481,7 @@ Follow symlinks.
<div class="org-src-container">
-<pre class="src src-elisp">(setq vc-follow-symlinks t)
+<pre class="src src-elisp"><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">setq</span> vc-follow-symlinks t<span class="org-rainbow-delimiters-depth-1">)</span>
</pre>
</div>
@@ -486,7 +491,7 @@ Remove the initial message from the scratch buffer.
<div class="org-src-container">
-<pre class="src src-elisp">(setq initial-scratch-message nil)
+<pre class="src src-elisp"><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">setq</span> initial-scratch-message nil<span class="org-rainbow-delimiters-depth-1">)</span>
</pre>
</div>
@@ -496,11 +501,11 @@ Never kill the scratch buffer, bury it instead.
<div class="org-src-container">
-<pre class="src src-elisp">(defadvice kill-buffer (around kill-buffer-around-advice activate)
- (let ((buffer-to-kill (ad-get-arg 0)))
- (if (equal buffer-to-kill "*scratch*")
- (bury-buffer)
- ad-do-it)))
+<pre class="src src-elisp"><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">defadvice</span> <span class="org-function-name">kill-buffer</span> <span class="org-rainbow-delimiters-depth-2">(</span>around kill-buffer-around-advice activate<span class="org-rainbow-delimiters-depth-2">)</span>
+ <span class="org-rainbow-delimiters-depth-2">(</span><span class="org-keyword">let</span> <span class="org-rainbow-delimiters-depth-3">(</span><span class="org-rainbow-delimiters-depth-4">(</span>buffer-to-kill <span class="org-rainbow-delimiters-depth-5">(</span>ad-get-arg 0<span class="org-rainbow-delimiters-depth-5">)</span><span class="org-rainbow-delimiters-depth-4">)</span><span class="org-rainbow-delimiters-depth-3">)</span>
+ <span class="org-rainbow-delimiters-depth-3">(</span><span class="org-keyword">if</span> <span class="org-rainbow-delimiters-depth-4">(</span>equal buffer-to-kill <span class="org-string">"*scratch*"</span><span class="org-rainbow-delimiters-depth-4">)</span>
+ <span class="org-rainbow-delimiters-depth-4">(</span>bury-buffer<span class="org-rainbow-delimiters-depth-4">)</span>
+ ad-do-it<span class="org-rainbow-delimiters-depth-3">)</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>
</pre>
</div>
@@ -510,8 +515,8 @@ No backups
<div class="org-src-container">
-<pre class="src src-elisp">(setq-default make-backup-files nil)
-(setq-default auto-save-default nil)
+<pre class="src src-elisp"><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">setq-default</span> make-backup-files nil<span class="org-rainbow-delimiters-depth-1">)</span>
+<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">setq-default</span> auto-save-default nil<span class="org-rainbow-delimiters-depth-1">)</span>
</pre>
</div>
@@ -521,7 +526,7 @@ No welcome screen
<div class="org-src-container">
-<pre class="src src-elisp">(setq-default inhibit-startup-message t)
+<pre class="src src-elisp"><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">setq-default</span> inhibit-startup-message t<span class="org-rainbow-delimiters-depth-1">)</span>
</pre>
</div>
@@ -531,7 +536,7 @@ Enable y/n answers
<div class="org-src-container">
-<pre class="src src-elisp">(fset 'yes-or-no-p 'y-or-n-p)
+<pre class="src src-elisp"><span class="org-rainbow-delimiters-depth-1">(</span>fset 'yes-or-no-p 'y-or-n-p<span class="org-rainbow-delimiters-depth-1">)</span>
</pre>
</div>
@@ -541,7 +546,7 @@ Let flyspell be performant.
<div class="org-src-container">
-<pre class="src src-elisp">(defvar flyspell-issue-message-flag nil)
+<pre class="src src-elisp"><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">defvar</span> <span class="org-variable-name">flyspell-issue-message-flag</span> nil<span class="org-rainbow-delimiters-depth-1">)</span>
</pre>
</div>
@@ -551,9 +556,9 @@ Save custom-variables somewhere else.
<div class="org-src-container">
-<pre class="src src-elisp">(setq custom-file (expand-file-name "custom.el" user-emacs-directory))
-(if (file-exists-p custom-file)
- (load custom-file))
+<pre class="src src-elisp"><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">setq</span> custom-file <span class="org-rainbow-delimiters-depth-2">(</span>expand-file-name <span class="org-string">"custom.el"</span> user-emacs-directory<span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>
+<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">if</span> <span class="org-rainbow-delimiters-depth-2">(</span>file-exists-p custom-file<span class="org-rainbow-delimiters-depth-2">)</span>
+ <span class="org-rainbow-delimiters-depth-2">(</span>load custom-file<span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>
</pre>
</div>
</div>
@@ -561,7 +566,7 @@ Save custom-variables somewhere else.
</div>
<div id="outline-container-sec-4" class="outline-2">
-<h2 id="sec-4"><span class="section-number-2">4</span> Calendar</h2>
+<h2 id="sec-4">Calendar</h2>
<div class="outline-text-2" id="text-4">
<p>
We catalans start our weeks on Monday.
@@ -569,7 +574,7 @@ We catalans start our weeks on Monday.
<div class="org-src-container">
-<pre class="src src-elisp">(defvar calendar-week-start-day 1)
+<pre class="src src-elisp"><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">defvar</span> <span class="org-variable-name">calendar-week-start-day</span> 1<span class="org-rainbow-delimiters-depth-1">)</span>
</pre>
</div>
@@ -579,7 +584,7 @@ Global key binding.
<div class="org-src-container">
-<pre class="src src-elisp">(global-set-key (kbd "C-c c") 'calendar)
+<pre class="src src-elisp"><span class="org-rainbow-delimiters-depth-1">(</span>global-set-key <span class="org-rainbow-delimiters-depth-2">(</span>kbd <span class="org-string">"C-c c"</span><span class="org-rainbow-delimiters-depth-2">)</span> 'calendar<span class="org-rainbow-delimiters-depth-1">)</span>
</pre>
</div>
@@ -589,29 +594,29 @@ Fix some stuff for evil mode.
<div class="org-src-container">
-<pre class="src src-elisp">(with-eval-after-load "evil"
- (evil-set-initial-state 'calendar-mode 'normal)
- (evil-define-key 'normal calendar-mode-map
- "j" 'calendar-forward-week
- "k" 'calendar-backward-week
- "b" 'calendar-backward-day
- "h" 'calendar-backward-day
- "l" 'calendar-forward-day
- "w" 'calendar-forward-day
- "q" 'calendar-exit
- "\C-h" 'evil-window-left
- "\C-l" 'evil-window-right
- "\C-j" 'evil-window-down
- "\C-k" 'evil-window-up
- "\C-n" 'calendar-scroll-left-three-months
- "\C-p" 'calendar-scroll-right-three-months))
+<pre class="src src-elisp"><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">with-eval-after-load</span> <span class="org-string">"evil"</span>
+ <span class="org-rainbow-delimiters-depth-2">(</span>evil-set-initial-state 'calendar-mode 'normal<span class="org-rainbow-delimiters-depth-2">)</span>
+ <span class="org-rainbow-delimiters-depth-2">(</span><span class="org-keyword">evil-define-key</span> 'normal calendar-mode-map
+ <span class="org-string">"j"</span> 'calendar-forward-week
+ <span class="org-string">"k"</span> 'calendar-backward-week
+ <span class="org-string">"b"</span> 'calendar-backward-day
+ <span class="org-string">"h"</span> 'calendar-backward-day
+ <span class="org-string">"l"</span> 'calendar-forward-day
+ <span class="org-string">"w"</span> 'calendar-forward-day
+ <span class="org-string">"q"</span> 'calendar-exit
+ <span class="org-string">"\C-h"</span> 'evil-window-left
+ <span class="org-string">"\C-l"</span> 'evil-window-right
+ <span class="org-string">"\C-j"</span> 'evil-window-down
+ <span class="org-string">"\C-k"</span> 'evil-window-up
+ <span class="org-string">"\C-n"</span> 'calendar-scroll-left-three-months
+ <span class="org-string">"\C-p"</span> 'calendar-scroll-right-three-months<span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>
</pre>
</div>
</div>
</div>
<div id="outline-container-sec-5" class="outline-2">
-<h2 id="sec-5"><span class="section-number-2">5</span> General purpose defuns</h2>
+<h2 id="sec-5">General purpose defuns</h2>
<div class="outline-text-2" id="text-5">
<p>
I want to read the latest news. That's why I define a function that downloads
@@ -620,15 +625,15 @@ the <code>NEWS</code> file from the git server and then opens it in a buffer.
<div class="org-src-container">
-<pre class="src src-elisp">(defun mssola-view-emacs-latest-news ()
- "Allow users to fetch the latest Emacs' NEWS file."
- (interactive)
+<pre class="src src-elisp"><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">defun</span> <span class="org-function-name">mssola-view-emacs-latest-news</span> <span class="org-rainbow-delimiters-depth-2">()</span>
+ <span class="org-doc">"Allow users to fetch the latest Emacs' NEWS file."</span>
+ <span class="org-rainbow-delimiters-depth-2">(</span><span class="org-keyword">interactive</span><span class="org-rainbow-delimiters-depth-2">)</span>
- (url-copy-file
- "http://git.savannah.gnu.org/cgit/emacs.git/plain/etc/NEWS"
- "/tmp/emacs-news" t)
+ <span class="org-rainbow-delimiters-depth-2">(</span>url-copy-file
+ <span class="org-string">"http://git.savannah.gnu.org/cgit/emacs.git/plain/etc/NEWS"</span>
+ <span class="org-string">"/tmp/emacs-news"</span> t<span class="org-rainbow-delimiters-depth-2">)</span>
- (find-file-read-only "/tmp/emacs-news" t))
+ <span class="org-rainbow-delimiters-depth-2">(</span>find-file-read-only <span class="org-string">"/tmp/emacs-news"</span> t<span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>
</pre>
</div>
@@ -638,24 +643,24 @@ Sometimes I want to debug my initialization time.
<div class="org-src-container">
-<pre class="src src-elisp">(defun emacs-init-time ()
- "Redefine the `emacs-init-time' function so it is more detailed.
-Idea taken from @purcell."
+<pre class="src src-elisp"><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">defun</span> <span class="org-function-name">emacs-init-time</span> <span class="org-rainbow-delimiters-depth-2">()</span>
+ <span class="org-doc">"Redefine the `</span><span class="org-doc"><span class="org-constant">emacs-init-time</span></span><span class="org-doc">' function so it is more detailed.</span>
+<span class="org-doc">Idea taken from @purcell."</span>
- (interactive)
- (let ((init-time
- (float-time (time-subtract after-init-time before-init-time))))
- (message "%.3fs" init-time)))
+ <span class="org-rainbow-delimiters-depth-2">(</span><span class="org-keyword">interactive</span><span class="org-rainbow-delimiters-depth-2">)</span>
+ <span class="org-rainbow-delimiters-depth-2">(</span><span class="org-keyword">let</span> <span class="org-rainbow-delimiters-depth-3">(</span><span class="org-rainbow-delimiters-depth-4">(</span>init-time
+ <span class="org-rainbow-delimiters-depth-5">(</span>float-time <span class="org-rainbow-delimiters-depth-6">(</span>time-subtract after-init-time before-init-time<span class="org-rainbow-delimiters-depth-6">)</span><span class="org-rainbow-delimiters-depth-5">)</span><span class="org-rainbow-delimiters-depth-4">)</span><span class="org-rainbow-delimiters-depth-3">)</span>
+ <span class="org-rainbow-delimiters-depth-3">(</span>message <span class="org-string">"%.3fs"</span> init-time<span class="org-rainbow-delimiters-depth-3">)</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>
</pre>
</div>
</div>
</div>
<div id="outline-container-sec-6" class="outline-2">
-<h2 id="sec-6"><span class="section-number-2">6</span> Lisp packages</h2>
+<h2 id="sec-6">Lisp packages</h2>
<div class="outline-text-2" id="text-6">
</div><div id="outline-container-sec-6-1" class="outline-3">
-<h3 id="sec-6-1"><span class="section-number-3">6.1</span> Custom packages</h3>
+<h3 id="sec-6-1">Custom packages</h3>
<div class="outline-text-3" id="text-6-1">
<p>
Compile the <code>g.el</code> script and bind it to <kbd>M-g</kbd>.
@@ -663,15 +668,15 @@ Compile the <code>g.el</code> script and bind it to <kbd>M-g</kbd>.
<div class="org-src-container">
-<pre class="src src-elisp">(byte-compile-file (concat user-emacs-directory "lisp/g.el") t)
-(global-set-key (kbd "M-g") 'g)
+<pre class="src src-elisp"><span class="org-rainbow-delimiters-depth-1">(</span>byte-compile-file <span class="org-rainbow-delimiters-depth-2">(</span>concat user-emacs-directory <span class="org-string">"lisp/g.el"</span><span class="org-rainbow-delimiters-depth-2">)</span> t<span class="org-rainbow-delimiters-depth-1">)</span>
+<span class="org-rainbow-delimiters-depth-1">(</span>global-set-key <span class="org-rainbow-delimiters-depth-2">(</span>kbd <span class="org-string">"M-g"</span><span class="org-rainbow-delimiters-depth-2">)</span> 'g<span class="org-rainbow-delimiters-depth-1">)</span>
</pre>
</div>
</div>
</div>
<div id="outline-container-sec-6-2" class="outline-3">
-<h3 id="sec-6-2"><span class="section-number-3">6.2</span> use-package</h3>
+<h3 id="sec-6-2">use-package</h3>
<div class="outline-text-3" id="text-6-2">
<p>
Initialize package.
@@ -679,14 +684,14 @@ Initialize package.
<div class="org-src-container">
-<pre class="src src-elisp">(require 'package)
+<pre class="src src-elisp"><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">require</span> '<span class="org-constant">package</span><span class="org-rainbow-delimiters-depth-1">)</span>
-(add-to-list 'package-archives
- '("melpa" . "http://melpa.milkbox.net/packages/") t)
-(add-to-list 'package-archives
- '("melpa-stable" . "https://stable.melpa.org/packages/") t)
+<span class="org-rainbow-delimiters-depth-1">(</span>add-to-list 'package-archives
+ '<span class="org-rainbow-delimiters-depth-2">(</span><span class="org-string">"melpa"</span> . <span class="org-string">"http://melpa.milkbox.net/packages/"</span><span class="org-rainbow-delimiters-depth-2">)</span> t<span class="org-rainbow-delimiters-depth-1">)</span>
+<span class="org-rainbow-delimiters-depth-1">(</span>add-to-list 'package-archives
+ '<span class="org-rainbow-delimiters-depth-2">(</span><span class="org-string">"melpa-stable"</span> . <span class="org-string">"https://stable.melpa.org/packages/"</span><span class="org-rainbow-delimiters-depth-2">)</span> t<span class="org-rainbow-delimiters-depth-1">)</span>
-(package-initialize)
+<span class="org-rainbow-delimiters-depth-1">(</span>package-initialize<span class="org-rainbow-delimiters-depth-1">)</span>
</pre>
</div>
@@ -699,9 +704,9 @@ package-install, I decided on use-package because I feel more well-organized.
<div class="org-src-container">
-<pre class="src src-elisp">(unless (package-installed-p 'use-package)
- (package-refresh-contents)
- (package-install 'use-package))
+<pre class="src src-elisp"><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">unless</span> <span class="org-rainbow-delimiters-depth-2">(</span>package-installed-p 'use-package<span class="org-rainbow-delimiters-depth-2">)</span>
+ <span class="org-rainbow-delimiters-depth-2">(</span>package-refresh-contents<span class="org-rainbow-delimiters-depth-2">)</span>
+ <span class="org-rainbow-delimiters-depth-2">(</span>package-install 'use-package<span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>
</pre>
</div>
</div>
@@ -709,7 +714,7 @@ package-install, I decided on use-package because I feel more well-organized.
</div>
<div id="outline-container-sec-7" class="outline-2">
-<h2 id="sec-7"><span class="section-number-2">7</span> Project</h2>
+<h2 id="sec-7">Project</h2>
<div class="outline-text-2" id="text-7">
<p>
First of all, load the silver searcher, which is a convenient and fast searcher.
@@ -718,19 +723,19 @@ Ayo silver!
<div class="org-src-container">
-<pre class="src src-elisp">(use-package ag
- :ensure t
- :config
+<pre class="src src-elisp"><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">use-package</span> <span class="org-constant">ag</span>
+ <span class="org-builtin">:ensure</span> t
+ <span class="org-builtin">:config</span>
- ; Avoid some disagreements between ag and evil.
- (with-eval-after-load 'evil
- (add-hook 'ag-mode-hook
- (lambda ()
- (define-key ag-mode-map (kbd "n") 'evil-search-next)
- (define-key ag-mode-map (kbd "N") 'evil-search-previous)
- (define-key ag-mode-map (kbd "gg") 'evil-goto-first-line))))
- (setq ag-reuse-buffers t)
- (setq ag-reuse-window t))
+ <span class="org-comment-delimiter">; </span><span class="org-comment">Avoid some disagreements between ag and evil.</span>
+ <span class="org-rainbow-delimiters-depth-2">(</span><span class="org-keyword">with-eval-after-load</span> 'evil
+ <span class="org-rainbow-delimiters-depth-3">(</span>add-hook 'ag-mode-hook
+ <span class="org-rainbow-delimiters-depth-4">(</span><span class="org-keyword">lambda</span> <span class="org-rainbow-delimiters-depth-5">()</span>
+ <span class="org-rainbow-delimiters-depth-5">(</span>define-key ag-mode-map <span class="org-rainbow-delimiters-depth-6">(</span>kbd <span class="org-string">"n"</span><span class="org-rainbow-delimiters-depth-6">)</span> 'evil-search-next<span class="org-rainbow-delimiters-depth-5">)</span>
+ <span class="org-rainbow-delimiters-depth-5">(</span>define-key ag-mode-map <span class="org-rainbow-delimiters-depth-6">(</span>kbd <span class="org-string">"N"</span><span class="org-rainbow-delimiters-depth-6">)</span> 'evil-search-previous<span class="org-rainbow-delimiters-depth-5">)</span>
+ <span class="org-rainbow-delimiters-depth-5">(</span>define-key ag-mode-map <span class="org-rainbow-delimiters-depth-6">(</span>kbd <span class="org-string">"gg"</span><span class="org-rainbow-delimiters-depth-6">)</span> 'evil-goto-first-line<span class="org-rainbow-delimiters-depth-5">)</span><span class="org-rainbow-delimiters-depth-4">)</span><span class="org-rainbow-delimiters-depth-3">)</span><span class="org-rainbow-delimiters-depth-2">)</span>
+ <span class="org-rainbow-delimiters-depth-2">(</span><span class="org-keyword">setq</span> ag-reuse-buffers t<span class="org-rainbow-delimiters-depth-2">)</span>
+ <span class="org-rainbow-delimiters-depth-2">(</span><span class="org-keyword">setq</span> ag-reuse-window t<span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>
</pre>
</div>
@@ -740,52 +745,52 @@ Then, for keeping up with my projects I use the Projectile + Helm combination.
<div class="org-src-container">
-<pre class="src src-elisp">(use-package projectile
- :ensure t
- :config
- (projectile-mode 1)
- (setq projectile-mode-line
- '(:eval (format " %s" (projectile-project-name)))))
+<pre class="src src-elisp"><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">use-package</span> <span class="org-constant">projectile</span>
+ <span class="org-builtin">:ensure</span> t
+ <span class="org-builtin">:config</span>
+ <span class="org-rainbow-delimiters-depth-2">(</span>projectile-mode 1<span class="org-rainbow-delimiters-depth-2">)</span>
+ <span class="org-rainbow-delimiters-depth-2">(</span><span class="org-keyword">setq</span> projectile-mode-line
+ '<span class="org-rainbow-delimiters-depth-3">(</span><span class="org-builtin">:eval</span> <span class="org-rainbow-delimiters-depth-4">(</span>format <span class="org-string">" %s"</span> <span class="org-rainbow-delimiters-depth-5">(</span>projectile-project-name<span class="org-rainbow-delimiters-depth-5">)</span><span class="org-rainbow-delimiters-depth-4">)</span><span class="org-rainbow-delimiters-depth-3">)</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>
-(use-package helm
- :ensure t
- :config
- (setq projectile-completion-system 'helm)
+<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">use-package</span> <span class="org-constant">helm</span>
+ <span class="org-builtin">:ensure</span> t
+ <span class="org-builtin">:config</span>
+ <span class="org-rainbow-delimiters-depth-2">(</span><span class="org-keyword">setq</span> projectile-completion-system 'helm<span class="org-rainbow-delimiters-depth-2">)</span>
- ; Allow the search pattern to be on the header. Taken from this Reddit thread:
- ; https://www.reddit.com/r/emacs/comments/3asbyn/new_and_very_useful_helm_feature_enter_search/
- (setq helm-echo-input-in-header-line t)
+ <span class="org-comment-delimiter">; </span><span class="org-comment">Allow the search pattern to be on the header. Taken from this Reddit thread:</span>
+ <span class="org-comment-delimiter">; </span><span class="org-comment">https://www.reddit.com/r/emacs/comments/3asbyn/new_and_very_useful_helm_feature_enter_search/</span>
+ <span class="org-rainbow-delimiters-depth-2">(</span><span class="org-keyword">setq</span> helm-echo-input-in-header-line t<span class="org-rainbow-delimiters-depth-2">)</span>
- (defun helm-hide-minibuffer-maybe ()
- "Hide the minibuffer if we are in a Helm session"
+ <span class="org-rainbow-delimiters-depth-2">(</span><span class="org-keyword">defun</span> <span class="org-function-name">helm-hide-minibuffer-maybe</span> <span class="org-rainbow-delimiters-depth-3">()</span>
+ <span class="org-doc">"Hide the minibuffer if we are in a Helm session"</span>
- (when (with-helm-buffer helm-echo-input-in-header-line)
- (let ((ov (make-overlay (point-min) (point-max) nil nil t)))
- (overlay-put ov 'window (selected-window))
- (overlay-put ov 'face (let ((bg-color (face-background 'default nil)))
- `(:background ,bg-color :foreground ,bg-color)))
- (setq-local cursor-type nil))))
+ <span class="org-rainbow-delimiters-depth-3">(</span><span class="org-keyword">when</span> <span class="org-rainbow-delimiters-depth-4">(</span><span class="org-keyword">with-helm-buffer</span> helm-echo-input-in-header-line<span class="org-rainbow-delimiters-depth-4">)</span>
+ <span class="org-rainbow-delimiters-depth-4">(</span><span class="org-keyword">let</span> <span class="org-rainbow-delimiters-depth-5">(</span><span class="org-rainbow-delimiters-depth-6">(</span>ov <span class="org-rainbow-delimiters-depth-7">(</span>make-overlay <span class="org-rainbow-delimiters-depth-8">(</span>point-min<span class="org-rainbow-delimiters-depth-8">)</span> <span class="org-rainbow-delimiters-depth-8">(</span>point-max<span class="org-rainbow-delimiters-depth-8">)</span> nil nil t<span class="org-rainbow-delimiters-depth-7">)</span><span class="org-rainbow-delimiters-depth-6">)</span><span class="org-rainbow-delimiters-depth-5">)</span>
+ <span class="org-rainbow-delimiters-depth-5">(</span>overlay-put ov 'window <span class="org-rainbow-delimiters-depth-6">(</span>selected-window<span class="org-rainbow-delimiters-depth-6">)</span><span class="org-rainbow-delimiters-depth-5">)</span>
+ <span class="org-rainbow-delimiters-depth-5">(</span>overlay-put ov 'face <span class="org-rainbow-delimiters-depth-6">(</span><span class="org-keyword">let</span> <span class="org-rainbow-delimiters-depth-7">(</span><span class="org-rainbow-delimiters-depth-8">(</span>bg-color <span class="org-rainbow-delimiters-depth-9">(</span>face-background 'default nil<span class="org-rainbow-delimiters-depth-9">)</span><span class="org-rainbow-delimiters-depth-8">)</span><span class="org-rainbow-delimiters-depth-7">)</span>
+ `<span class="org-rainbow-delimiters-depth-7">(</span><span class="org-builtin">:background</span> ,bg-color <span class="org-builtin">:foreground</span> ,bg-color<span class="org-rainbow-delimiters-depth-7">)</span><span class="org-rainbow-delimiters-depth-6">)</span><span class="org-rainbow-delimiters-depth-5">)</span>
+ <span class="org-rainbow-delimiters-depth-5">(</span><span class="org-keyword">setq-local</span> cursor-type nil<span class="org-rainbow-delimiters-depth-5">)</span><span class="org-rainbow-delimiters-depth-4">)</span><span class="org-rainbow-delimiters-depth-3">)</span><span class="org-rainbow-delimiters-depth-2">)</span>
- (add-hook 'helm-minibuffer-set-up-hook 'helm-hide-minibuffer-maybe)
- (setq helm-split-window-in-side-p t)
+ <span class="org-rainbow-delimiters-depth-2">(</span>add-hook 'helm-minibuffer-set-up-hook 'helm-hide-minibuffer-maybe<span class="org-rainbow-delimiters-depth-2">)</span>
+ <span class="org-rainbow-delimiters-depth-2">(</span><span class="org-keyword">setq</span> helm-split-window-in-side-p t<span class="org-rainbow-delimiters-depth-2">)</span>
- ; Preview files with tab
- (define-key helm-map (kbd "&lt;tab&gt;") 'helm-execute-persistent-action)
+ <span class="org-comment-delimiter">; </span><span class="org-comment">Preview files with tab</span>
+ <span class="org-rainbow-delimiters-depth-2">(</span>define-key helm-map <span class="org-rainbow-delimiters-depth-3">(</span>kbd <span class="org-string">"&lt;tab&gt;"</span><span class="org-rainbow-delimiters-depth-3">)</span> 'helm-execute-persistent-action<span class="org-rainbow-delimiters-depth-2">)</span>
- ; Show available options
- (define-key helm-map (kbd "C-a") 'helm-select-action)
+ <span class="org-comment-delimiter">; </span><span class="org-comment">Show available options</span>
+ <span class="org-rainbow-delimiters-depth-2">(</span>define-key helm-map <span class="org-rainbow-delimiters-depth-3">(</span>kbd <span class="org-string">"C-a"</span><span class="org-rainbow-delimiters-depth-3">)</span> 'helm-select-action<span class="org-rainbow-delimiters-depth-2">)</span>
- ; Some vim-like bindings
- (define-key helm-map (kbd "C-j") 'helm-next-line)
- (define-key helm-map (kbd "C-k") 'helm-previous-line)
+ <span class="org-comment-delimiter">; </span><span class="org-comment">Some vim-like bindings</span>
+ <span class="org-rainbow-delimiters-depth-2">(</span>define-key helm-map <span class="org-rainbow-delimiters-depth-3">(</span>kbd <span class="org-string">"C-j"</span><span class="org-rainbow-delimiters-depth-3">)</span> 'helm-next-line<span class="org-rainbow-delimiters-depth-2">)</span>
+ <span class="org-rainbow-delimiters-depth-2">(</span>define-key helm-map <span class="org-rainbow-delimiters-depth-3">(</span>kbd <span class="org-string">"C-k"</span><span class="org-rainbow-delimiters-depth-3">)</span> 'helm-previous-line<span class="org-rainbow-delimiters-depth-2">)</span>
- (use-package helm-ag
- :ensure t))
+ <span class="org-rainbow-delimiters-depth-2">(</span><span class="org-keyword">use-package</span> <span class="org-constant">helm-ag</span>
+ <span class="org-builtin">:ensure</span> t<span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>
-(use-package helm-projectile
- :ensure t
- :config
- (helm-projectile-on))
+<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">use-package</span> <span class="org-constant">helm-projectile</span>
+ <span class="org-builtin">:ensure</span> t
+ <span class="org-builtin">:config</span>
+ <span class="org-rainbow-delimiters-depth-2">(</span>helm-projectile-on<span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>
</pre>
</div>
@@ -796,18 +801,18 @@ Finally, I've added a couple of bindings in evil mode. First of all, I want
<div class="org-src-container">
-<pre class="src src-elisp">(defun mssola-find-file ()
- "Call the proper Helm function for finding files."
+<pre class="src src-elisp"><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">defun</span> <span class="org-function-name">mssola-find-file</span> <span class="org-rainbow-delimiters-depth-2">()</span>
+ <span class="org-doc">"Call the proper Helm function for finding files."</span>
- (interactive)
+ <span class="org-rainbow-delimiters-depth-2">(</span><span class="org-keyword">interactive</span><span class="org-rainbow-delimiters-depth-2">)</span>
- (condition-case nil
- (helm-projectile-find-file)
- (error
- (helm-find-files nil))))
+ <span class="org-rainbow-delimiters-depth-2">(</span><span class="org-keyword">condition-case</span> nil
+ <span class="org-rainbow-delimiters-depth-3">(</span>helm-projectile-find-file<span class="org-rainbow-delimiters-depth-3">)</span>
+ <span class="org-rainbow-delimiters-depth-3">(</span><span class="org-warning">error</span>
+ <span class="org-rainbow-delimiters-depth-4">(</span>helm-find-files nil<span class="org-rainbow-delimiters-depth-4">)</span><span class="org-rainbow-delimiters-depth-3">)</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>
-(with-eval-after-load 'evil
- (define-key evil-normal-state-map (kbd "C-p") 'mssola-find-file))
+<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">with-eval-after-load</span> 'evil
+ <span class="org-rainbow-delimiters-depth-2">(</span>define-key evil-normal-state-map <span class="org-rainbow-delimiters-depth-3">(</span>kbd <span class="org-string">"C-p"</span><span class="org-rainbow-delimiters-depth-3">)</span> 'mssola-find-file<span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>
</pre>
</div>
@@ -818,24 +823,24 @@ binding to <kbd>,a</kbd> a function that calls to the proper function.
<div class="org-src-container">
-<pre class="src src-elisp">(defun mssola-helm-ag ()
- "Call the right ag command for helm-ag."
+<pre class="src src-elisp"><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">defun</span> <span class="org-function-name">mssola-helm-ag</span> <span class="org-rainbow-delimiters-depth-2">()</span>
+ <span class="org-doc">"Call the right ag command for helm-ag."</span>
- (interactive)
+ <span class="org-rainbow-delimiters-depth-2">(</span><span class="org-keyword">interactive</span><span class="org-rainbow-delimiters-depth-2">)</span>
- (condition-case nil
- (helm-ag-project-root)
- (error (helm-ag))))
+ <span class="org-rainbow-delimiters-depth-2">(</span><span class="org-keyword">condition-case</span> nil
+ <span class="org-rainbow-delimiters-depth-3">(</span>helm-ag-project-root<span class="org-rainbow-delimiters-depth-3">)</span>
+ <span class="org-rainbow-delimiters-depth-3">(</span><span class="org-warning">error</span> <span class="org-rainbow-delimiters-depth-4">(</span>helm-ag<span class="org-rainbow-delimiters-depth-4">)</span><span class="org-rainbow-delimiters-depth-3">)</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>
-(with-eval-after-load 'evil-leader
- (evil-leader/set-key "a" 'mssola-helm-ag))
+<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">with-eval-after-load</span> 'evil-leader
+ <span class="org-rainbow-delimiters-depth-2">(</span>evil-leader/set-key <span class="org-string">"a"</span> 'mssola-helm-ag<span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>
</pre>
</div>
</div>
</div>
<div id="outline-container-sec-8" class="outline-2">
-<h2 id="sec-8"><span class="section-number-2">8</span> Edit</h2>
+<h2 id="sec-8">Edit</h2>
<div class="outline-text-2" id="text-8">
<p>
In this section I define some useful packages for editing. First of all, one of
@@ -847,14 +852,14 @@ recent versions of GNU Emacs.
<div class="org-src-container">
-<pre class="src src-elisp">(with-eval-after-load 'undo-tree
- (global-undo-tree-mode 1)
- (setq undo-tree-visualizer-diff t
+<pre class="src src-elisp"><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">with-eval-after-load</span> 'undo-tree
+ <span class="org-rainbow-delimiters-depth-2">(</span>global-undo-tree-mode 1<span class="org-rainbow-delimiters-depth-2">)</span>
+ <span class="org-rainbow-delimiters-depth-2">(</span><span class="org-keyword">setq</span> undo-tree-visualizer-diff t
undo-tree-visualizer-timestamps t
- undo-tree-visualizer-relative-timestamps t)
- (with-eval-after-load 'evil-leader
- (evil-leader/set-key
- "u" 'undo-tree-visualize)))
+ undo-tree-visualizer-relative-timestamps t<span class="org-rainbow-delimiters-depth-2">)</span>
+ <span class="org-rainbow-delimiters-depth-2">(</span><span class="org-keyword">with-eval-after-load</span> 'evil-leader
+ <span class="org-rainbow-delimiters-depth-3">(</span>evil-leader/set-key
+ <span class="org-string">"u"</span> 'undo-tree-visualize<span class="org-rainbow-delimiters-depth-3">)</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>
</pre>
</div>
@@ -865,20 +870,20 @@ extension. This works with lots of languages with proper glue code.
<div class="org-src-container">
-<pre class="src src-elisp">(use-package let-alist
- :ensure t)
+<pre class="src src-elisp"><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">use-package</span> <span class="org-constant">let-alist</span>
+ <span class="org-builtin">:ensure</span> t<span class="org-rainbow-delimiters-depth-1">)</span>
-(use-package flycheck
- :ensure t
- :config
- (add-hook 'after-init-hook 'global-flycheck-mode)
+<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">use-package</span> <span class="org-constant">flycheck</span>
+ <span class="org-builtin">:ensure</span> t
+ <span class="org-builtin">:config</span>
+ <span class="org-rainbow-delimiters-depth-2">(</span>add-hook 'after-init-hook 'global-flycheck-mode<span class="org-rainbow-delimiters-depth-2">)</span>
- ;; Only show the errors buffer if it isn't there and if I'm saving the
- ;; buffer.
- (setq flycheck-emacs-lisp-load-path 'inherit)
- (setq flycheck-check-syntax-automatically '(mode-enabled save))
- (setq flycheck-display-errors-function
- #'flycheck-display-error-messages-unless-error-list))
+ <span class="org-comment-delimiter">;; </span><span class="org-comment">Only show the errors buffer if it isn't there and if I'm saving the</span>
+ <span class="org-comment-delimiter">;; </span><span class="org-comment">buffer.</span>
+ <span class="org-rainbow-delimiters-depth-2">(</span><span class="org-keyword">setq</span> flycheck-emacs-lisp-load-path 'inherit<span class="org-rainbow-delimiters-depth-2">)</span>
+ <span class="org-rainbow-delimiters-depth-2">(</span><span class="org-keyword">setq</span> flycheck-check-syntax-automatically '<span class="org-rainbow-delimiters-depth-3">(</span>mode-enabled save<span class="org-rainbow-delimiters-depth-3">)</span><span class="org-rainbow-delimiters-depth-2">)</span>
+ <span class="org-rainbow-delimiters-depth-2">(</span><span class="org-keyword">setq</span> flycheck-display-errors-function
+ #'flycheck-display-error-messages-unless-error-list<span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>
</pre>
</div>
@@ -890,11 +895,11 @@ with your editor, you have to increase/decrease the fonts. I use the
<div class="org-src-container">
-<pre class="src src-elisp">(use-package default-text-scale
- :ensure t
- :config
- (global-set-key (kbd "C-+") 'default-text-scale-increase)
- (global-set-key (kbd "C--") 'default-text-scale-decrease))
+<pre class="src src-elisp"><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">use-package</span> <span class="org-constant">default-text-scale</span>
+ <span class="org-builtin">:ensure</span> t
+ <span class="org-builtin">:config</span>
+ <span class="org-rainbow-delimiters-depth-2">(</span>global-set-key <span class="org-rainbow-delimiters-depth-3">(</span>kbd <span class="org-string">"C-+"</span><span class="org-rainbow-delimiters-depth-3">)</span> 'default-text-scale-increase<span class="org-rainbow-delimiters-depth-2">)</span>
+ <span class="org-rainbow-delimiters-depth-2">(</span>global-set-key <span class="org-rainbow-delimiters-depth-3">(</span>kbd <span class="org-string">"C--"</span><span class="org-rainbow-delimiters-depth-3">)</span> 'default-text-scale-decrease<span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>
</pre>
</div>
@@ -907,8 +912,8 @@ supports it).
<div class="org-src-container">
-<pre class="src src-elisp">(use-package rainbow-delimiters
- :ensure t)
+<pre class="src src-elisp"><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">use-package</span> <span class="org-constant">rainbow-delimiters</span>
+ <span class="org-builtin">:ensure</span> t<span class="org-rainbow-delimiters-depth-1">)</span>
</pre>
</div>
@@ -918,10 +923,10 @@ I never use the mouse.
<div class="org-src-container">
-<pre class="src src-elisp">(use-package disable-mouse
- :ensure t
- :config
- (global-disable-mouse-mode))
+<pre class="src src-elisp"><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">use-package</span> <span class="org-constant">disable-mouse</span>
+ <span class="org-builtin">:ensure</span> t
+ <span class="org-builtin">:config</span>
+ <span class="org-rainbow-delimiters-depth-2">(</span>global-disable-mouse-mode<span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>
</pre>
</div>
@@ -933,8 +938,8 @@ commands for the current chord as a list.
<div class="org-src-container">
-<pre class="src src-elisp">(use-package which-key
- :ensure t)
+<pre class="src src-elisp"><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">use-package</span> <span class="org-constant">which-key</span>
+ <span class="org-builtin">:ensure</span> t<span class="org-rainbow-delimiters-depth-1">)</span>
</pre>
</div>
@@ -945,8 +950,8 @@ this, we have <code>wc-mode</code>.
<div class="org-src-container">
-<pre class="src src-elisp">(use-package wc-mode
- :ensure t)
+<pre class="src src-elisp"><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">use-package</span> <span class="org-constant">wc-mode</span>
+ <span class="org-builtin">:ensure</span> t<span class="org-rainbow-delimiters-depth-1">)</span>
</pre>
</div>
@@ -957,8 +962,8 @@ that often, but it's cool to have a distraction-free screen from time to time.
<div class="org-src-container">
-<pre class="src src-elisp">(use-package writeroom-mode
- :ensure t)
+<pre class="src src-elisp"><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">use-package</span> <span class="org-constant">writeroom-mode</span>
+ <span class="org-builtin">:ensure</span> t<span class="org-rainbow-delimiters-depth-1">)</span>
</pre>
</div>
@@ -970,35 +975,35 @@ covers most of my uses, it's convenient to have this tool anyways.
<div class="org-src-container">
-<pre class="src src-elisp">(use-package expand-region
- :ensure t
- :config
+<pre class="src src-elisp"><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">use-package</span> <span class="org-constant">expand-region</span>
+ <span class="org-builtin">:ensure</span> t
+ <span class="org-builtin">:config</span>
- ; Set C-e as the expand command (mnemonic: expand). This command will
- ; supercede the evil binding for "move one line", which I never use anyways.
- (global-set-key (kbd "\C-e") 'er/expand-region)
- (with-eval-after-load 'evil
- (define-key evil-normal-state-map (kbd "\C-e") 'er/expand-region)
- (define-key evil-visual-state-map (kbd "\C-e") 'er/expand-region)))
+ <span class="org-comment-delimiter">; </span><span class="org-comment">Set C-e as the expand command (mnemonic: expand). This command will</span>
+ <span class="org-comment-delimiter">; </span><span class="org-comment">supercede the evil binding for "move one line", which I never use anyways.</span>
+ <span class="org-rainbow-delimiters-depth-2">(</span>global-set-key <span class="org-rainbow-delimiters-depth-3">(</span>kbd <span class="org-string">"\C-e"</span><span class="org-rainbow-delimiters-depth-3">)</span> 'er/expand-region<span class="org-rainbow-delimiters-depth-2">)</span>
+ <span class="org-rainbow-delimiters-depth-2">(</span><span class="org-keyword">with-eval-after-load</span> 'evil
+ <span class="org-rainbow-delimiters-depth-3">(</span>define-key evil-normal-state-map <span class="org-rainbow-delimiters-depth-4">(</span>kbd <span class="org-string">"\C-e"</span><span class="org-rainbow-delimiters-depth-4">)</span> 'er/expand-region<span class="org-rainbow-delimiters-depth-3">)</span>
+ <span class="org-rainbow-delimiters-depth-3">(</span>define-key evil-visual-state-map <span class="org-rainbow-delimiters-depth-4">(</span>kbd <span class="org-string">"\C-e"</span><span class="org-rainbow-delimiters-depth-4">)</span> 'er/expand-region<span class="org-rainbow-delimiters-depth-3">)</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>
-(defun er/add-text-mode-expansions ()
- "This way we can also expand the region into paragraphs &amp; pages in text mode.
-Directly taken from: https://github.com/magnars/expand-region.el."
+<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">defun</span> <span class="org-function-name">er/add-text-mode-expansions</span> <span class="org-rainbow-delimiters-depth-2">()</span>
+ <span class="org-doc">"This way we can also expand the region into paragraphs &amp; pages in text mode.</span>
+<span class="org-doc">Directly taken from: https://github.com/magnars/expand-region.el."</span>
- (make-variable-buffer-local 'er/try-expand-list)
- (setq er/try-expand-list (append
+ <span class="org-rainbow-delimiters-depth-2">(</span>make-variable-buffer-local 'er/try-expand-list<span class="org-rainbow-delimiters-depth-2">)</span>
+ <span class="org-rainbow-delimiters-depth-2">(</span><span class="org-keyword">setq</span> er/try-expand-list <span class="org-rainbow-delimiters-depth-3">(</span>append
er/try-expand-list
- '(mark-paragraph
- mark-page))))
+ '<span class="org-rainbow-delimiters-depth-4">(</span>mark-paragraph
+ mark-page<span class="org-rainbow-delimiters-depth-4">)</span><span class="org-rainbow-delimiters-depth-3">)</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>
-(add-hook 'text-mode-hook 'er/add-text-mode-expansions)
+<span class="org-rainbow-delimiters-depth-1">(</span>add-hook 'text-mode-hook 'er/add-text-mode-expansions<span class="org-rainbow-delimiters-depth-1">)</span>
</pre>
</div>
</div>
</div>
<div id="outline-container-sec-9" class="outline-2">
-<h2 id="sec-9"><span class="section-number-2">9</span> Dired</h2>
+<h2 id="sec-9">Dired</h2>
<div class="outline-text-2" id="text-9">
<p>
I use dired mode mainly for attaching document into emails. That being said,
@@ -1007,9 +1012,9 @@ whenever I use it, I want basic evil movement.
<div class="org-src-container">
-<pre class="src src-elisp">(with-eval-after-load 'evil
- (evil-add-hjkl-bindings dired-mode-map 'normal
- (kbd "w") 'evil-forward-word-begin))
+<pre class="src src-elisp"><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">with-eval-after-load</span> 'evil
+ <span class="org-rainbow-delimiters-depth-2">(</span><span class="org-keyword">evil-add-hjkl-bindings</span> dired-mode-map 'normal
+ <span class="org-rainbow-delimiters-depth-3">(</span>kbd <span class="org-string">"w"</span><span class="org-rainbow-delimiters-depth-3">)</span> 'evil-forward-word-begin<span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>
</pre>
</div>
@@ -1021,31 +1026,31 @@ from the <a href="https://www.djcbsoftware.nl/code/mu/mu4e/Dired.html#Dired">mu4
<div class="org-src-container">
-<pre class="src src-elisp">(require 'gnus-dired)
+<pre class="src src-elisp"><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">require</span> '<span class="org-constant">gnus-dired</span><span class="org-rainbow-delimiters-depth-1">)</span>
-;; Make the `gnus-dired-mail-buffers' function also work on message-mode derived
-;; modes, such as mu4e-compose-mode.
-(defun gnus-dired-mail-buffers ()
- "Return a list of active message buffers."
+<span class="org-comment-delimiter">;; </span><span class="org-comment">Make the `</span><span class="org-comment"><span class="org-constant">gnus-dired-mail-buffers</span></span><span class="org-comment">' function also work on message-mode derived</span>
+<span class="org-comment-delimiter">;; </span><span class="org-comment">modes, such as mu4e-compose-mode.</span>
+<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">defun</span> <span class="org-function-name">gnus-dired-mail-buffers</span> <span class="org-rainbow-delimiters-depth-2">()</span>
+ <span class="org-doc">"Return a list of active message buffers."</span>
- (let (buffers)
- (save-current-buffer
- (dolist (buffer (buffer-list t))
- (set-buffer buffer)
- (when (and (derived-mode-p 'message-mode)
- (null message-sent-message-via))
- (push (buffer-name buffer) buffers))))
- (nreverse buffers)))
+ <span class="org-rainbow-delimiters-depth-2">(</span><span class="org-keyword">let</span> <span class="org-rainbow-delimiters-depth-3">(</span>buffers<span class="org-rainbow-delimiters-depth-3">)</span>
+ <span class="org-rainbow-delimiters-depth-3">(</span><span class="org-keyword">save-current-buffer</span>
+ <span class="org-rainbow-delimiters-depth-4">(</span><span class="org-keyword">dolist</span> <span class="org-rainbow-delimiters-depth-5">(</span>buffer <span class="org-rainbow-delimiters-depth-6">(</span>buffer-list t<span class="org-rainbow-delimiters-depth-6">)</span><span class="org-rainbow-delimiters-depth-5">)</span>
+ <span class="org-rainbow-delimiters-depth-5">(</span>set-buffer buffer<span class="org-rainbow-delimiters-depth-5">)</span>
+ <span class="org-rainbow-delimiters-depth-5">(</span><span class="org-keyword">when</span> <span class="org-rainbow-delimiters-depth-6">(</span><span class="org-keyword">and</span> <span class="org-rainbow-delimiters-depth-7">(</span>derived-mode-p 'message-mode<span class="org-rainbow-delimiters-depth-7">)</span>
+ <span class="org-rainbow-delimiters-depth-7">(</span>null message-sent-message-via<span class="org-rainbow-delimiters-depth-7">)</span><span class="org-rainbow-delimiters-depth-6">)</span>
+ <span class="org-rainbow-delimiters-depth-6">(</span><span class="org-keyword">push</span> <span class="org-rainbow-delimiters-depth-7">(</span>buffer-name buffer<span class="org-rainbow-delimiters-depth-7">)</span> buffers<span class="org-rainbow-delimiters-depth-6">)</span><span class="org-rainbow-delimiters-depth-5">)</span><span class="org-rainbow-delimiters-depth-4">)</span><span class="org-rainbow-delimiters-depth-3">)</span>
+ <span class="org-rainbow-delimiters-depth-3">(</span>nreverse buffers<span class="org-rainbow-delimiters-depth-3">)</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>
-(setq gnus-dired-mail-mode 'mu4e-user-agent)
-(add-hook 'dired-mode-hook 'turn-on-gnus-dired-mode)
+<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">setq</span> gnus-dired-mail-mode 'mu4e-user-agent<span class="org-rainbow-delimiters-depth-1">)</span>
+<span class="org-rainbow-delimiters-depth-1">(</span>add-hook 'dired-mode-hook 'turn-on-gnus-dired-mode<span class="org-rainbow-delimiters-depth-1">)</span>
</pre>
</div>
</div>
</div>
<div id="outline-container-sec-10" class="outline-2">
-<h2 id="sec-10"><span class="section-number-2">10</span> Evil</h2>
+<h2 id="sec-10">Evil</h2>
<div class="outline-text-2" id="text-10">
<p>
Forgive me, <a href="https://stallman.org/saint.html">Father</a>, for I have sinned. I've been exposed to modal editing
@@ -1057,144 +1062,144 @@ Evil extensions.
<div class="org-src-container">
-<pre class="src src-elisp">(defun mssola-evil ()
- "Configure evil mode."
-
- ; We can safely remap &lt;C-u&gt; because the counting will be handled a-la Vim.
- (define-key evil-normal-state-map (kbd "C-u") 'evil-scroll-up)
-
- ; Make window navigation easier.
- (define-key evil-normal-state-map (kbd "C-j") 'evil-window-down)
- (define-key evil-normal-state-map (kbd "C-k") 'evil-window-up)
- (define-key evil-normal-state-map (kbd "C-l") 'evil-window-right)
- (define-key evil-normal-state-map (kbd "C-h") 'evil-window-left)
-
- ; The window navigation tweaks effectively wipe out the help prefix, which
- ; is bad. Fortunately we can workaround this by providing "M-h" as the new
- ; help prefix. This prefix is only used in emacs mode to mark lines, which is
- ; something already handled by Evil.
- (define-key global-map (kbd "M-h") 'help-command)
- (fset 'help-command help-map)
-
- ; Helm + Projectile shortcuts.
- (with-eval-after-load 'helm-projectile
- (define-key evil-normal-state-map (kbd "M-p")
- 'helm-projectile-switch-project))
-
- ; I use the Super key in combination with j &amp; k to move around i3. Let's unset
- ; M- combos for these two fellows for whenever I misstype them.
- (global-unset-key (kbd "M-j"))
- (global-unset-key (kbd "M-k"))
-
- ; both this function and the subsequent lines about [escape] are taken from
- ; @aaronbieber configuration.
- (defun minibuffer-keyboard-quit ()
- "Abort recursive edit.
-In Delete Selection mode, if the mark is active, just deactivate it;
-then it takes a second \\[keyboard-quit] to abort the minibuffer."
- (interactive)
- (if (and delete-selection-mode transient-mark-mode mark-active)
- (setq deactivate-mark t)
- (when (get-buffer "*Completions*") (delete-windows-on "*Completions*"))
- (abort-recursive-edit)))
-
- ;; Make escape quit everything, whenever possible.
- (define-key evil-normal-state-map [escape] 'keyboard-quit)
- (define-key evil-visual-state-map [escape] 'keyboard-quit)
- (define-key minibuffer-local-map [escape] 'minibuffer-keyboard-quit)
- (define-key minibuffer-local-ns-map [escape] 'minibuffer-keyboard-quit)
- (define-key minibuffer-local-completion-map [escape] 'minibuffer-keyboard-quit)
- (define-key minibuffer-local-must-match-map [escape] 'minibuffer-keyboard-quit)
- (define-key minibuffer-local-isearch-map [escape] 'minibuffer-keyboard-quit)
-
- ; I store macros on the &lt;q&gt; register for convenience, so I used to use the
- ; &lt;C-q&gt; combo to execute this macro in Vim. In Emacs though, this combo is
- ; reserved to a rather useful function, and I'd like to keep it that way. So,
- ; now the mapping is set to &lt;C-2&gt; (mnemonic: where the @ symbol is). Moreover,
- ; it's applied as many times as specified by the numeric prefix argument.
- (define-key evil-normal-state-map (kbd "C-2")
- (lambda (n)
- (interactive "p")
- (evil-execute-macro n "@q")))
-
- ; C-s: switch to normal mode and save the buffer. I know :)
- (define-key evil-normal-state-map (kbd "C-s") 'save-buffer)
- (define-key evil-insert-state-map (kbd "C-s")
- (lambda () (interactive) (save-buffer) (evil-force-normal-state))))
-
-(use-package evil
- :ensure t
- :config
-
- (add-hook 'evil-mode-hook 'mssola-evil)
- (evil-mode 1)
-
- ;; C-z is unused and it's close to my beloved C-c. Since I don't want to mess
- ;; with one of the most sacred Emacs prefixes, I'm moving to C-z.
- (define-key key-translation-map (kbd "C-z") [escape])
- (define-key evil-operator-state-map (kbd "C-z") 'keyboard-quit)
- (set-quit-char "C-z")
-
- ;; Use the proper initial evil state for the following modes.
- (evil-set-initial-state 'help-mode 'normal)
- (evil-set-initial-state 'debugger-mode 'normal)
- (evil-set-initial-state 'describe-mode 'normal)
- (evil-set-initial-state 'Buffer-menu-mode 'normal)
-
- (use-package evil-leader
- :ensure t
- :config
- (global-evil-leader-mode)
- (evil-leader/set-leader ",")
- (setq evil-leader/in-all-states 1)
- (evil-leader/set-key
- "," 'back-to-indentation
- "c" 'delete-window
- "k" 'kill-buffer-and-window
- "v" 'split-window-right
- "V" (lambda () (interactive) (split-window-right) (other-window 1))
- "f" 'flycheck-list-errors
- "e" 'eval-last-sexp
- "b" 'view-buffer
- "o" 'browse-url-at-point))
-
- (use-package evil-surround
- :ensure t
- :config
- (global-evil-surround-mode 1))
-
- (use-package evil-commentary
- :ensure t
- :config
- (evil-commentary-mode t))
-
- (use-package evil-args
- :ensure t
- :config
- ; Configuration taken from the documentation of evil-args.
-
- ;; Bind evil-args text objects
- (define-key evil-inner-text-objects-map "a" 'evil-inner-arg)
- (define-key evil-outer-text-objects-map "a" 'evil-outer-arg)
-
- ;; Bind evil-forward/backward-args
- (define-key evil-normal-state-map "L" 'evil-forward-arg)
- (define-key evil-normal-state-map "H" 'evil-backward-arg)
- (define-key evil-motion-state-map "L" 'evil-forward-arg)
- (define-key evil-motion-state-map "H" 'evil-backward-arg))
-
- (use-package evil-numbers
- :ensure t
- :config
- (define-key evil-normal-state-map (kbd "C-a") 'evil-numbers/inc-at-pt)
- (define-key evil-normal-state-map (kbd "C-c -") 'evil-numbers/dec-at-pt)))
+<pre class="src src-elisp"><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">defun</span> <span class="org-function-name">mssola-evil</span> <span class="org-rainbow-delimiters-depth-2">()</span>
+ <span class="org-doc">"Configure evil mode."</span>
+
+ <span class="org-comment-delimiter">; </span><span class="org-comment">We can safely remap &lt;C-u&gt; because the counting will be handled a-la Vim.</span>
+ <span class="org-rainbow-delimiters-depth-2">(</span>define-key evil-normal-state-map <span class="org-rainbow-delimiters-depth-3">(</span>kbd <span class="org-string">"C-u"</span><span class="org-rainbow-delimiters-depth-3">)</span> 'evil-scroll-up<span class="org-rainbow-delimiters-depth-2">)</span>
+
+ <span class="org-comment-delimiter">; </span><span class="org-comment">Make window navigation easier.</span>
+ <span class="org-rainbow-delimiters-depth-2">(</span>define-key evil-normal-state-map <span class="org-rainbow-delimiters-depth-3">(</span>kbd <span class="org-string">"C-j"</span><span class="org-rainbow-delimiters-depth-3">)</span> 'evil-window-down<span class="org-rainbow-delimiters-depth-2">)</span>
+ <span class="org-rainbow-delimiters-depth-2">(</span>define-key evil-normal-state-map <span class="org-rainbow-delimiters-depth-3">(</span>kbd <span class="org-string">"C-k"</span><span class="org-rainbow-delimiters-depth-3">)</span> 'evil-window-up<span class="org-rainbow-delimiters-depth-2">)</span>
+ <span class="org-rainbow-delimiters-depth-2">(</span>define-key evil-normal-state-map <span class="org-rainbow-delimiters-depth-3">(</span>kbd <span class="org-string">"C-l"</span><span class="org-rainbow-delimiters-depth-3">)</span> 'evil-window-right<span class="org-rainbow-delimiters-depth-2">)</span>
+ <span class="org-rainbow-delimiters-depth-2">(</span>define-key evil-normal-state-map <span class="org-rainbow-delimiters-depth-3">(</span>kbd <span class="org-string">"C-h"</span><span class="org-rainbow-delimiters-depth-3">)</span> 'evil-window-left<span class="org-rainbow-delimiters-depth-2">)</span>
+
+ <span class="org-comment-delimiter">; </span><span class="org-comment">The window navigation tweaks effectively wipe out the help prefix, which</span>
+ <span class="org-comment-delimiter">; </span><span class="org-comment">is bad. Fortunately we can workaround this by providing "M-h" as the new</span>
+ <span class="org-comment-delimiter">; </span><span class="org-comment">help prefix. This prefix is only used in emacs mode to mark lines, which is</span>
+ <span class="org-comment-delimiter">; </span><span class="org-comment">something already handled by Evil.</span>
+ <span class="org-rainbow-delimiters-depth-2">(</span>define-key global-map <span class="org-rainbow-delimiters-depth-3">(</span>kbd <span class="org-string">"M-h"</span><span class="org-rainbow-delimiters-depth-3">)</span> 'help-command<span class="org-rainbow-delimiters-depth-2">)</span>
+ <span class="org-rainbow-delimiters-depth-2">(</span>fset 'help-command help-map<span class="org-rainbow-delimiters-depth-2">)</span>
+
+ <span class="org-comment-delimiter">; </span><span class="org-comment">Helm + Projectile shortcuts.</span>
+ <span class="org-rainbow-delimiters-depth-2">(</span><span class="org-keyword">with-eval-after-load</span> 'helm-projectile
+ <span class="org-rainbow-delimiters-depth-3">(</span>define-key evil-normal-state-map <span class="org-rainbow-delimiters-depth-4">(</span>kbd <span class="org-string">"M-p"</span><span class="org-rainbow-delimiters-depth-4">)</span>
+ 'helm-projectile-switch-project<span class="org-rainbow-delimiters-depth-3">)</span><span class="org-rainbow-delimiters-depth-2">)</span>
+
+ <span class="org-comment-delimiter">; </span><span class="org-comment">I use the Super key in combination with j &amp; k to move around i3. Let's unset</span>
+ <span class="org-comment-delimiter">; </span><span class="org-comment">M- combos for these two fellows for whenever I misstype them.</span>
+ <span class="org-rainbow-delimiters-depth-2">(</span>global-unset-key <span class="org-rainbow-delimiters-depth-3">(</span>kbd <span class="org-string">"M-j"</span><span class="org-rainbow-delimiters-depth-3">)</span><span class="org-rainbow-delimiters-depth-2">)</span>
+ <span class="org-rainbow-delimiters-depth-2">(</span>global-unset-key <span class="org-rainbow-delimiters-depth-3">(</span>kbd <span class="org-string">"M-k"</span><span class="org-rainbow-delimiters-depth-3">)</span><span class="org-rainbow-delimiters-depth-2">)</span>
+
+ <span class="org-comment-delimiter">; </span><span class="org-comment">both this function and the subsequent lines about [escape] are taken from</span>
+ <span class="org-comment-delimiter">; </span><span class="org-comment">@aaronbieber configuration.</span>
+ <span class="org-rainbow-delimiters-depth-2">(</span><span class="org-keyword">defun</span> <span class="org-function-name">minibuffer-keyboard-quit</span> <span class="org-rainbow-delimiters-depth-3">()</span>
+ <span class="org-doc">"Abort recursive edit.</span>
+<span class="org-doc">In Delete Selection mode, if the mark is active, just deactivate it;</span>
+<span class="org-doc">then it takes a second \\[</span><span class="org-doc"><span class="org-constant">keyboard-quit</span></span><span class="org-doc">] to abort the minibuffer."</span>
+ <span class="org-rainbow-delimiters-depth-3">(</span><span class="org-keyword">interactive</span><span class="org-rainbow-delimiters-depth-3">)</span>
+ <span class="org-rainbow-delimiters-depth-3">(</span><span class="org-keyword">if</span> <span class="org-rainbow-delimiters-depth-4">(</span><span class="org-keyword">and</span> delete-selection-mode transient-mark-mode mark-active<span class="org-rainbow-delimiters-depth-4">)</span>
+ <span class="org-rainbow-delimiters-depth-4">(</span><span class="org-keyword">setq</span> deactivate-mark t<span class="org-rainbow-delimiters-depth-4">)</span>
+ <span class="org-rainbow-delimiters-depth-4">(</span><span class="org-keyword">when</span> <span class="org-rainbow-delimiters-depth-5">(</span>get-buffer <span class="org-string">"*Completions*"</span><span class="org-rainbow-delimiters-depth-5">)</span> <span class="org-rainbow-delimiters-depth-5">(</span>delete-windows-on <span class="org-string">"*Completions*"</span><span class="org-rainbow-delimiters-depth-5">)</span><span class="org-rainbow-delimiters-depth-4">)</span>
+ <span class="org-rainbow-delimiters-depth-4">(</span>abort-recursive-edit<span class="org-rainbow-delimiters-depth-4">)</span><span class="org-rainbow-delimiters-depth-3">)</span><span class="org-rainbow-delimiters-depth-2">)</span>
+
+ <span class="org-comment-delimiter">;; </span><span class="org-comment">Make escape quit everything, whenever possible.</span>
+ <span class="org-rainbow-delimiters-depth-2">(</span>define-key evil-normal-state-map <span class="org-rainbow-delimiters-depth-3">[</span>escape<span class="org-rainbow-delimiters-depth-3">]</span> 'keyboard-quit<span class="org-rainbow-delimiters-depth-2">)</span>
+ <span class="org-rainbow-delimiters-depth-2">(</span>define-key evil-visual-state-map <span class="org-rainbow-delimiters-depth-3">[</span>escape<span class="org-rainbow-delimiters-depth-3">]</span> 'keyboard-quit<span class="org-rainbow-delimiters-depth-2">)</span>
+ <span class="org-rainbow-delimiters-depth-2">(</span>define-key minibuffer-local-map <span class="org-rainbow-delimiters-depth-3">[</span>escape<span class="org-rainbow-delimiters-depth-3">]</span> 'minibuffer-keyboard-quit<span class="org-rainbow-delimiters-depth-2">)</span>
+ <span class="org-rainbow-delimiters-depth-2">(</span>define-key minibuffer-local-ns-map <span class="org-rainbow-delimiters-depth-3">[</span>escape<span class="org-rainbow-delimiters-depth-3">]</span> 'minibuffer-keyboard-quit<span class="org-rainbow-delimiters-depth-2">)</span>
+ <span class="org-rainbow-delimiters-depth-2">(</span>define-key minibuffer-local-completion-map <span class="org-rainbow-delimiters-depth-3">[</span>escape<span class="org-rainbow-delimiters-depth-3">]</span> 'minibuffer-keyboard-quit<span class="org-rainbow-delimiters-depth-2">)</span>
+ <span class="org-rainbow-delimiters-depth-2">(</span>define-key minibuffer-local-must-match-map <span class="org-rainbow-delimiters-depth-3">[</span>escape<span class="org-rainbow-delimiters-depth-3">]</span> 'minibuffer-keyboard-quit<span class="org-rainbow-delimiters-depth-2">)</span>
+ <span class="org-rainbow-delimiters-depth-2">(</span>define-key minibuffer-local-isearch-map <span class="org-rainbow-delimiters-depth-3">[</span>escape<span class="org-rainbow-delimiters-depth-3">]</span> 'minibuffer-keyboard-quit<span class="org-rainbow-delimiters-depth-2">)</span>
+
+ <span class="org-comment-delimiter">; </span><span class="org-comment">I store macros on the &lt;q&gt; register for convenience, so I used to use the</span>
+ <span class="org-comment-delimiter">; </span><span class="org-comment">&lt;C-q&gt; combo to execute this macro in Vim. In Emacs though, this combo is</span>
+ <span class="org-comment-delimiter">; </span><span class="org-comment">reserved to a rather useful function, and I'd like to keep it that way. So,</span>
+ <span class="org-comment-delimiter">; </span><span class="org-comment">now the mapping is set to &lt;C-2&gt; (mnemonic: where the @ symbol is). Moreover,</span>
+ <span class="org-comment-delimiter">; </span><span class="org-comment">it's applied as many times as specified by the numeric prefix argument.</span>
+ <span class="org-rainbow-delimiters-depth-2">(</span>define-key evil-normal-state-map <span class="org-rainbow-delimiters-depth-3">(</span>kbd <span class="org-string">"C-2"</span><span class="org-rainbow-delimiters-depth-3">)</span>
+ <span class="org-rainbow-delimiters-depth-3">(</span><span class="org-keyword">lambda</span> <span class="org-rainbow-delimiters-depth-4">(</span>n<span class="org-rainbow-delimiters-depth-4">)</span>
+ <span class="org-rainbow-delimiters-depth-4">(</span><span class="org-keyword">interactive</span> <span class="org-string">"p"</span><span class="org-rainbow-delimiters-depth-4">)</span>
+ <span class="org-rainbow-delimiters-depth-4">(</span>evil-execute-macro n <span class="org-string">"@q"</span><span class="org-rainbow-delimiters-depth-4">)</span><span class="org-rainbow-delimiters-depth-3">)</span><span class="org-rainbow-delimiters-depth-2">)</span>
+
+ <span class="org-comment-delimiter">; </span><span class="org-comment">C-s: switch to normal mode and save the buffer. I know :)</span>
+ <span class="org-rainbow-delimiters-depth-2">(</span>define-key evil-normal-state-map <span class="org-rainbow-delimiters-depth-3">(</span>kbd <span class="org-string">"C-s"</span><span class="org-rainbow-delimiters-depth-3">)</span> 'save-buffer<span class="org-rainbow-delimiters-depth-2">)</span>
+ <span class="org-rainbow-delimiters-depth-2">(</span>define-key evil-insert-state-map <span class="org-rainbow-delimiters-depth-3">(</span>kbd <span class="org-string">"C-s"</span><span class="org-rainbow-delimiters-depth-3">)</span>
+ <span class="org-rainbow-delimiters-depth-3">(</span><span class="org-keyword">lambda</span> <span class="org-rainbow-delimiters-depth-4">()</span> <span class="org-rainbow-delimiters-depth-4">(</span><span class="org-keyword">interactive</span><span class="org-rainbow-delimiters-depth-4">)</span> <span class="org-rainbow-delimiters-depth-4">(</span>save-buffer<span class="org-rainbow-delimiters-depth-4">)</span> <span class="org-rainbow-delimiters-depth-4">(</span>evil-force-normal-state<span class="org-rainbow-delimiters-depth-4">)</span><span class="org-rainbow-delimiters-depth-3">)</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>
+
+<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">use-package</span> <span class="org-constant">evil</span>
+ <span class="org-builtin">:ensure</span> t
+ <span class="org-builtin">:config</span>
+
+ <span class="org-rainbow-delimiters-depth-2">(</span>add-hook 'evil-mode-hook 'mssola-evil<span class="org-rainbow-delimiters-depth-2">)</span>
+ <span class="org-rainbow-delimiters-depth-2">(</span>evil-mode 1<span class="org-rainbow-delimiters-depth-2">)</span>
+
+ <span class="org-comment-delimiter">;; </span><span class="org-comment">C-z is unused and it's close to my beloved C-c. Since I don't want to mess</span>
+ <span class="org-comment-delimiter">;; </span><span class="org-comment">with one of the most sacred Emacs prefixes, I'm moving to C-z.</span>
+ <span class="org-rainbow-delimiters-depth-2">(</span>define-key key-translation-map <span class="org-rainbow-delimiters-depth-3">(</span>kbd <span class="org-string">"C-z"</span><span class="org-rainbow-delimiters-depth-3">)</span> <span class="org-rainbow-delimiters-depth-3">[</span>escape<span class="org-rainbow-delimiters-depth-3">]</span><span class="org-rainbow-delimiters-depth-2">)</span>
+ <span class="org-rainbow-delimiters-depth-2">(</span>define-key evil-operator-state-map <span class="org-rainbow-delimiters-depth-3">(</span>kbd <span class="org-string">"C-z"</span><span class="org-rainbow-delimiters-depth-3">)</span> 'keyboard-quit<span class="org-rainbow-delimiters-depth-2">)</span>
+ <span class="org-rainbow-delimiters-depth-2">(</span>set-quit-char <span class="org-string">"C-z"</span><span class="org-rainbow-delimiters-depth-2">)</span>
+
+ <span class="org-comment-delimiter">;; </span><span class="org-comment">Use the proper initial evil state for the following modes.</span>
+ <span class="org-rainbow-delimiters-depth-2">(</span>evil-set-initial-state 'help-mode 'normal<span class="org-rainbow-delimiters-depth-2">)</span>
+ <span class="org-rainbow-delimiters-depth-2">(</span>evil-set-initial-state 'debugger-mode 'normal<span class="org-rainbow-delimiters-depth-2">)</span>
+ <span class="org-rainbow-delimiters-depth-2">(</span>evil-set-initial-state 'describe-mode 'normal<span class="org-rainbow-delimiters-depth-2">)</span>
+ <span class="org-rainbow-delimiters-depth-2">(</span>evil-set-initial-state 'Buffer-menu-mode 'normal<span class="org-rainbow-delimiters-depth-2">)</span>
+
+ <span class="org-rainbow-delimiters-depth-2">(</span><span class="org-keyword">use-package</span> <span class="org-constant">evil-leader</span>
+ <span class="org-builtin">:ensure</span> t
+ <span class="org-builtin">:config</span>
+ <span class="org-rainbow-delimiters-depth-3">(</span>global-evil-leader-mode<span class="org-rainbow-delimiters-depth-3">)</span>
+ <span class="org-rainbow-delimiters-depth-3">(</span>evil-leader/set-leader <span class="org-string">","</span><span class="org-rainbow-delimiters-depth-3">)</span>
+ <span class="org-rainbow-delimiters-depth-3">(</span><span class="org-keyword">setq</span> evil-leader/in-all-states 1<span class="org-rainbow-delimiters-depth-3">)</span>
+ <span class="org-rainbow-delimiters-depth-3">(</span>evil-leader/set-key
+ <span class="org-string">","</span> 'back-to-indentation
+ <span class="org-string">"c"</span> 'delete-window
+ <span class="org-string">"k"</span> 'kill-buffer-and-window
+ <span class="org-string">"v"</span> 'split-window-right
+ <span class="org-string">"V"</span> <span class="org-rainbow-delimiters-depth-4">(</span><span class="org-keyword">lambda</span> <span class="org-rainbow-delimiters-depth-5">()</span> <span class="org-rainbow-delimiters-depth-5">(</span><span class="org-keyword">interactive</span><span class="org-rainbow-delimiters-depth-5">)</span> <span class="org-rainbow-delimiters-depth-5">(</span>split-window-right<span class="org-rainbow-delimiters-depth-5">)</span> <span class="org-rainbow-delimiters-depth-5">(</span>other-window 1<span class="org-rainbow-delimiters-depth-5">)</span><span class="org-rainbow-delimiters-depth-4">)</span>
+ <span class="org-string">"f"</span> 'flycheck-list-errors
+ <span class="org-string">"e"</span> 'eval-last-sexp
+ <span class="org-string">"b"</span> 'view-buffer
+ <span class="org-string">"o"</span> 'browse-url-at-point<span class="org-rainbow-delimiters-depth-3">)</span><span class="org-rainbow-delimiters-depth-2">)</span>
+
+ <span class="org-rainbow-delimiters-depth-2">(</span><span class="org-keyword">use-package</span> <span class="org-constant">evil-surround</span>
+ <span class="org-builtin">:ensure</span> t
+ <span class="org-builtin">:config</span>
+ <span class="org-rainbow-delimiters-depth-3">(</span>global-evil-surround-mode 1<span class="org-rainbow-delimiters-depth-3">)</span><span class="org-rainbow-delimiters-depth-2">)</span>
+
+ <span class="org-rainbow-delimiters-depth-2">(</span><span class="org-keyword">use-package</span> <span class="org-constant">evil-commentary</span>
+ <span class="org-builtin">:ensure</span> t
+ <span class="org-builtin">:config</span>
+ <span class="org-rainbow-delimiters-depth-3">(</span>evil-commentary-mode t<span class="org-rainbow-delimiters-depth-3">)</span><span class="org-rainbow-delimiters-depth-2">)</span>
+
+ <span class="org-rainbow-delimiters-depth-2">(</span><span class="org-keyword">use-package</span> <span class="org-constant">evil-args</span>
+ <span class="org-builtin">:ensure</span> t
+ <span class="org-builtin">:config</span>
+ <span class="org-comment-delimiter">; </span><span class="org-comment">Configuration taken from the documentation of evil-args.</span>
+
+ <span class="org-comment-delimiter">;; </span><span class="org-comment">Bind evil-args text objects</span>
+ <span class="org-rainbow-delimiters-depth-3">(</span>define-key evil-inner-text-objects-map <span class="org-string">"a"</span> 'evil-inner-arg<span class="org-rainbow-delimiters-depth-3">)</span>
+ <span class="org-rainbow-delimiters-depth-3">(</span>define-key evil-outer-text-objects-map <span class="org-string">"a"</span> 'evil-outer-arg<span class="org-rainbow-delimiters-depth-3">)</span>
+
+ <span class="org-comment-delimiter">;; </span><span class="org-comment">Bind evil-forward/backward-args</span>
+ <span class="org-rainbow-delimiters-depth-3">(</span>define-key evil-normal-state-map <span class="org-string">"L"</span> 'evil-forward-arg<span class="org-rainbow-delimiters-depth-3">)</span>
+ <span class="org-rainbow-delimiters-depth-3">(</span>define-key evil-normal-state-map <span class="org-string">"H"</span> 'evil-backward-arg<span class="org-rainbow-delimiters-depth-3">)</span>
+ <span class="org-rainbow-delimiters-depth-3">(</span>define-key evil-motion-state-map <span class="org-string">"L"</span> 'evil-forward-arg<span class="org-rainbow-delimiters-depth-3">)</span>
+ <span class="org-rainbow-delimiters-depth-3">(</span>define-key evil-motion-state-map <span class="org-string">"H"</span> 'evil-backward-arg<span class="org-rainbow-delimiters-depth-3">)</span><span class="org-rainbow-delimiters-depth-2">)</span>
+
+ <span class="org-rainbow-delimiters-depth-2">(</span><span class="org-keyword">use-package</span> <span class="org-constant">evil-numbers</span>
+ <span class="org-builtin">:ensure</span> t
+ <span class="org-builtin">:config</span>
+ <span class="org-rainbow-delimiters-depth-3">(</span>define-key evil-normal-state-map <span class="org-rainbow-delimiters-depth-4">(</span>kbd <span class="org-string">"C-a"</span><span class="org-rainbow-delimiters-depth-4">)</span> 'evil-numbers/inc-at-pt<span class="org-rainbow-delimiters-depth-3">)</span>
+ <span class="org-rainbow-delimiters-depth-3">(</span>define-key evil-normal-state-map <span class="org-rainbow-delimiters-depth-4">(</span>kbd <span class="org-string">"C-c -"</span><span class="org-rainbow-delimiters-depth-4">)</span> 'evil-numbers/dec-at-pt<span class="org-rainbow-delimiters-depth-3">)</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>
</pre>
</div>
</div>
</div>
<div id="outline-container-sec-11" class="outline-2">
-<h2 id="sec-11"><span class="section-number-2">11</span> Magit</h2>
+<h2 id="sec-11">Magit</h2>
<div class="outline-text-2" id="text-11">
<p>
A git porcelain for GNU Emacs. Even if I'm still using the git CLI, it's
@@ -1203,44 +1208,44 @@ certainly useful for some common tasks (I guess that I still need some learning)
<div class="org-src-container">
-<pre class="src src-elisp">(use-package magit
- :ensure t
- :config
+<pre class="src src-elisp"><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">use-package</span> <span class="org-constant">magit</span>
+ <span class="org-builtin">:ensure</span> t
+ <span class="org-builtin">:config</span>
- ; Proper initial states.
- (with-eval-after-load 'evil
- (add-hook 'git-commit-mode-hook 'evil-insert-state)
- (evil-set-initial-state 'magit-log-edit-mode 'insert))
+ <span class="org-comment-delimiter">; </span><span class="org-comment">Proper initial states.</span>
+ <span class="org-rainbow-delimiters-depth-2">(</span><span class="org-keyword">with-eval-after-load</span> 'evil
+ <span class="org-rainbow-delimiters-depth-3">(</span>add-hook 'git-commit-mode-hook 'evil-insert-state<span class="org-rainbow-delimiters-depth-3">)</span>
+ <span class="org-rainbow-delimiters-depth-3">(</span>evil-set-initial-state 'magit-log-edit-mode 'insert<span class="org-rainbow-delimiters-depth-3">)</span><span class="org-rainbow-delimiters-depth-2">)</span>
- ; When showing the status, hide the usually-redundant "branch" section and
- ; show the rest.
- (add-hook 'magit-section-set-visibility-hook
- '(lambda (section)
- (if (string= (magit-section-type section) "branch")
+ <span class="org-comment-delimiter">; </span><span class="org-comment">When showing the status, hide the usually-redundant "branch" section and</span>
+ <span class="org-comment-delimiter">; </span><span class="org-comment">show the rest.</span>
+ <span class="org-rainbow-delimiters-depth-2">(</span>add-hook 'magit-section-set-visibility-hook
+ '<span class="org-rainbow-delimiters-depth-3">(</span>lambda <span class="org-rainbow-delimiters-depth-4">(</span>section<span class="org-rainbow-delimiters-depth-4">)</span>
+ <span class="org-rainbow-delimiters-depth-4">(</span><span class="org-keyword">if</span> <span class="org-rainbow-delimiters-depth-5">(</span>string= <span class="org-rainbow-delimiters-depth-6">(</span>magit-section-type section<span class="org-rainbow-delimiters-depth-6">)</span> <span class="org-string">"branch"</span><span class="org-rainbow-delimiters-depth-5">)</span>
'hide
- 'show)))
+ 'show<span class="org-rainbow-delimiters-depth-4">)</span><span class="org-rainbow-delimiters-depth-3">)</span><span class="org-rainbow-delimiters-depth-2">)</span>
- (with-eval-after-load 'evil-leader
- (evil-leader/set-key "s" 'magit-status)
+ <span class="org-rainbow-delimiters-depth-2">(</span><span class="org-keyword">with-eval-after-load</span> 'evil-leader
+ <span class="org-rainbow-delimiters-depth-3">(</span>evil-leader/set-key <span class="org-string">"s"</span> 'magit-status<span class="org-rainbow-delimiters-depth-3">)</span>
- (use-package evil-magit
- :ensure t
- :config
+ <span class="org-rainbow-delimiters-depth-3">(</span><span class="org-keyword">use-package</span> <span class="org-constant">evil-magit</span>
+ <span class="org-builtin">:ensure</span> t
+ <span class="org-builtin">:config</span>
- ; The magit + evil-magit combo messes up some chords, let's fix this.
- (evil-define-key 'normal magit-mode-map
- "\C-h" 'evil-window-left
- "\C-l" 'evil-window-right
- "\C-j" 'evil-window-down
- "\C-k" 'evil-window-up
- "\M-p" 'helm-projectile-switch-project))))
+ <span class="org-comment-delimiter">; </span><span class="org-comment">The magit + evil-magit combo messes up some chords, let's fix this.</span>
+ <span class="org-rainbow-delimiters-depth-4">(</span><span class="org-keyword">evil-define-key</span> 'normal magit-mode-map
+ <span class="org-string">"\C-h"</span> 'evil-window-left
+ <span class="org-string">"\C-l"</span> 'evil-window-right
+ <span class="org-string">"\C-j"</span> 'evil-window-down
+ <span class="org-string">"\C-k"</span> 'evil-window-up
+ <span class="org-string">"\M-p"</span> 'helm-projectile-switch-project<span class="org-rainbow-delimiters-depth-4">)</span><span class="org-rainbow-delimiters-depth-3">)</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>
</pre>
</div>
</div>
</div>
<div id="outline-container-sec-12" class="outline-2">
-<h2 id="sec-12"><span class="section-number-2">12</span> mu4e</h2>
+<h2 id="sec-12">mu4e</h2>
<div class="outline-text-2" id="text-12">
<p>
I use <a href="http://www.djcbsoftware.nl/code/mu/">mu</a> and <a href="http://www.djcbsoftware.nl/code/mu/mu4e.html">mu4e</a> to manage my email. The configuration for this has been taken
@@ -1255,10 +1260,10 @@ I'm using an RPM that I've built on <a href="https://build.opensuse.org/package/
<div class="org-src-container">
-<pre class="src src-elisp">(add-to-list 'load-path "/usr/share/emacs/site-lisp/mu4e")
-(require 'mu4e)
+<pre class="src src-elisp"><span class="org-rainbow-delimiters-depth-1">(</span>add-to-list 'load-path <span class="org-string">"/usr/share/emacs/site-lisp/mu4e"</span><span class="org-rainbow-delimiters-depth-1">)</span>
+<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">require</span> '<span class="org-constant">mu4e</span><span class="org-rainbow-delimiters-depth-1">)</span>
-(when (featurep 'mu4e)
+<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">when</span> <span class="org-rainbow-delimiters-depth-2">(</span><span class="org-keyword">featurep</span> '<span class="org-constant">mu4e</span><span class="org-rainbow-delimiters-depth-2">)</span>
</pre>
</div>
@@ -1268,9 +1273,9 @@ Diferent SMTP options that will be used for each context.
<div class="org-src-container">
-<pre class="src src-elisp">(setq message-send-mail-function 'smtpmail-send-it
- mu4e-maildir (expand-file-name "~/.mail")
- starttls-use-gnutls t)
+<pre class="src src-elisp"><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">setq</span> message-send-mail-function 'smtpmail-send-it
+ mu4e-maildir <span class="org-rainbow-delimiters-depth-2">(</span>expand-file-name <span class="org-string">"~/.mail"</span><span class="org-rainbow-delimiters-depth-2">)</span>
+ starttls-use-gnutls t<span class="org-rainbow-delimiters-depth-1">)</span>
</pre>
</div>
@@ -1281,35 +1286,35 @@ the configuration.
<div class="org-src-container">
-<pre class="src src-elisp">(defun mssola-smtp (server port)
- "Set SMTP variables depending on the given SERVER and PORT."
+<pre class="src src-elisp"><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">defun</span> <span class="org-function-name">mssola-smtp</span> <span class="org-rainbow-delimiters-depth-2">(</span>server port<span class="org-rainbow-delimiters-depth-2">)</span>
+ <span class="org-doc">"Set SMTP variables depending on the given SERVER and PORT."</span>
- (require 'smtpmail)
+ <span class="org-rainbow-delimiters-depth-2">(</span><span class="org-keyword">require</span> '<span class="org-constant">smtpmail</span><span class="org-rainbow-delimiters-depth-2">)</span>
- (setq smtpmail-starttls-credentials
- '((server port nil nil))
+ <span class="org-rainbow-delimiters-depth-2">(</span><span class="org-keyword">setq</span> smtpmail-starttls-credentials
+ '<span class="org-rainbow-delimiters-depth-3">(</span><span class="org-rainbow-delimiters-depth-4">(</span>server port nil nil<span class="org-rainbow-delimiters-depth-4">)</span><span class="org-rainbow-delimiters-depth-3">)</span>
smtpmail-auth-credentials
- (expand-file-name "~/.authinfo.gpg")
+ <span class="org-rainbow-delimiters-depth-3">(</span>expand-file-name <span class="org-string">"~/.authinfo.gpg"</span><span class="org-rainbow-delimiters-depth-3">)</span>
smtpmail-default-smtp-server server
smtpmail-smtp-server server
- smtpmail-smtp-service port))
+ smtpmail-smtp-service port<span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>
-; https://www.reddit.com/r/emacs/comments/47t9ec/share_your_mu4econtext_configs/d0fsih6
-(defun mu4e-message-maildir-matches (msg rx)
- "Returns true if the maildir of MSG matches the given regexp RX."
+<span class="org-comment-delimiter">; </span><span class="org-comment">https://www.reddit.com/r/emacs/comments/47t9ec/share_your_mu4econtext_configs/d0fsih6</span>
+<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">defun</span> <span class="org-function-name">mu4e-message-maildir-matches</span> <span class="org-rainbow-delimiters-depth-2">(</span>msg rx<span class="org-rainbow-delimiters-depth-2">)</span>
+ <span class="org-doc">"Returns true if the maildir of MSG matches the given regexp RX."</span>
- (when rx
- (if (listp rx)
- ;; if rx is a list, try each one for a match
- (or (mu4e-message-maildir-matches msg (car rx))
- (mu4e-message-maildir-matches msg (cdr rx)))
- ;; not a list, check rx
- (string-match rx (mu4e-message-field msg :maildir)))))
+ <span class="org-rainbow-delimiters-depth-2">(</span><span class="org-keyword">when</span> rx
+ <span class="org-rainbow-delimiters-depth-3">(</span><span class="org-keyword">if</span> <span class="org-rainbow-delimiters-depth-4">(</span>listp rx<span class="org-rainbow-delimiters-depth-4">)</span>
+ <span class="org-comment-delimiter">;; </span><span class="org-comment">if rx is a list, try each one for a match</span>
+ <span class="org-rainbow-delimiters-depth-4">(</span><span class="org-keyword">or</span> <span class="org-rainbow-delimiters-depth-5">(</span>mu4e-message-maildir-matches msg <span class="org-rainbow-delimiters-depth-6">(</span>car rx<span class="org-rainbow-delimiters-depth-6">)</span><span class="org-rainbow-delimiters-depth-5">)</span>
+ <span class="org-rainbow-delimiters-depth-5">(</span>mu4e-message-maildir-matches msg <span class="org-rainbow-delimiters-depth-6">(</span>cdr rx<span class="org-rainbow-delimiters-depth-6">)</span><span class="org-rainbow-delimiters-depth-5">)</span><span class="org-rainbow-delimiters-depth-4">)</span>
+ <span class="org-comment-delimiter">;; </span><span class="org-comment">not a list, check rx</span>
+ <span class="org-rainbow-delimiters-depth-4">(</span>string-match rx <span class="org-rainbow-delimiters-depth-5">(</span>mu4e-message-field msg <span class="org-builtin">:maildir</span><span class="org-rainbow-delimiters-depth-5">)</span><span class="org-rainbow-delimiters-depth-4">)</span><span class="org-rainbow-delimiters-depth-3">)</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>
-(defun suse-refile-folder (key)
- "Returns the refile folder for the given SUSE account in the KEY arg"
- (concat "/" key "/Archives/"
- (format-time-string "%Y" (current-time))))
+<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">defun</span> <span class="org-function-name">suse-refile-folder</span> <span class="org-rainbow-delimiters-depth-2">(</span>key<span class="org-rainbow-delimiters-depth-2">)</span>
+ <span class="org-doc">"Returns the refile folder for the given SUSE account in the KEY arg"</span>
+ <span class="org-rainbow-delimiters-depth-2">(</span>concat <span class="org-string">"/"</span> key <span class="org-string">"/Archives/"</span>
+ <span class="org-rainbow-delimiters-depth-3">(</span>format-time-string <span class="org-string">"%Y"</span> <span class="org-rainbow-delimiters-depth-4">(</span>current-time<span class="org-rainbow-delimiters-depth-4">)</span><span class="org-rainbow-delimiters-depth-3">)</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>
</pre>
</div>
@@ -1320,58 +1325,58 @@ this way is relatively new (since mu 0.9.16).
<div class="org-src-container">
-<pre class="src src-elisp">(setq mu4e-contexts
- `(
- ;; GMail
- ,(make-mu4e-context
- :name "gmail"
- :enter-func (lambda ()
- (mu4e-message "Switching to gmail.com")
- (mssola-smtp "smtp.gmail.com" 587))
- :match-func (lambda (msg)
- (when msg
- (mu4e-message-maildir-matches msg "^/gmail")))
- :vars '(
- (user-mail-address . "mikisabate@gmail.com")
- (mu4e-reply-to-address . "mikisabate@gmail.com")
- (mu4e-drafts-folder . "/gmail/Drafts")
- (mu4e-sent-folder . "/gmail/Sent")
- (mu4e-refile-folder . "/gmail/All")
- (mu4e-trash-folder . "/gmail/Trash")))
-
- ;; suse.com
- ,(make-mu4e-context
- :name "comsuse"
- :enter-func (lambda ()
- (mu4e-message "Switching to suse.com")
- (mssola-smtp "smtp.novell.com" 25))
- :match-func (lambda (msg)
- (when msg
- (mu4e-message-maildir-matches msg "^/susecom")))
- :vars `(
- (user-mail-address . "msabate@suse.com")
- (mu4e-reply-to-address . "msabate@suse.com")
- (mu4e-drafts-folder . "/susecom/Drafts")
- (mu4e-sent-folder . "/susecom/Sent")
- (mu4e-refile-folder . ,(suse-refile-folder "susecom"))
- (mu4e-trash-folder . "/susecom/Trash")))
-
- ;; suse.de
- ,(make-mu4e-context
- :name "desuse"
- :enter-func (lambda ()
- (mu4e-message "Switching to suse.de")
- (mssola-smtp "imap.suse.de" 587))
- :match-func (lambda (msg)
- (when msg
- (mu4e-message-maildir-matches msg "^/susede")))
- :vars `(
- (user-mail-address . "msabate@suse.de")
- (mu4e-reply-to-address . "msabate@suse.de")
- (mu4e-drafts-folder . "/susede/Drafts")
- (mu4e-sent-folder . "/susede/Sent")
- (mu4e-refile-folder . ,(suse-refile-folder "susede"))
- (mu4e-trash-folder . "/susede/Trash")))))
+<pre class="src src-elisp"><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">setq</span> mu4e-contexts
+ `<span class="org-rainbow-delimiters-depth-2">(</span>
+ <span class="org-comment-delimiter">;; </span><span class="org-comment">GMail</span>
+ ,<span class="org-rainbow-delimiters-depth-3">(</span>make-mu4e-context
+ <span class="org-builtin">:name</span> <span class="org-string">"gmail"</span>
+ <span class="org-builtin">:enter-func</span> <span class="org-rainbow-delimiters-depth-4">(</span><span class="org-keyword">lambda</span> <span class="org-rainbow-delimiters-depth-5">()</span>
+ <span class="org-rainbow-delimiters-depth-5">(</span>mu4e-message <span class="org-string">"Switching to gmail.com"</span><span class="org-rainbow-delimiters-depth-5">)</span>
+ <span class="org-rainbow-delimiters-depth-5">(</span>mssola-smtp <span class="org-string">"smtp.gmail.com"</span> 587<span class="org-rainbow-delimiters-depth-5">)</span><span class="org-rainbow-delimiters-depth-4">)</span>
+ <span class="org-builtin">:match-func</span> <span class="org-rainbow-delimiters-depth-4">(</span><span class="org-keyword">lambda</span> <span class="org-rainbow-delimiters-depth-5">(</span>msg<span class="org-rainbow-delimiters-depth-5">)</span>
+ <span class="org-rainbow-delimiters-depth-5">(</span><span class="org-keyword">when</span> msg
+ <span class="org-rainbow-delimiters-depth-6">(</span>mu4e-message-maildir-matches msg <span class="org-string">"^/gmail"</span><span class="org-rainbow-delimiters-depth-6">)</span><span class="org-rainbow-delimiters-depth-5">)</span><span class="org-rainbow-delimiters-depth-4">)</span>
+ <span class="org-builtin">:vars</span> '<span class="org-rainbow-delimiters-depth-4">(</span>
+ <span class="org-rainbow-delimiters-depth-5">(</span>user-mail-address . <span class="org-string">"mikisabate@gmail.com"</span><span class="org-rainbow-delimiters-depth-5">)</span>
+ <span class="org-rainbow-delimiters-depth-5">(</span>mu4e-reply-to-address . <span class="org-string">"mikisabate@gmail.com"</span><span class="org-rainbow-delimiters-depth-5">)</span>
+ <span class="org-rainbow-delimiters-depth-5">(</span>mu4e-drafts-folder . <span class="org-string">"/gmail/Drafts"</span><span class="org-rainbow-delimiters-depth-5">)</span>
+ <span class="org-rainbow-delimiters-depth-5">(</span>mu4e-sent-folder . <span class="org-string">"/gmail/Sent"</span><span class="org-rainbow-delimiters-depth-5">)</span>
+ <span class="org-rainbow-delimiters-depth-5">(</span>mu4e-refile-folder . <span class="org-string">"/gmail/All"</span><span class="org-rainbow-delimiters-depth-5">)</span>
+ <span class="org-rainbow-delimiters-depth-5">(</span>mu4e-trash-folder . <span class="org-string">"/gmail/Trash"</span><span class="org-rainbow-delimiters-depth-5">)</span><span class="org-rainbow-delimiters-depth-4">)</span><span class="org-rainbow-delimiters-depth-3">)</span>
+
+ <span class="org-comment-delimiter">;; </span><span class="org-comment">suse.com</span>
+ ,<span class="org-rainbow-delimiters-depth-3">(</span>make-mu4e-context
+ <span class="org-builtin">:name</span> <span class="org-string">"comsuse"</span>
+ <span class="org-builtin">:enter-func</span> <span class="org-rainbow-delimiters-depth-4">(</span><span class="org-keyword">lambda</span> <span class="org-rainbow-delimiters-depth-5">()</span>
+ <span class="org-rainbow-delimiters-depth-5">(</span>mu4e-message <span class="org-string">"Switching to suse.com"</span><span class="org-rainbow-delimiters-depth-5">)</span>
+ <span class="org-rainbow-delimiters-depth-5">(</span>mssola-smtp <span class="org-string">"smtp.novell.com"</span> 25<span class="org-rainbow-delimiters-depth-5">)</span><span class="org-rainbow-delimiters-depth-4">)</span>
+ <span class="org-builtin">:match-func</span> <span class="org-rainbow-delimiters-depth-4">(</span><span class="org-keyword">lambda</span> <span class="org-rainbow-delimiters-depth-5">(</span>msg<span class="org-rainbow-delimiters-depth-5">)</span>
+ <span class="org-rainbow-delimiters-depth-5">(</span><span class="org-keyword">when</span> msg
+ <span class="org-rainbow-delimiters-depth-6">(</span>mu4e-message-maildir-matches msg <span class="org-string">"^/susecom"</span><span class="org-rainbow-delimiters-depth-6">)</span><span class="org-rainbow-delimiters-depth-5">)</span><span class="org-rainbow-delimiters-depth-4">)</span>
+ <span class="org-builtin">:vars</span> `<span class="org-rainbow-delimiters-depth-4">(</span>
+ <span class="org-rainbow-delimiters-depth-5">(</span>user-mail-address . <span class="org-string">"msabate@suse.com"</span><span class="org-rainbow-delimiters-depth-5">)</span>
+ <span class="org-rainbow-delimiters-depth-5">(</span>mu4e-reply-to-address . <span class="org-string">"msabate@suse.com"</span><span class="org-rainbow-delimiters-depth-5">)</span>
+ <span class="org-rainbow-delimiters-depth-5">(</span>mu4e-drafts-folder . <span class="org-string">"/susecom/Drafts"</span><span class="org-rainbow-delimiters-depth-5">)</span>
+ <span class="org-rainbow-delimiters-depth-5">(</span>mu4e-sent-folder . <span class="org-string">"/susecom/Sent"</span><span class="org-rainbow-delimiters-depth-5">)</span>
+ <span class="org-rainbow-delimiters-depth-5">(</span>mu4e-refile-folder . ,<span class="org-rainbow-delimiters-depth-6">(</span>suse-refile-folder <span class="org-string">"susecom"</span><span class="org-rainbow-delimiters-depth-6">)</span><span class="org-rainbow-delimiters-depth-5">)</span>
+ <span class="org-rainbow-delimiters-depth-5">(</span>mu4e-trash-folder . <span class="org-string">"/susecom/Trash"</span><span class="org-rainbow-delimiters-depth-5">)</span><span class="org-rainbow-delimiters-depth-4">)</span><span class="org-rainbow-delimiters-depth-3">)</span>
+
+ <span class="org-comment-delimiter">;; </span><span class="org-comment">suse.de</span>
+ ,<span class="org-rainbow-delimiters-depth-3">(</span>make-mu4e-context
+ <span class="org-builtin">:name</span> <span class="org-string">"desuse"</span>
+ <span class="org-builtin">:enter-func</span> <span class="org-rainbow-delimiters-depth-4">(</span><span class="org-keyword">lambda</span> <span class="org-rainbow-delimiters-depth-5">()</span>
+ <span class="org-rainbow-delimiters-depth-5">(</span>mu4e-message <span class="org-string">"Switching to suse.de"</span><span class="org-rainbow-delimiters-depth-5">)</span>
+ <span class="org-rainbow-delimiters-depth-5">(</span>mssola-smtp <span class="org-string">"imap.suse.de"</span> 587<span class="org-rainbow-delimiters-depth-5">)</span><span class="org-rainbow-delimiters-depth-4">)</span>
+ <span class="org-builtin">:match-func</span> <span class="org-rainbow-delimiters-depth-4">(</span><span class="org-keyword">lambda</span> <span class="org-rainbow-delimiters-depth-5">(</span>msg<span class="org-rainbow-delimiters-depth-5">)</span>
+ <span class="org-rainbow-delimiters-depth-5">(</span><span class="org-keyword">when</span> msg
+ <span class="org-rainbow-delimiters-depth-6">(</span>mu4e-message-maildir-matches msg <span class="org-string">"^/susede"</span><span class="org-rainbow-delimiters-depth-6">)</span><span class="org-rainbow-delimiters-depth-5">)</span><span class="org-rainbow-delimiters-depth-4">)</span>
+ <span class="org-builtin">:vars</span> `<span class="org-rainbow-delimiters-depth-4">(</span>
+ <span class="org-rainbow-delimiters-depth-5">(</span>user-mail-address . <span class="org-string">"msabate@suse.de"</span><span class="org-rainbow-delimiters-depth-5">)</span>
+ <span class="org-rainbow-delimiters-depth-5">(</span>mu4e-reply-to-address . <span class="org-string">"msabate@suse.de"</span><span class="org-rainbow-delimiters-depth-5">)</span>
+ <span class="org-rainbow-delimiters-depth-5">(</span>mu4e-drafts-folder . <span class="org-string">"/susede/Drafts"</span><span class="org-rainbow-delimiters-depth-5">)</span>
+ <span class="org-rainbow-delimiters-depth-5">(</span>mu4e-sent-folder . <span class="org-string">"/susede/Sent"</span><span class="org-rainbow-delimiters-depth-5">)</span>
+ <span class="org-rainbow-delimiters-depth-5">(</span>mu4e-refile-folder . ,<span class="org-rainbow-delimiters-depth-6">(</span>suse-refile-folder <span class="org-string">"susede"</span><span class="org-rainbow-delimiters-depth-6">)</span><span class="org-rainbow-delimiters-depth-5">)</span>
+ <span class="org-rainbow-delimiters-depth-5">(</span>mu4e-trash-folder . <span class="org-string">"/susede/Trash"</span><span class="org-rainbow-delimiters-depth-5">)</span><span class="org-rainbow-delimiters-depth-4">)</span><span class="org-rainbow-delimiters-depth-3">)</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>
</pre>
</div>
@@ -1381,8 +1386,8 @@ If mu4e cannot figure things out, ask me.
<div class="org-src-container">
-<pre class="src src-elisp">(setq mu4e-context-policy 'ask)
-(setq mu4e-compose-context-policy 'ask)
+<pre class="src src-elisp"><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">setq</span> mu4e-context-policy 'ask<span class="org-rainbow-delimiters-depth-1">)</span>
+<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">setq</span> mu4e-compose-context-policy 'ask<span class="org-rainbow-delimiters-depth-1">)</span>
</pre>
</div>
@@ -1392,13 +1397,13 @@ Fill the <code>mu4e-user-mail-address-list</code> variable with the contexts.
<div class="org-src-container">
-<pre class="src src-elisp">(setq mu4e-user-mail-address-list
- (delq nil
- (mapcar (lambda (context)
- (when (mu4e-context-vars context)
- (cdr (assq 'user-mail-address
- (mu4e-context-vars context)))))
- mu4e-contexts)))
+<pre class="src src-elisp"><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">setq</span> mu4e-user-mail-address-list
+ <span class="org-rainbow-delimiters-depth-2">(</span>delq nil
+ <span class="org-rainbow-delimiters-depth-3">(</span>mapcar <span class="org-rainbow-delimiters-depth-4">(</span><span class="org-keyword">lambda</span> <span class="org-rainbow-delimiters-depth-5">(</span>context<span class="org-rainbow-delimiters-depth-5">)</span>
+ <span class="org-rainbow-delimiters-depth-5">(</span><span class="org-keyword">when</span> <span class="org-rainbow-delimiters-depth-6">(</span>mu4e-context-vars context<span class="org-rainbow-delimiters-depth-6">)</span>
+ <span class="org-rainbow-delimiters-depth-6">(</span>cdr <span class="org-rainbow-delimiters-depth-7">(</span>assq 'user-mail-address
+ <span class="org-rainbow-delimiters-depth-8">(</span>mu4e-context-vars context<span class="org-rainbow-delimiters-depth-8">)</span><span class="org-rainbow-delimiters-depth-7">)</span><span class="org-rainbow-delimiters-depth-6">)</span><span class="org-rainbow-delimiters-depth-5">)</span><span class="org-rainbow-delimiters-depth-4">)</span>
+ mu4e-contexts<span class="org-rainbow-delimiters-depth-3">)</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>
</pre>
</div>
@@ -1408,10 +1413,10 @@ Setting my bookmarks
<div class="org-src-container">
-<pre class="src src-elisp">(setq mu4e-bookmarks
- '(("maildir:/gmail/inbox OR maildir:/susecom/inbox OR maildir:/susede/inbox" "Inbox Folders" ?n)
- ("flag:unread AND NOT flag:trashed" "Unread messages" ?u)
- ("date:today..now" "Today's messages" ?t)))
+<pre class="src src-elisp"><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">setq</span> mu4e-bookmarks
+ '<span class="org-rainbow-delimiters-depth-2">(</span><span class="org-rainbow-delimiters-depth-3">(</span><span class="org-string">"maildir:/gmail/inbox OR maildir:/susecom/inbox OR maildir:/susede/inbox"</span> <span class="org-string">"Inbox Folders"</span> ?n<span class="org-rainbow-delimiters-depth-3">)</span>
+ <span class="org-rainbow-delimiters-depth-3">(</span><span class="org-string">"flag:unread AND NOT flag:trashed"</span> <span class="org-string">"Unread messages"</span> ?u<span class="org-rainbow-delimiters-depth-3">)</span>
+ <span class="org-rainbow-delimiters-depth-3">(</span><span class="org-string">"date:today..now"</span> <span class="org-string">"Today's messages"</span> ?t<span class="org-rainbow-delimiters-depth-3">)</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>
</pre>
</div>
@@ -1422,10 +1427,10 @@ format=flowed or not.
<div class="org-src-container">
-<pre class="src src-elisp">(setq mu4e-compose-signature
- (concat
- "Miquel Sabaté Solà,\n"
- "PGP: 4096R / 1BA5 3C7A C93D CA2A CFDF DA97 96BE 8C6F D89D 6565\n"))
+<pre class="src src-elisp"><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">setq</span> mu4e-compose-signature
+ <span class="org-rainbow-delimiters-depth-2">(</span>concat
+ <span class="org-string">"Miquel Sabat&#233; Sol&#224;,\n"</span>
+ <span class="org-string">"PGP: 4096R / 1BA5 3C7A C93D CA2A CFDF DA97 96BE 8C6F D89D 6565\n"</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>
</pre>
</div>
@@ -1435,7 +1440,7 @@ Sign outgoing emails always.
<div class="org-src-container">
-<pre class="src src-elisp">(add-hook 'message-send-hook 'mml-secure-message-sign-pgpmime)
+<pre class="src src-elisp"><span class="org-rainbow-delimiters-depth-1">(</span>add-hook 'message-send-hook 'mml-secure-message-sign-pgpmime<span class="org-rainbow-delimiters-depth-1">)</span>
</pre>
</div>
@@ -1445,7 +1450,7 @@ To avoid UID clashes. See <a href="http://pragmaticemacs.com/emacs/fixing-duplic
<div class="org-src-container">
-<pre class="src src-elisp">(setq mu4e-change-filenames-when-moving t)
+<pre class="src src-elisp"><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">setq</span> mu4e-change-filenames-when-moving t<span class="org-rainbow-delimiters-depth-1">)</span>
</pre>
</div>
@@ -1455,19 +1460,19 @@ Miscellaneous settings.
<div class="org-src-container">
-<pre class="src src-elisp">(setq mu4e-html2text-command "w3m -T text/html"
- mu4e-attachment-dir "~/Downloads"
- mu4e-headers-date-format "%Y-%m-%d %H:%M"
- message-citation-line-format "%N @ %Y-%m-%d %H:%M %Z:\n"
+<pre class="src src-elisp"><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">setq</span> mu4e-html2text-command <span class="org-string">"w3m -T text/html"</span>
+ mu4e-attachment-dir <span class="org-string">"~/Downloads"</span>
+ mu4e-headers-date-format <span class="org-string">"%Y-%m-%d %H:%M"</span>
+ message-citation-line-format <span class="org-string">"%N @ %Y-%m-%d %H:%M %Z:\n"</span>
message-citation-line-function 'message-insert-formatted-citation-line
message-kill-buffer-on-exit t
- mu4e-get-mail-command "mbsync -aqV"
+ mu4e-get-mail-command <span class="org-string">"mbsync -aqV"</span>
mu4e-update-interval 600
mu4e-compose-dont-reply-to-self t
mu4e-compose-format-flowed t
mu4e-headers-skip-duplicates t
mu4e-headers-include-related t
- mu4e-headers-auto-update t)
+ mu4e-headers-auto-update t<span class="org-rainbow-delimiters-depth-1">)</span>
</pre>
</div>
@@ -1479,11 +1484,11 @@ These are the defaults:
<div class="org-src-container">
-<pre class="src src-elisp">(setq mu4e-headers-fields
- '( (:date . 18)
- (:mailing-list . 15)
- (:from-or-to . 20)
- (:subject . nil)))
+<pre class="src src-elisp"><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">setq</span> mu4e-headers-fields
+ '<span class="org-rainbow-delimiters-depth-2">(</span> <span class="org-rainbow-delimiters-depth-3">(</span><span class="org-builtin">:date</span> . 18<span class="org-rainbow-delimiters-depth-3">)</span>
+ <span class="org-rainbow-delimiters-depth-3">(</span><span class="org-builtin">:mailing-list</span> . 15<span class="org-rainbow-delimiters-depth-3">)</span>
+ <span class="org-rainbow-delimiters-depth-3">(</span><span class="org-builtin">:from-or-to</span> . 20<span class="org-rainbow-delimiters-depth-3">)</span>
+ <span class="org-rainbow-delimiters-depth-3">(</span><span class="org-builtin">:subject</span> . nil<span class="org-rainbow-delimiters-depth-3">)</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>
</pre>
</div>
@@ -1493,12 +1498,12 @@ Show images
<div class="org-src-container">
-<pre class="src src-elisp">(setq mu4e-view-show-images t
- mu4e-view-image-max-width 800)
+<pre class="src src-elisp"><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">setq</span> mu4e-view-show-images t
+ mu4e-view-image-max-width 800<span class="org-rainbow-delimiters-depth-1">)</span>
-; Use imagemagick, if available
-(when (fboundp 'imagemagick-register-types)
- (imagemagick-register-types))
+<span class="org-comment-delimiter">; </span><span class="org-comment">Use imagemagick, if available</span>
+<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">when</span> <span class="org-rainbow-delimiters-depth-2">(</span>fboundp 'imagemagick-register-types<span class="org-rainbow-delimiters-depth-2">)</span>
+ <span class="org-rainbow-delimiters-depth-2">(</span>imagemagick-register-types<span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>
</pre>
</div>
@@ -1509,9 +1514,9 @@ render an HTML message with Webkit.
<div class="org-src-container">
-<pre class="src src-elisp">(if (&gt;= emacs-major-version 25)
- (add-to-list 'mu4e-view-actions
- '("webkit" . mu4e-action-view-with-xwidget)))
+<pre class="src src-elisp"><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">if</span> <span class="org-rainbow-delimiters-depth-2">(</span>&gt;= emacs-major-version 25<span class="org-rainbow-delimiters-depth-2">)</span>
+ <span class="org-rainbow-delimiters-depth-2">(</span>add-to-list 'mu4e-view-actions
+ '<span class="org-rainbow-delimiters-depth-3">(</span><span class="org-string">"webkit"</span> . mu4e-action-view-with-xwidget<span class="org-rainbow-delimiters-depth-3">)</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>
</pre>
</div>
@@ -1523,9 +1528,9 @@ on it.
<div class="org-src-container">
-<pre class="src src-elisp">(let ((exec (locate-file "msg2pdf" exec-path exec-suffixes)))
- (if exec
- (setq mu4e-msg2pdf exec)))
+<pre class="src src-elisp"><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">let</span> <span class="org-rainbow-delimiters-depth-2">(</span><span class="org-rainbow-delimiters-depth-3">(</span>exec <span class="org-rainbow-delimiters-depth-4">(</span>locate-file <span class="org-string">"msg2pdf"</span> exec-path exec-suffixes<span class="org-rainbow-delimiters-depth-4">)</span><span class="org-rainbow-delimiters-depth-3">)</span><span class="org-rainbow-delimiters-depth-2">)</span>
+ <span class="org-rainbow-delimiters-depth-2">(</span><span class="org-keyword">if</span> exec
+ <span class="org-rainbow-delimiters-depth-3">(</span><span class="org-keyword">setq</span> mu4e-msg2pdf exec<span class="org-rainbow-delimiters-depth-3">)</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>
</pre>
</div>
@@ -1535,33 +1540,33 @@ Adding hooks for composing and viewing messages.
<div class="org-src-container">
-<pre class="src src-elisp">(defun mssola-compose-mode ()
- "My settings for message composition."
+<pre class="src src-elisp"><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">defun</span> <span class="org-function-name">mssola-compose-mode</span> <span class="org-rainbow-delimiters-depth-2">()</span>
+ <span class="org-doc">"My settings for message composition."</span>
- ; If we are composing an email from scratch, it's more convenient to be in
- ; insert mode. Otherwise start with normal mode.
- (with-eval-after-load 'evil
- (if mu4e-compose-parent-message
- (evil-set-initial-state 'mu4e-compose-mode 'normal)
- (evil-set-initial-state 'mu4e-compose-mode 'insert)))
+ <span class="org-comment-delimiter">; </span><span class="org-comment">If we are composing an email from scratch, it's more convenient to be in</span>
+ <span class="org-comment-delimiter">; </span><span class="org-comment">insert mode. Otherwise start with normal mode.</span>
+ <span class="org-rainbow-delimiters-depth-2">(</span><span class="org-keyword">with-eval-after-load</span> 'evil
+ <span class="org-rainbow-delimiters-depth-3">(</span><span class="org-keyword">if</span> mu4e-compose-parent-message
+ <span class="org-rainbow-delimiters-depth-4">(</span>evil-set-initial-state 'mu4e-compose-mode 'normal<span class="org-rainbow-delimiters-depth-4">)</span>
+ <span class="org-rainbow-delimiters-depth-4">(</span>evil-set-initial-state 'mu4e-compose-mode 'insert<span class="org-rainbow-delimiters-depth-4">)</span><span class="org-rainbow-delimiters-depth-3">)</span><span class="org-rainbow-delimiters-depth-2">)</span>
- ; Guess hard newlines
- (use-hard-newlines t 'guess)
+ <span class="org-comment-delimiter">; </span><span class="org-comment">Guess hard newlines</span>
+ <span class="org-rainbow-delimiters-depth-2">(</span>use-hard-newlines t 'guess<span class="org-rainbow-delimiters-depth-2">)</span>
- ; So it's easy to encrypt/decrypt emails.
- (epa-mail-mode)
+ <span class="org-comment-delimiter">; </span><span class="org-comment">So it's easy to encrypt/decrypt emails.</span>
+ <span class="org-rainbow-delimiters-depth-2">(</span>epa-mail-mode<span class="org-rainbow-delimiters-depth-2">)</span>
- ; Spellz
- (flyspell-mode))
+ <span class="org-comment-delimiter">; </span><span class="org-comment">Spellz</span>
+ <span class="org-rainbow-delimiters-depth-2">(</span>flyspell-mode<span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>
-(add-hook 'mu4e-compose-mode-hook 'mssola-compose-mode)
+<span class="org-rainbow-delimiters-depth-1">(</span>add-hook 'mu4e-compose-mode-hook 'mssola-compose-mode<span class="org-rainbow-delimiters-depth-1">)</span>
-; I want to read messages in the format that the sender used. I'm also
-; enabling epa-mail-mode, so it's easy to decrypt received emails.
-(add-hook 'mu4e-view-mode-hook
- (lambda ()
- (epa-mail-mode)
- (visual-line-mode 1)))
+<span class="org-comment-delimiter">; </span><span class="org-comment">I want to read messages in the format that the sender used. I'm also</span>
+<span class="org-comment-delimiter">; </span><span class="org-comment">enabling epa-mail-mode, so it's easy to decrypt received emails.</span>
+<span class="org-rainbow-delimiters-depth-1">(</span>add-hook 'mu4e-view-mode-hook
+ <span class="org-rainbow-delimiters-depth-2">(</span><span class="org-keyword">lambda</span> <span class="org-rainbow-delimiters-depth-3">()</span>
+ <span class="org-rainbow-delimiters-depth-3">(</span>epa-mail-mode<span class="org-rainbow-delimiters-depth-3">)</span>
+ <span class="org-rainbow-delimiters-depth-3">(</span>visual-line-mode 1<span class="org-rainbow-delimiters-depth-3">)</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>
</pre>
</div>
@@ -1571,35 +1576,35 @@ I want desktop notifications when receiving email.
<div class="org-src-container">
-<pre class="src src-elisp">(use-package mu4e-alert
- :ensure t
- :config
+<pre class="src src-elisp"><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">use-package</span> <span class="org-constant">mu4e-alert</span>
+ <span class="org-builtin">:ensure</span> t
+ <span class="org-builtin">:config</span>
- ; Notify me for unread emails from my inbox.
- (mu4e-alert-set-default-style 'libnotify)
- (add-hook 'after-init-hook #'mu4e-alert-enable-notifications)
- (add-hook 'after-init-hook #'mu4e-alert-enable-mode-line-display)
- (setq mu4e-alert-interesting-mail-query
- (concat
- "(maildir:/gmail/inbox OR maildir:/susecom/inbox OR maildir:/susede/inbox) "
- "AND flag:unread AND NOT flag:trashed"))
- (setq mu4e-alert-email-notification-types '(count)))
+ <span class="org-comment-delimiter">; </span><span class="org-comment">Notify me for unread emails from my inbox.</span>
+ <span class="org-rainbow-delimiters-depth-2">(</span>mu4e-alert-set-default-style 'libnotify<span class="org-rainbow-delimiters-depth-2">)</span>
+ <span class="org-rainbow-delimiters-depth-2">(</span>add-hook 'after-init-hook #'mu4e-alert-enable-notifications<span class="org-rainbow-delimiters-depth-2">)</span>
+ <span class="org-rainbow-delimiters-depth-2">(</span>add-hook 'after-init-hook #'mu4e-alert-enable-mode-line-display<span class="org-rainbow-delimiters-depth-2">)</span>
+ <span class="org-rainbow-delimiters-depth-2">(</span><span class="org-keyword">setq</span> mu4e-alert-interesting-mail-query
+ <span class="org-rainbow-delimiters-depth-3">(</span>concat
+ <span class="org-string">"(maildir:/gmail/inbox OR maildir:/susecom/inbox OR maildir:/susede/inbox) "</span>
+ <span class="org-string">"AND flag:unread AND NOT flag:trashed"</span><span class="org-rainbow-delimiters-depth-3">)</span><span class="org-rainbow-delimiters-depth-2">)</span>
+ <span class="org-rainbow-delimiters-depth-2">(</span><span class="org-keyword">setq</span> mu4e-alert-email-notification-types '<span class="org-rainbow-delimiters-depth-3">(</span>count<span class="org-rainbow-delimiters-depth-3">)</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>
-; Evil mode in mu4e
-(with-eval-after-load 'evil
- (use-package evil-mu4e
- :ensure t
- :config
+<span class="org-comment-delimiter">; </span><span class="org-comment">Evil mode in mu4e</span>
+<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">with-eval-after-load</span> 'evil
+ <span class="org-rainbow-delimiters-depth-2">(</span><span class="org-keyword">use-package</span> <span class="org-constant">evil-mu4e</span>
+ <span class="org-builtin">:ensure</span> t
+ <span class="org-builtin">:config</span>
- ; Idea taken from evil-mu4e.el
- (defvar mssola-evil-mu4e-mode-map-bindings
- `((,evil-mu4e-state mu4e-headers-mode-map "\C-u" evil-scroll-up)
- (,evil-mu4e-state mu4e-main-mode-map "\C-u" evil-scroll-up)
- (,evil-mu4e-state mu4e-view-mode-map "h" evil-backward-char)))
+ <span class="org-comment-delimiter">; </span><span class="org-comment">Idea taken from evil-mu4e.el</span>
+ <span class="org-rainbow-delimiters-depth-3">(</span><span class="org-keyword">defvar</span> <span class="org-variable-name">mssola-evil-mu4e-mode-map-bindings</span>
+ `<span class="org-rainbow-delimiters-depth-4">(</span><span class="org-rainbow-delimiters-depth-5">(</span>,evil-mu4e-state mu4e-headers-mode-map <span class="org-string">"\C-u"</span> evil-scroll-up<span class="org-rainbow-delimiters-depth-5">)</span>
+ <span class="org-rainbow-delimiters-depth-5">(</span>,evil-mu4e-state mu4e-main-mode-map <span class="org-string">"\C-u"</span> evil-scroll-up<span class="org-rainbow-delimiters-depth-5">)</span>
+ <span class="org-rainbow-delimiters-depth-5">(</span>,evil-mu4e-state mu4e-view-mode-map <span class="org-string">"h"</span> evil-backward-char<span class="org-rainbow-delimiters-depth-5">)</span><span class="org-rainbow-delimiters-depth-4">)</span><span class="org-rainbow-delimiters-depth-3">)</span>
- (dolist (binding mssola-evil-mu4e-mode-map-bindings)
- (evil-define-key
- (nth 0 binding) (nth 1 binding) (nth 2 binding) (nth 3 binding)))))
+ <span class="org-rainbow-delimiters-depth-3">(</span><span class="org-keyword">dolist</span> <span class="org-rainbow-delimiters-depth-4">(</span>binding mssola-evil-mu4e-mode-map-bindings<span class="org-rainbow-delimiters-depth-4">)</span>
+ <span class="org-rainbow-delimiters-depth-4">(</span><span class="org-keyword">evil-define-key</span>
+ <span class="org-rainbow-delimiters-depth-5">(</span>nth 0 binding<span class="org-rainbow-delimiters-depth-5">)</span> <span class="org-rainbow-delimiters-depth-5">(</span>nth 1 binding<span class="org-rainbow-delimiters-depth-5">)</span> <span class="org-rainbow-delimiters-depth-5">(</span>nth 2 binding<span class="org-rainbow-delimiters-depth-5">)</span> <span class="org-rainbow-delimiters-depth-5">(</span>nth 3 binding<span class="org-rainbow-delimiters-depth-5">)</span><span class="org-rainbow-delimiters-depth-4">)</span><span class="org-rainbow-delimiters-depth-3">)</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>
</pre>
</div>
@@ -1609,51 +1614,54 @@ And finally define a proper shortcut.
<div class="org-src-container">
-<pre class="src src-elisp">; The trailing parenthesis closes the "(when (featurep 'mu4e)" statement from
-; the very beginning.
-(global-set-key (kbd "C-c m") 'mu4e))
+<pre class="src src-elisp"><span class="org-comment-delimiter">; </span><span class="org-comment">The trailing parenthesis closes the "(when (featurep 'mu4e)" statement from</span>
+<span class="org-comment-delimiter">; </span><span class="org-comment">the very beginning.</span>
+<span class="org-rainbow-delimiters-depth-1">(</span>global-set-key <span class="org-rainbow-delimiters-depth-2">(</span>kbd <span class="org-string">"C-c m"</span><span class="org-rainbow-delimiters-depth-2">)</span> 'mu4e<span class="org-rainbow-delimiters-depth-1">)</span><span class="org-rainbow-delimiters-unmatched">)</span>
</pre>
</div>
</div>
</div>
<div id="outline-container-sec-13" class="outline-2">
-<h2 id="sec-13"><span class="section-number-2">13</span> org</h2>
+<h2 id="sec-13">org</h2>
<div class="outline-text-2" id="text-13">
+</div><div id="outline-container-sec-13-1" class="outline-3">
+<h3 id="sec-13-1">General settings</h3>
+<div class="outline-text-3" id="text-13-1">
<p>
First of all, let me define some helper functions.
</p>
<div class="org-src-container">
-<pre class="src src-elisp">(defun mssola-org-skip-if-priority (priority &amp;optional subtree)
- "Skip an agenda item if it has a priority of PRIORITY.
-PRIORITY may be one of the characters ?A, ?B, or ?C.
-Skips the current entry unless SUBTREE is not nil. This function has been
-copied from @aaronbieber."
+<pre class="src src-elisp"><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">defun</span> <span class="org-function-name">mssola-org-skip-if-priority</span> <span class="org-rainbow-delimiters-depth-2">(</span>priority <span class="org-type">&amp;optional</span> subtree<span class="org-rainbow-delimiters-depth-2">)</span>
+ <span class="org-doc">"Skip an agenda item if it has a priority of PRIORITY.</span>
+<span class="org-doc">PRIORITY may be one of the characters ?A, ?B, or ?C.</span>
+<span class="org-doc">Skips the current entry unless SUBTREE is not nil. This function has been</span>
+<span class="org-doc">copied from @aaronbieber."</span>
- (let ((end (if subtree (save-excursion (org-end-of-subtree t))
- (save-excursion (progn (outline-next-heading) (1- (point))))))
- (pri-value (* 1000 (- org-lowest-priority priority)))
- (pri-current (org-get-priority (thing-at-point 'line t))))
- (if (= pri-value pri-current)
+ <span class="org-rainbow-delimiters-depth-2">(</span><span class="org-keyword">let</span> <span class="org-rainbow-delimiters-depth-3">(</span><span class="org-rainbow-delimiters-depth-4">(</span>end <span class="org-rainbow-delimiters-depth-5">(</span><span class="org-keyword">if</span> subtree <span class="org-rainbow-delimiters-depth-6">(</span><span class="org-keyword">save-excursion</span> <span class="org-rainbow-delimiters-depth-7">(</span>org-end-of-subtree t<span class="org-rainbow-delimiters-depth-7">)</span><span class="org-rainbow-delimiters-depth-6">)</span>
+ <span class="org-rainbow-delimiters-depth-6">(</span><span class="org-keyword">save-excursion</span> <span class="org-rainbow-delimiters-depth-7">(</span><span class="org-keyword">progn</span> <span class="org-rainbow-delimiters-depth-8">(</span>outline-next-heading<span class="org-rainbow-delimiters-depth-8">)</span> <span class="org-rainbow-delimiters-depth-8">(</span>1- <span class="org-rainbow-delimiters-depth-9">(</span>point<span class="org-rainbow-delimiters-depth-9">)</span><span class="org-rainbow-delimiters-depth-8">)</span><span class="org-rainbow-delimiters-depth-7">)</span><span class="org-rainbow-delimiters-depth-6">)</span><span class="org-rainbow-delimiters-depth-5">)</span><span class="org-rainbow-delimiters-depth-4">)</span>
+ <span class="org-rainbow-delimiters-depth-4">(</span>pri-value <span class="org-rainbow-delimiters-depth-5">(</span>* 1000 <span class="org-rainbow-delimiters-depth-6">(</span>- org-lowest-priority priority<span class="org-rainbow-delimiters-depth-6">)</span><span class="org-rainbow-delimiters-depth-5">)</span><span class="org-rainbow-delimiters-depth-4">)</span>
+ <span class="org-rainbow-delimiters-depth-4">(</span>pri-current <span class="org-rainbow-delimiters-depth-5">(</span>org-get-priority <span class="org-rainbow-delimiters-depth-6">(</span>thing-at-point 'line t<span class="org-rainbow-delimiters-depth-6">)</span><span class="org-rainbow-delimiters-depth-5">)</span><span class="org-rainbow-delimiters-depth-4">)</span><span class="org-rainbow-delimiters-depth-3">)</span>
+ <span class="org-rainbow-delimiters-depth-3">(</span><span class="org-keyword">if</span> <span class="org-rainbow-delimiters-depth-4">(</span>= pri-value pri-current<span class="org-rainbow-delimiters-depth-4">)</span>
end
- nil)))
+ nil<span class="org-rainbow-delimiters-depth-3">)</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>
-(defun mssola-org-skip-if-not-closed-in-day (time &amp;optional subtree)
- "Skip entries that were not closed in the given TIME.
-Skip the current entry unless SUBTREE is not nil, in which case skip
-the entire subtree. Idea taken from @aaronbieber"
+<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">defun</span> <span class="org-function-name">mssola-org-skip-if-not-closed-in-day</span> <span class="org-rainbow-delimiters-depth-2">(</span>time <span class="org-type">&amp;optional</span> subtree<span class="org-rainbow-delimiters-depth-2">)</span>
+ <span class="org-doc">"Skip entries that were not closed in the given TIME.</span>
+<span class="org-doc">Skip the current entry unless SUBTREE is not nil, in which case skip</span>
+<span class="org-doc">the entire subtree. Idea taken from @aaronbieber"</span>
- (let ((end (if subtree (save-excursion (org-end-of-subtree t))
- (save-excursion (progn (outline-next-heading) (1- (point))))))
- (day-prefix (format-time-string "%Y-%m-%d" time)))
+ <span class="org-rainbow-delimiters-depth-2">(</span><span class="org-keyword">let</span> <span class="org-rainbow-delimiters-depth-3">(</span><span class="org-rainbow-delimiters-depth-4">(</span>end <span class="org-rainbow-delimiters-depth-5">(</span><span class="org-keyword">if</span> subtree <span class="org-rainbow-delimiters-depth-6">(</span><span class="org-keyword">save-excursion</span> <span class="org-rainbow-delimiters-depth-7">(</span>org-end-of-subtree t<span class="org-rainbow-delimiters-depth-7">)</span><span class="org-rainbow-delimiters-depth-6">)</span>
+ <span class="org-rainbow-delimiters-depth-6">(</span><span class="org-keyword">save-excursion</span> <span class="org-rainbow-delimiters-depth-7">(</span><span class="org-keyword">progn</span> <span class="org-rainbow-delimiters-depth-8">(</span>outline-next-heading<span class="org-rainbow-delimiters-depth-8">)</span> <span class="org-rainbow-delimiters-depth-8">(</span>1- <span class="org-rainbow-delimiters-depth-9">(</span>point<span class="org-rainbow-delimiters-depth-9">)</span><span class="org-rainbow-delimiters-depth-8">)</span><span class="org-rainbow-delimiters-depth-7">)</span><span class="org-rainbow-delimiters-depth-6">)</span><span class="org-rainbow-delimiters-depth-5">)</span><span class="org-rainbow-delimiters-depth-4">)</span>
+ <span class="org-rainbow-delimiters-depth-4">(</span>day-prefix <span class="org-rainbow-delimiters-depth-5">(</span>format-time-string <span class="org-string">"%Y-%m-%d"</span> time<span class="org-rainbow-delimiters-depth-5">)</span><span class="org-rainbow-delimiters-depth-4">)</span><span class="org-rainbow-delimiters-depth-3">)</span>
- (if (save-excursion
- (and (re-search-forward org-closed-time-regexp end t)
- (string= (substring (match-string-no-properties 1) 0 10) day-prefix)))
+ <span class="org-rainbow-delimiters-depth-3">(</span><span class="org-keyword">if</span> <span class="org-rainbow-delimiters-depth-4">(</span><span class="org-keyword">save-excursion</span>
+ <span class="org-rainbow-delimiters-depth-5">(</span><span class="org-keyword">and</span> <span class="org-rainbow-delimiters-depth-6">(</span>re-search-forward org-closed-time-regexp end t<span class="org-rainbow-delimiters-depth-6">)</span>
+ <span class="org-rainbow-delimiters-depth-6">(</span>string= <span class="org-rainbow-delimiters-depth-7">(</span>substring <span class="org-rainbow-delimiters-depth-8">(</span>match-string-no-properties 1<span class="org-rainbow-delimiters-depth-8">)</span> 0 10<span class="org-rainbow-delimiters-depth-7">)</span> day-prefix<span class="org-rainbow-delimiters-depth-6">)</span><span class="org-rainbow-delimiters-depth-5">)</span><span class="org-rainbow-delimiters-depth-4">)</span>
nil
- end)))
+ end<span class="org-rainbow-delimiters-depth-3">)</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>
</pre>
</div>
@@ -1663,34 +1671,33 @@ Some general UI settings for org mode.
<div class="org-src-container">
-<pre class="src src-elisp">(setq org-src-fontify-natively t
- org-src-tab-acts-natively t
+<pre class="src src-elisp"><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">setq</span> org-src-tab-acts-natively t
org-confirm-babel-evaluate nil
- org-edit-src-content-indentation 0)
+ org-edit-src-content-indentation 0<span class="org-rainbow-delimiters-depth-1">)</span>
-(setq org-todo-keywords
- '((sequence "TODO(t)" "|" "DONE(d!)")
- (sequence "IDEA(i)" "WORKING(w)" "|" "USED(u@/!)" "DISCARDED(x@/!)")))
+<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">setq</span> org-todo-keywords
+ '<span class="org-rainbow-delimiters-depth-2">(</span><span class="org-rainbow-delimiters-depth-3">(</span>sequence <span class="org-string">"</span><span class="org-string"><span class="org-warning">TODO</span></span><span class="org-string">(t)"</span> <span class="org-string">"|"</span> <span class="org-string">"DONE(d!)"</span><span class="org-rainbow-delimiters-depth-3">)</span>
+ <span class="org-rainbow-delimiters-depth-3">(</span>sequence <span class="org-string">"IDEA(i)"</span> <span class="org-string">"WORKING(w)"</span> <span class="org-string">"|"</span> <span class="org-string">"USED(u@/!)"</span> <span class="org-string">"DISCARDED(x@/!)"</span><span class="org-rainbow-delimiters-depth-3">)</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>
-(setq org-todo-keyword-faces
- '(("TODO" . org-todo)
- ("IDEA" . font-lock-constant-face)
- ("WORKING" . font-lock-constant-face)
- ("DONE" . org-done)
- ("USED" . org-done)
- ("DISCARDED" . org-done)))
+<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">setq</span> org-todo-keyword-faces
+ '<span class="org-rainbow-delimiters-depth-2">(</span><span class="org-rainbow-delimiters-depth-3">(</span><span class="org-string">"</span><span class="org-string"><span class="org-warning">TODO</span></span><span class="org-string">"</span> . org-todo<span class="org-rainbow-delimiters-depth-3">)</span>
+ <span class="org-rainbow-delimiters-depth-3">(</span><span class="org-string">"IDEA"</span> . font-lock-constant-face<span class="org-rainbow-delimiters-depth-3">)</span>
+ <span class="org-rainbow-delimiters-depth-3">(</span><span class="org-string">"WORKING"</span> . font-lock-constant-face<span class="org-rainbow-delimiters-depth-3">)</span>
+ <span class="org-rainbow-delimiters-depth-3">(</span><span class="org-string">"DONE"</span> . org-done<span class="org-rainbow-delimiters-depth-3">)</span>
+ <span class="org-rainbow-delimiters-depth-3">(</span><span class="org-string">"USED"</span> . org-done<span class="org-rainbow-delimiters-depth-3">)</span>
+ <span class="org-rainbow-delimiters-depth-3">(</span><span class="org-string">"DISCARDED"</span> . org-done<span class="org-rainbow-delimiters-depth-3">)</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>
</pre>
</div>
<p>
-Loggins settings.
+Logging settings.
</p>
<div class="org-src-container">
-<pre class="src src-elisp">(setq org-log-done t)
-(setq org-log-redeadline (quote time))
-(setq org-log-reschedule (quote time))
+<pre class="src src-elisp"><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">setq</span> org-log-done t<span class="org-rainbow-delimiters-depth-1">)</span>
+<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">setq</span> org-log-redeadline <span class="org-rainbow-delimiters-depth-2">(</span><span class="org-keyword">quote</span> time<span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>
+<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">setq</span> org-log-reschedule <span class="org-rainbow-delimiters-depth-2">(</span><span class="org-keyword">quote</span> time<span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>
</pre>
</div>
@@ -1700,83 +1707,122 @@ Where org files reside.
<div class="org-src-container">
-<pre class="src src-elisp">(setq org-agenda-files '("~/org/"))
+<pre class="src src-elisp"><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">setq</span> org-agenda-files '<span class="org-rainbow-delimiters-depth-2">(</span><span class="org-string">"~/org/"</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>
</pre>
</div>
+</div>
+</div>
+<div id="outline-container-sec-13-2" class="outline-3">
+<h3 id="sec-13-2">Publishing</h3>
+<div class="outline-text-3" id="text-13-2">
+<p>
+In order to publish files into HTML, I would like to have <code>htmlize</code> installed.
+This package allows org to export to HTML in a better way (e.g. allowing code
+blocks to be converted into HTML as well, so we can properly colorize it).
+</p>
+
+<div class="org-src-container">
+
+<pre class="src src-elisp"><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">use-package</span> '<span class="org-constant">htmlize</span>
+ <span class="org-builtin">:ensure</span> t<span class="org-rainbow-delimiters-depth-1">)</span>
+</pre>
+</div>
+
+<p>
+And now let's set all the related settings.
+</p>
+
+<div class="org-src-container">
+
+<pre class="src src-elisp"><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">setq</span> org-src-fontify-natively t
+ org-html-include-timestamps nil
+ org-html-toplevel-hlevel 2
+ org-html-htmlize-output-type 'css
+ org-export-with-section-numbers nil
+ org-export-with-sub-superscripts nil
+ org-export-htmlize-output-type 'css<span class="org-rainbow-delimiters-depth-1">)</span>
+</pre>
+</div>
+</div>
+</div>
+
+<div id="outline-container-sec-13-3" class="outline-3">
+<h3 id="sec-13-3">Agenda</h3>
+<div class="outline-text-3" id="text-13-3">
<p>
Custom commands for <code>org-agenda</code>.
</p>
<div class="org-src-container">
-<pre class="src src-elisp">(setq org-agenda-custom-commands
- '(("p" "Printed agenda"
- ; Daily agenda with a 2-weeks deadline warning. Tasks are
- ; represented as [ ] items.
- ((agenda ""
- ((org-agenda-ndays 1)
- (org-deadline-warning-days 14)
- (org-agenda-todo-keyword-format "[ ]")
- (org-agenda-scheduled-leaders '("" ""))))
-
- ; Display a "High Priority" list of tasks on top.
- (tags "PRIORITY=\"A\""
- ((org-agenda-skip-function '(org-agenda-skip-entry-if 'todo 'done))
- (org-agenda-sorting-strategy '(tag-up priority-down))
- (org-agenda-todo-keyword-format "")
- (org-agenda-overriding-header "\nHigh priority\n--------------\n")))
-
-
- ; All tasks except those already listed as high priority or
- ; ideas. Scheduled and deadlines are also ignored here.
- (alltodo ""
- ((org-agenda-skip-function '(or (mssola-org-skip-if-priority ?A)
- (org-agenda-skip-entry-if 'todo '("IDEA" "WORKING"))
- (org-agenda-skip-if nil '(scheduled deadline))))
- (org-agenda-sorting-strategy '(tag-up priority-down))
- (org-agenda-todo-keyword-format "")
- (org-agenda-overriding-header "\nAll tasks\n----------\n")))
-
- ; List of ideas.
- (todo "IDEA"
- ((org-agenda-overriding-header "\nIdeas\n------\n")
- (org-agenda-todo-keyword-format ""))))
-
- ((org-agenda-compact-blocks t)
- (org-agenda-remove-tags t)))
-
- ; List of done items. Useful for standups, review meetings, weekly
- ; reports, etc.
- ("d" "Done items"
- ; First show the items done yesterday. Useful for standups.
- ((todo "DONE"
- ((org-agenda-overriding-header "Done yesterday\n---------------\n")
- (org-agenda-skip-function
- '(mssola-org-skip-if-not-closed-in-day
- (time-subtract (current-time) (seconds-to-time 86400))))
- (org-agenda-todo-keyword-format "")))
-
- ; Then show what I've done today.
- (todo "DONE"
- ((org-agenda-overriding-header "\nDone today\n-----------\n")
- (org-agenda-skip-function
- '(mssola-org-skip-if-not-closed-in-day
- (current-time)))
- (org-agenda-todo-keyword-format "")))
-
- ; Finally show what I've been doing in the past 15 days. Useful for
- ; review meetings and weekly reports.
- (todo "DONE"
- ((org-agenda-start-day "-15d")
- (org-agenda-span 15)
- (org-agenda-start-on-weekday nil)
- (org-agenda-todo-keyword-format "")
- (org-agenda-scheduled-leaders '("" ""))
- (org-agenda-overriding-header "\nDone during the past 15 days\n-----------------------------\n"))))
-
- ((org-agenda-compact-blocks t)
- (org-agenda-remove-tags t)))))
+<pre class="src src-elisp"><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">setq</span> org-agenda-custom-commands
+ '<span class="org-rainbow-delimiters-depth-2">(</span><span class="org-rainbow-delimiters-depth-3">(</span><span class="org-string">"p"</span> <span class="org-string">"Printed agenda"</span>
+ <span class="org-comment-delimiter">; </span><span class="org-comment">Daily agenda with a 2-weeks deadline warning. Tasks are</span>
+ <span class="org-comment-delimiter">; </span><span class="org-comment">represented as [ ] items.</span>
+ <span class="org-rainbow-delimiters-depth-4">(</span><span class="org-rainbow-delimiters-depth-5">(</span>agenda <span class="org-string">""</span>
+ <span class="org-rainbow-delimiters-depth-6">(</span><span class="org-rainbow-delimiters-depth-7">(</span>org-agenda-ndays 1<span class="org-rainbow-delimiters-depth-7">)</span>
+ <span class="org-rainbow-delimiters-depth-7">(</span>org-deadline-warning-days 14<span class="org-rainbow-delimiters-depth-7">)</span>
+ <span class="org-rainbow-delimiters-depth-7">(</span>org-agenda-todo-keyword-format <span class="org-string">"[ ]"</span><span class="org-rainbow-delimiters-depth-7">)</span>
+ <span class="org-rainbow-delimiters-depth-7">(</span>org-agenda-scheduled-leaders '<span class="org-rainbow-delimiters-depth-8">(</span><span class="org-string">""</span> <span class="org-string">""</span><span class="org-rainbow-delimiters-depth-8">)</span><span class="org-rainbow-delimiters-depth-7">)</span><span class="org-rainbow-delimiters-depth-6">)</span><span class="org-rainbow-delimiters-depth-5">)</span>
+
+ <span class="org-comment-delimiter">; </span><span class="org-comment">Display a "High Priority" list of tasks on top.</span>
+ <span class="org-rainbow-delimiters-depth-5">(</span>tags <span class="org-string">"PRIORITY=\"A\""</span>
+ <span class="org-rainbow-delimiters-depth-6">(</span><span class="org-rainbow-delimiters-depth-7">(</span>org-agenda-skip-function '<span class="org-rainbow-delimiters-depth-8">(</span>org-agenda-skip-entry-if 'todo 'done<span class="org-rainbow-delimiters-depth-8">)</span><span class="org-rainbow-delimiters-depth-7">)</span>
+ <span class="org-rainbow-delimiters-depth-7">(</span>org-agenda-sorting-strategy '<span class="org-rainbow-delimiters-depth-8">(</span>tag-up priority-down<span class="org-rainbow-delimiters-depth-8">)</span><span class="org-rainbow-delimiters-depth-7">)</span>
+ <span class="org-rainbow-delimiters-depth-7">(</span>org-agenda-todo-keyword-format <span class="org-string">""</span><span class="org-rainbow-delimiters-depth-7">)</span>
+ <span class="org-rainbow-delimiters-depth-7">(</span>org-agenda-overriding-header <span class="org-string">"\nHigh priority\n--------------\n"</span><span class="org-rainbow-delimiters-depth-7">)</span><span class="org-rainbow-delimiters-depth-6">)</span><span class="org-rainbow-delimiters-depth-5">)</span>
+
+
+ <span class="org-comment-delimiter">; </span><span class="org-comment">All tasks except those already listed as high priority or</span>
+ <span class="org-comment-delimiter">; </span><span class="org-comment">ideas. Scheduled and deadlines are also ignored here.</span>
+ <span class="org-rainbow-delimiters-depth-5">(</span>alltodo <span class="org-string">""</span>
+ <span class="org-rainbow-delimiters-depth-6">(</span><span class="org-rainbow-delimiters-depth-7">(</span>org-agenda-skip-function '<span class="org-rainbow-delimiters-depth-8">(</span><span class="org-keyword">or</span> <span class="org-rainbow-delimiters-depth-9">(</span>mssola-org-skip-if-priority ?A<span class="org-rainbow-delimiters-depth-9">)</span>
+ <span class="org-rainbow-delimiters-depth-9">(</span>org-agenda-skip-entry-if 'todo '<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-string">"IDEA"</span> <span class="org-string">"WORKING"</span><span class="org-rainbow-delimiters-depth-1">)</span><span class="org-rainbow-delimiters-depth-9">)</span>
+ <span class="org-rainbow-delimiters-depth-9">(</span>org-agenda-skip-if nil '<span class="org-rainbow-delimiters-depth-1">(</span>scheduled deadline<span class="org-rainbow-delimiters-depth-1">)</span><span class="org-rainbow-delimiters-depth-9">)</span><span class="org-rainbow-delimiters-depth-8">)</span><span class="org-rainbow-delimiters-depth-7">)</span>
+ <span class="org-rainbow-delimiters-depth-7">(</span>org-agenda-sorting-strategy '<span class="org-rainbow-delimiters-depth-8">(</span>tag-up priority-down<span class="org-rainbow-delimiters-depth-8">)</span><span class="org-rainbow-delimiters-depth-7">)</span>
+ <span class="org-rainbow-delimiters-depth-7">(</span>org-agenda-todo-keyword-format <span class="org-string">""</span><span class="org-rainbow-delimiters-depth-7">)</span>
+ <span class="org-rainbow-delimiters-depth-7">(</span>org-agenda-overriding-header <span class="org-string">"\nAll tasks\n----------\n"</span><span class="org-rainbow-delimiters-depth-7">)</span><span class="org-rainbow-delimiters-depth-6">)</span><span class="org-rainbow-delimiters-depth-5">)</span>
+
+ <span class="org-comment-delimiter">; </span><span class="org-comment">List of ideas.</span>
+ <span class="org-rainbow-delimiters-depth-5">(</span>todo <span class="org-string">"IDEA"</span>
+ <span class="org-rainbow-delimiters-depth-6">(</span><span class="org-rainbow-delimiters-depth-7">(</span>org-agenda-overriding-header <span class="org-string">"\nIdeas\n------\n"</span><span class="org-rainbow-delimiters-depth-7">)</span>
+ <span class="org-rainbow-delimiters-depth-7">(</span>org-agenda-todo-keyword-format <span class="org-string">""</span><span class="org-rainbow-delimiters-depth-7">)</span><span class="org-rainbow-delimiters-depth-6">)</span><span class="org-rainbow-delimiters-depth-5">)</span><span class="org-rainbow-delimiters-depth-4">)</span>
+
+ <span class="org-rainbow-delimiters-depth-4">(</span><span class="org-rainbow-delimiters-depth-5">(</span>org-agenda-compact-blocks t<span class="org-rainbow-delimiters-depth-5">)</span>
+ <span class="org-rainbow-delimiters-depth-5">(</span>org-agenda-remove-tags t<span class="org-rainbow-delimiters-depth-5">)</span><span class="org-rainbow-delimiters-depth-4">)</span><span class="org-rainbow-delimiters-depth-3">)</span>
+
+ <span class="org-comment-delimiter">; </span><span class="org-comment">List of done items. Useful for standups, review meetings, weekly</span>
+ <span class="org-comment-delimiter">; </span><span class="org-comment">reports, etc.</span>
+ <span class="org-rainbow-delimiters-depth-3">(</span><span class="org-string">"d"</span> <span class="org-string">"Done items"</span>
+ <span class="org-comment-delimiter">; </span><span class="org-comment">First show the items done yesterday. Useful for standups.</span>
+ <span class="org-rainbow-delimiters-depth-4">(</span><span class="org-rainbow-delimiters-depth-5">(</span>todo <span class="org-string">"DONE"</span>
+ <span class="org-rainbow-delimiters-depth-6">(</span><span class="org-rainbow-delimiters-depth-7">(</span>org-agenda-overriding-header <span class="org-string">"Done yesterday\n---------------\n"</span><span class="org-rainbow-delimiters-depth-7">)</span>
+ <span class="org-rainbow-delimiters-depth-7">(</span>org-agenda-skip-function
+ '<span class="org-rainbow-delimiters-depth-8">(</span>mssola-org-skip-if-not-closed-in-day
+ <span class="org-rainbow-delimiters-depth-9">(</span>time-subtract <span class="org-rainbow-delimiters-depth-1">(</span>current-time<span class="org-rainbow-delimiters-depth-1">)</span> <span class="org-rainbow-delimiters-depth-1">(</span>seconds-to-time 86400<span class="org-rainbow-delimiters-depth-1">)</span><span class="org-rainbow-delimiters-depth-9">)</span><span class="org-rainbow-delimiters-depth-8">)</span><span class="org-rainbow-delimiters-depth-7">)</span>
+ <span class="org-rainbow-delimiters-depth-7">(</span>org-agenda-todo-keyword-format <span class="org-string">""</span><span class="org-rainbow-delimiters-depth-7">)</span><span class="org-rainbow-delimiters-depth-6">)</span><span class="org-rainbow-delimiters-depth-5">)</span>
+
+ <span class="org-comment-delimiter">; </span><span class="org-comment">Then show what I've done today.</span>
+ <span class="org-rainbow-delimiters-depth-5">(</span>todo <span class="org-string">"DONE"</span>
+ <span class="org-rainbow-delimiters-depth-6">(</span><span class="org-rainbow-delimiters-depth-7">(</span>org-agenda-overriding-header <span class="org-string">"\nDone today\n-----------\n"</span><span class="org-rainbow-delimiters-depth-7">)</span>
+ <span class="org-rainbow-delimiters-depth-7">(</span>org-agenda-skip-function
+ '<span class="org-rainbow-delimiters-depth-8">(</span>mssola-org-skip-if-not-closed-in-day
+ <span class="org-rainbow-delimiters-depth-9">(</span>current-time<span class="org-rainbow-delimiters-depth-9">)</span><span class="org-rainbow-delimiters-depth-8">)</span><span class="org-rainbow-delimiters-depth-7">)</span>
+ <span class="org-rainbow-delimiters-depth-7">(</span>org-agenda-todo-keyword-format <span class="org-string">""</span><span class="org-rainbow-delimiters-depth-7">)</span><span class="org-rainbow-delimiters-depth-6">)</span><span class="org-rainbow-delimiters-depth-5">)</span>
+
+ <span class="org-comment-delimiter">; </span><span class="org-comment">Finally show what I've been doing in the past 15 days. Useful for</span>
+ <span class="org-comment-delimiter">; </span><span class="org-comment">review meetings and weekly reports.</span>
+ <span class="org-rainbow-delimiters-depth-5">(</span>todo <span class="org-string">"DONE"</span>
+ <span class="org-rainbow-delimiters-depth-6">(</span><span class="org-rainbow-delimiters-depth-7">(</span>org-agenda-start-day <span class="org-string">"-15d"</span><span class="org-rainbow-delimiters-depth-7">)</span>
+ <span class="org-rainbow-delimiters-depth-7">(</span>org-agenda-span 15<span class="org-rainbow-delimiters-depth-7">)</span>
+ <span class="org-rainbow-delimiters-depth-7">(</span>org-agenda-start-on-weekday nil<span class="org-rainbow-delimiters-depth-7">)</span>
+ <span class="org-rainbow-delimiters-depth-7">(</span>org-agenda-todo-keyword-format <span class="org-string">""</span><span class="org-rainbow-delimiters-depth-7">)</span>
+ <span class="org-rainbow-delimiters-depth-7">(</span>org-agenda-scheduled-leaders '<span class="org-rainbow-delimiters-depth-8">(</span><span class="org-string">""</span> <span class="org-string">""</span><span class="org-rainbow-delimiters-depth-8">)</span><span class="org-rainbow-delimiters-depth-7">)</span>
+ <span class="org-rainbow-delimiters-depth-7">(</span>org-agenda-overriding-header <span class="org-string">"\nDone during the past 15 days\n-----------------------------\n"</span><span class="org-rainbow-delimiters-depth-7">)</span><span class="org-rainbow-delimiters-depth-6">)</span><span class="org-rainbow-delimiters-depth-5">)</span><span class="org-rainbow-delimiters-depth-4">)</span>
+
+ <span class="org-rainbow-delimiters-depth-4">(</span><span class="org-rainbow-delimiters-depth-5">(</span>org-agenda-compact-blocks t<span class="org-rainbow-delimiters-depth-5">)</span>
+ <span class="org-rainbow-delimiters-depth-5">(</span>org-agenda-remove-tags t<span class="org-rainbow-delimiters-depth-5">)</span><span class="org-rainbow-delimiters-depth-4">)</span><span class="org-rainbow-delimiters-depth-3">)</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>
</pre>
</div>
@@ -1786,54 +1832,60 @@ The prefix for the different kinds of types being used.
<div class="org-src-container">
-<pre class="src src-elisp">(setq org-agenda-prefix-format '((agenda . "%t%s")
- (tags . "%c:%s")
- (todo . "%c:%t%s")))
+<pre class="src src-elisp"><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">setq</span> org-agenda-prefix-format '<span class="org-rainbow-delimiters-depth-2">(</span><span class="org-rainbow-delimiters-depth-3">(</span>agenda . <span class="org-string">"%t%s"</span><span class="org-rainbow-delimiters-depth-3">)</span>
+ <span class="org-rainbow-delimiters-depth-3">(</span>tags . <span class="org-string">"%c:%s"</span><span class="org-rainbow-delimiters-depth-3">)</span>
+ <span class="org-rainbow-delimiters-depth-3">(</span>todo . <span class="org-string">"%c:%t%s"</span><span class="org-rainbow-delimiters-depth-3">)</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>
</pre>
</div>
+</div>
+</div>
+<div id="outline-container-sec-13-4" class="outline-3">
+<h3 id="sec-13-4">Other</h3>
+<div class="outline-text-3" id="text-13-4">
<p>
Insert a &lt;kbd&gt;&lt;/kbd&gt; value in org mode. See this <a href="http://emacs.stackexchange.com/questions/2206/i-want-to-have-the-kbd-tags-for-my-blog-written-in-org-mode">StackExchange answer</a>.
</p>
<div class="org-src-container">
-<pre class="src src-elisp">(defun endless/insert-key (key)
- "Ask for a key then insert its description.
-Will work on both org-mode and any mode that accepts plain html."
- (interactive "kType key sequence: ")
- (let* ((is-org-mode (derived-mode-p 'org-mode))
- (tag (if is-org-mode
- "@@html:&lt;kbd&gt;%s&lt;/kbd&gt;@@"
- "&lt;kbd&gt;%s&lt;/kbd&gt;")))
- (if (null (equal key "\r"))
- (insert
- (format tag (help-key-description key nil)))
- (insert (format tag ""))
- (forward-char (if is-org-mode -8 -6)))))
+<pre class="src src-elisp"><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">defun</span> <span class="org-function-name">endless/insert-key</span> <span class="org-rainbow-delimiters-depth-2">(</span>key<span class="org-rainbow-delimiters-depth-2">)</span>
+ <span class="org-doc">"Ask for a key then insert its description.</span>
+<span class="org-doc">Will work on both org-mode and any mode that accepts plain html."</span>
+ <span class="org-rainbow-delimiters-depth-2">(</span><span class="org-keyword">interactive</span> <span class="org-string">"kType key sequence: "</span><span class="org-rainbow-delimiters-depth-2">)</span>
+ <span class="org-rainbow-delimiters-depth-2">(</span><span class="org-keyword">let*</span> <span class="org-rainbow-delimiters-depth-3">(</span><span class="org-rainbow-delimiters-depth-4">(</span>is-org-mode <span class="org-rainbow-delimiters-depth-5">(</span>derived-mode-p 'org-mode<span class="org-rainbow-delimiters-depth-5">)</span><span class="org-rainbow-delimiters-depth-4">)</span>
+ <span class="org-rainbow-delimiters-depth-4">(</span>tag <span class="org-rainbow-delimiters-depth-5">(</span><span class="org-keyword">if</span> is-org-mode
+ <span class="org-string">"@@html:&lt;kbd&gt;%s&lt;/kbd&gt;@@"</span>
+ <span class="org-string">"&lt;kbd&gt;%s&lt;/kbd&gt;"</span><span class="org-rainbow-delimiters-depth-5">)</span><span class="org-rainbow-delimiters-depth-4">)</span><span class="org-rainbow-delimiters-depth-3">)</span>
+ <span class="org-rainbow-delimiters-depth-3">(</span><span class="org-keyword">if</span> <span class="org-rainbow-delimiters-depth-4">(</span>null <span class="org-rainbow-delimiters-depth-5">(</span>equal key <span class="org-string">"\r"</span><span class="org-rainbow-delimiters-depth-5">)</span><span class="org-rainbow-delimiters-depth-4">)</span>
+ <span class="org-rainbow-delimiters-depth-4">(</span>insert
+ <span class="org-rainbow-delimiters-depth-5">(</span>format tag <span class="org-rainbow-delimiters-depth-6">(</span>help-key-description key nil<span class="org-rainbow-delimiters-depth-6">)</span><span class="org-rainbow-delimiters-depth-5">)</span><span class="org-rainbow-delimiters-depth-4">)</span>
+ <span class="org-rainbow-delimiters-depth-4">(</span>insert <span class="org-rainbow-delimiters-depth-5">(</span>format tag <span class="org-string">""</span><span class="org-rainbow-delimiters-depth-5">)</span><span class="org-rainbow-delimiters-depth-4">)</span>
+ <span class="org-rainbow-delimiters-depth-4">(</span>forward-char <span class="org-rainbow-delimiters-depth-5">(</span><span class="org-keyword">if</span> is-org-mode -8 -6<span class="org-rainbow-delimiters-depth-5">)</span><span class="org-rainbow-delimiters-depth-4">)</span><span class="org-rainbow-delimiters-depth-3">)</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>
-(define-key org-mode-map "\C-ck" #'endless/insert-key)
+<span class="org-rainbow-delimiters-depth-1">(</span>define-key org-mode-map <span class="org-string">"\C-ck"</span> #'endless/insert-key<span class="org-rainbow-delimiters-depth-1">)</span>
</pre>
</div>
</div>
+</div>
-<div id="outline-container-sec-13-1" class="outline-3">
-<h3 id="sec-13-1"><span class="section-number-3">13.1</span> <span class="todo TODO">TODO</span> shortcut for making an org link, and transforming a link into a proper org link</h3>
+<div id="outline-container-sec-13-5" class="outline-3">
+<h3 id="sec-13-5"><span class="todo TODO">TODO</span> shortcut for making an org link, and transforming a link into a proper org link</h3>
</div>
-<div id="outline-container-sec-13-2" class="outline-3">
-<h3 id="sec-13-2"><span class="section-number-3">13.2</span> <span class="todo TODO">TODO</span> make it work with evil</h3>
+<div id="outline-container-sec-13-6" class="outline-3">
+<h3 id="sec-13-6"><span class="todo TODO">TODO</span> make it work with evil</h3>
</div>
-<div id="outline-container-sec-13-3" class="outline-3">
-<h3 id="sec-13-3"><span class="section-number-3">13.3</span> <span class="todo TODO">TODO</span> Proper keybindings for quick access.</h3>
+<div id="outline-container-sec-13-7" class="outline-3">
+<h3 id="sec-13-7"><span class="todo TODO">TODO</span> Proper keybindings for quick access.</h3>
</div>
-<div id="outline-container-sec-13-4" class="outline-3">
-<h3 id="sec-13-4"><span class="section-number-3">13.4</span> <span class="todo TODO">TODO</span> shortcuts for stuff like: create something urgent for today</h3>
+<div id="outline-container-sec-13-8" class="outline-3">
+<h3 id="sec-13-8"><span class="todo TODO">TODO</span> shortcuts for stuff like: create something urgent for today</h3>
</div>
</div>
<div id="outline-container-sec-14" class="outline-2">
-<h2 id="sec-14"><span class="section-number-2">14</span> Languages</h2>
+<h2 id="sec-14">Languages</h2>
<div class="outline-text-2" id="text-14">
<p>
First of all, define a function that identifies some warning keywords
@@ -1842,12 +1894,12 @@ First of all, define a function that identifies some warning keywords
<div class="org-src-container">
-<pre class="src src-elisp">(defun warnings-mode-hook ()
- "Hook for enabling the warning face on strings with a warning prefix."
+<pre class="src src-elisp"><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">defun</span> <span class="org-function-name">warnings-mode-hook</span> <span class="org-rainbow-delimiters-depth-2">()</span>
+ <span class="org-doc">"Hook for enabling the warning face on strings with a warning prefix."</span>
- (font-lock-add-keywords nil
- '(("\\(XXX\\|FIXME\\|TODO\\|HACK\\|NOTE\\)"
- 1 font-lock-warning-face prepend))))
+ <span class="org-rainbow-delimiters-depth-2">(</span>font-lock-add-keywords nil
+ '<span class="org-rainbow-delimiters-depth-3">(</span><span class="org-rainbow-delimiters-depth-4">(</span><span class="org-string">"</span><span class="org-string"><span class="org-regexp-grouping-backslash">\\</span></span><span class="org-string"><span class="org-regexp-grouping-construct">(</span></span><span class="org-string"><span class="org-warning">XXX</span></span><span class="org-string"><span class="org-regexp-grouping-backslash">\\</span></span><span class="org-string"><span class="org-regexp-grouping-construct">|</span></span><span class="org-string"><span class="org-warning">FIXME</span></span><span class="org-string"><span class="org-regexp-grouping-backslash">\\</span></span><span class="org-string"><span class="org-regexp-grouping-construct">|</span></span><span class="org-string"><span class="org-warning">TODO</span></span><span class="org-string"><span class="org-regexp-grouping-backslash">\\</span></span><span class="org-string"><span class="org-regexp-grouping-construct">|</span></span><span class="org-string"><span class="org-warning">HACK</span></span><span class="org-string"><span class="org-regexp-grouping-backslash">\\</span></span><span class="org-string"><span class="org-regexp-grouping-construct">|</span></span><span class="org-string"><span class="org-warning">NOTE</span></span><span class="org-string"><span class="org-regexp-grouping-backslash">\\</span></span><span class="org-string"><span class="org-regexp-grouping-construct">)</span></span><span class="org-string">"</span>
+ 1 font-lock-warning-face prepend<span class="org-rainbow-delimiters-depth-4">)</span><span class="org-rainbow-delimiters-depth-3">)</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>
</pre>
</div>
@@ -1858,10 +1910,10 @@ context too. In this case, I want spell check and <code>wc-mode</code> activated
<div class="org-src-container">
-<pre class="src src-elisp">(add-hook 'text-mode-hook
- (lambda ()
- (flyspell-mode 1)
- (wc-mode 1)))
+<pre class="src src-elisp"><span class="org-rainbow-delimiters-depth-1">(</span>add-hook 'text-mode-hook
+ <span class="org-rainbow-delimiters-depth-2">(</span><span class="org-keyword">lambda</span> <span class="org-rainbow-delimiters-depth-3">()</span>
+ <span class="org-rainbow-delimiters-depth-3">(</span>flyspell-mode 1<span class="org-rainbow-delimiters-depth-3">)</span>
+ <span class="org-rainbow-delimiters-depth-3">(</span>wc-mode 1<span class="org-rainbow-delimiters-depth-3">)</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>
</pre>
</div>
@@ -1873,13 +1925,13 @@ confusing. Moreover, I'm also enabling <code>eldoc-mode</code> and the aforement
<div class="org-src-container">
-<pre class="src src-elisp">(add-hook 'emacs-lisp-mode-hook
- (lambda ()
- (eldoc-mode 1)
- (warnings-mode-hook)
- (rainbow-delimiters-mode 1)
- ; https://github.com/jhenahan/emacs.d/blob/master/emacs-init.org#emacs-lisp
- (setq mode-name "ξ")))
+<pre class="src src-elisp"><span class="org-rainbow-delimiters-depth-1">(</span>add-hook 'emacs-lisp-mode-hook
+ <span class="org-rainbow-delimiters-depth-2">(</span><span class="org-keyword">lambda</span> <span class="org-rainbow-delimiters-depth-3">()</span>
+ <span class="org-rainbow-delimiters-depth-3">(</span>eldoc-mode 1<span class="org-rainbow-delimiters-depth-3">)</span>
+ <span class="org-rainbow-delimiters-depth-3">(</span>warnings-mode-hook<span class="org-rainbow-delimiters-depth-3">)</span>
+ <span class="org-rainbow-delimiters-depth-3">(</span>rainbow-delimiters-mode 1<span class="org-rainbow-delimiters-depth-3">)</span>
+ <span class="org-comment-delimiter">; </span><span class="org-comment">https://github.com/jhenahan/emacs.d/blob/master/emacs-init.org#emacs-lisp</span>
+ <span class="org-rainbow-delimiters-depth-3">(</span><span class="org-keyword">setq</span> mode-name <span class="org-string">"&#958;"</span><span class="org-rainbow-delimiters-depth-3">)</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>
</pre>
</div>
@@ -1890,17 +1942,17 @@ comments and the usage of tabs instead of spaces.
<div class="org-src-container">
-<pre class="src src-elisp">; Note that C-common includes languages with a similar syntax of C.
-(add-hook 'c-mode-common-hook 'warnings-mode-hook)
-(add-hook 'c-mode-common-hook (lambda() (flyspell-prog-mode)))
+<pre class="src src-elisp"><span class="org-comment-delimiter">; </span><span class="org-comment">Note that C-common includes languages with a similar syntax of C.</span>
+<span class="org-rainbow-delimiters-depth-1">(</span>add-hook 'c-mode-common-hook 'warnings-mode-hook<span class="org-rainbow-delimiters-depth-1">)</span>
+<span class="org-rainbow-delimiters-depth-1">(</span>add-hook 'c-mode-common-hook <span class="org-rainbow-delimiters-depth-2">(</span><span class="org-keyword">lambda</span><span class="org-rainbow-delimiters-depth-3">()</span> <span class="org-rainbow-delimiters-depth-3">(</span>flyspell-prog-mode<span class="org-rainbow-delimiters-depth-3">)</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>
-;; C
-(add-hook 'c-mode-hook
- (lambda () (setq indent-tabs-mode t)))
+<span class="org-comment-delimiter">;; </span><span class="org-comment">C</span>
+<span class="org-rainbow-delimiters-depth-1">(</span>add-hook 'c-mode-hook
+ <span class="org-rainbow-delimiters-depth-2">(</span><span class="org-keyword">lambda</span> <span class="org-rainbow-delimiters-depth-3">()</span> <span class="org-rainbow-delimiters-depth-3">(</span><span class="org-keyword">setq</span> indent-tabs-mode t<span class="org-rainbow-delimiters-depth-3">)</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>
-;; C++
-(add-hook 'c++-mode-hook
- (lambda () (setq indent-tabs-mode t)))
+<span class="org-comment-delimiter">;; </span><span class="org-comment">C++</span>
+<span class="org-rainbow-delimiters-depth-1">(</span>add-hook 'c++-mode-hook
+ <span class="org-rainbow-delimiters-depth-2">(</span><span class="org-keyword">lambda</span> <span class="org-rainbow-delimiters-depth-3">()</span> <span class="org-rainbow-delimiters-depth-3">(</span><span class="org-keyword">setq</span> indent-tabs-mode t<span class="org-rainbow-delimiters-depth-3">)</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>
</pre>
</div>
@@ -1910,7 +1962,7 @@ Include warning keywords in Ruby.
<div class="org-src-container">
-<pre class="src src-elisp">(add-hook 'ruby-mode-hook 'warnings-mode-hook)
+<pre class="src src-elisp"><span class="org-rainbow-delimiters-depth-1">(</span>add-hook 'ruby-mode-hook 'warnings-mode-hook<span class="org-rainbow-delimiters-depth-1">)</span>
</pre>
</div>
@@ -1921,46 +1973,46 @@ And now my Go configuration. This includes stuff like the usage of <code>goimpor
<div class="org-src-container">
-<pre class="src src-elisp">(defun mssola-go-mode ()
- "My configuration for Go mode."
+<pre class="src src-elisp"><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">defun</span> <span class="org-function-name">mssola-go-mode</span> <span class="org-rainbow-delimiters-depth-2">()</span>
+ <span class="org-doc">"My configuration for Go mode."</span>
- ; Use goimports instead of go-fmt
- (setq gofmt-command "goimports")
+ <span class="org-comment-delimiter">; </span><span class="org-comment">Use goimports instead of go-fmt</span>
+ <span class="org-rainbow-delimiters-depth-2">(</span><span class="org-keyword">setq</span> gofmt-command <span class="org-string">"goimports"</span><span class="org-rainbow-delimiters-depth-2">)</span>
- ; Call Gofmt before saving
- (add-hook 'before-save-hook 'gofmt-before-save)
+ <span class="org-comment-delimiter">; </span><span class="org-comment">Call Gofmt before saving</span>
+ <span class="org-rainbow-delimiters-depth-2">(</span>add-hook 'before-save-hook 'gofmt-before-save<span class="org-rainbow-delimiters-depth-2">)</span>
- ; Integration flycheck with Go
- (add-to-list 'load-path
- (concat (getenv "GOPATH") "/src/github.com/dougm/goflymake"))
- (require 'go-flycheck)
+ <span class="org-comment-delimiter">; </span><span class="org-comment">Integration flycheck with Go</span>
+ <span class="org-rainbow-delimiters-depth-2">(</span>add-to-list 'load-path
+ <span class="org-rainbow-delimiters-depth-3">(</span>concat <span class="org-rainbow-delimiters-depth-4">(</span>getenv <span class="org-string">"GOPATH"</span><span class="org-rainbow-delimiters-depth-4">)</span> <span class="org-string">"/src/github.com/dougm/goflymake"</span><span class="org-rainbow-delimiters-depth-3">)</span><span class="org-rainbow-delimiters-depth-2">)</span>
+ <span class="org-rainbow-delimiters-depth-2">(</span><span class="org-keyword">require</span> '<span class="org-constant">go-flycheck</span><span class="org-rainbow-delimiters-depth-2">)</span>
- (evil-leader/set-key
- "." 'godef-jump-other-window)
+ <span class="org-rainbow-delimiters-depth-2">(</span>evil-leader/set-key
+ <span class="org-string">"."</span> 'godef-jump-other-window<span class="org-rainbow-delimiters-depth-2">)</span>
- (setq indent-tabs-mode t)
- (flyspell-prog-mode)
+ <span class="org-rainbow-delimiters-depth-2">(</span><span class="org-keyword">setq</span> indent-tabs-mode t<span class="org-rainbow-delimiters-depth-2">)</span>
+ <span class="org-rainbow-delimiters-depth-2">(</span>flyspell-prog-mode<span class="org-rainbow-delimiters-depth-2">)</span>
- ; eldoc support
- (use-package go-eldoc
- :ensure t
- :config
- (require 'go-eldoc))
+ <span class="org-comment-delimiter">; </span><span class="org-comment">eldoc support</span>
+ <span class="org-rainbow-delimiters-depth-2">(</span><span class="org-keyword">use-package</span> <span class="org-constant">go-eldoc</span>
+ <span class="org-builtin">:ensure</span> t
+ <span class="org-builtin">:config</span>
+ <span class="org-rainbow-delimiters-depth-3">(</span><span class="org-keyword">require</span> '<span class="org-constant">go-eldoc</span><span class="org-rainbow-delimiters-depth-3">)</span><span class="org-rainbow-delimiters-depth-2">)</span>
- (use-package go-add-tags
- :ensure t
- :config
- (evil-leader/set-key "t" 'go-add-tags)))
+ <span class="org-rainbow-delimiters-depth-2">(</span><span class="org-keyword">use-package</span> <span class="org-constant">go-add-tags</span>
+ <span class="org-builtin">:ensure</span> t
+ <span class="org-builtin">:config</span>
+ <span class="org-rainbow-delimiters-depth-3">(</span>evil-leader/set-key <span class="org-string">"t"</span> 'go-add-tags<span class="org-rainbow-delimiters-depth-3">)</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>
-;; Go
-(use-package go-mode
- :ensure t
- :pin melpa-stable
- :config
+<span class="org-comment-delimiter">;; </span><span class="org-comment">Go</span>
+<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">use-package</span> <span class="org-constant">go-mode</span>
+ <span class="org-builtin">:ensure</span> t
+ <span class="org-builtin">:pin</span> melpa-stable
+ <span class="org-builtin">:config</span>
- (add-hook 'go-mode-hook 'warnings-mode-hook)
- (add-hook 'go-mode-hook 'go-eldoc-setup)
- (add-hook 'go-mode-hook 'mssola-go-mode))
+ <span class="org-rainbow-delimiters-depth-2">(</span>add-hook 'go-mode-hook 'warnings-mode-hook<span class="org-rainbow-delimiters-depth-2">)</span>
+ <span class="org-rainbow-delimiters-depth-2">(</span>add-hook 'go-mode-hook 'go-eldoc-setup<span class="org-rainbow-delimiters-depth-2">)</span>
+ <span class="org-rainbow-delimiters-depth-2">(</span>add-hook 'go-mode-hook 'mssola-go-mode<span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>
</pre>
</div>
@@ -1972,13 +2024,13 @@ usings tabs for indentation (C, C++ and Go).
<div class="org-src-container">
-<pre class="src src-elisp">(use-package smart-tabs-mode
- :ensure t
- :config
- (smart-tabs-add-language-support golang go-mode-hook
- ((c-indent-line . c-basic-offset)
- (c-indent-region . c-basic-offset)))
- (smart-tabs-insinuate 'c 'c++ 'golang))
+<pre class="src src-elisp"><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">use-package</span> <span class="org-constant">smart-tabs-mode</span>
+ <span class="org-builtin">:ensure</span> t
+ <span class="org-builtin">:config</span>
+ <span class="org-rainbow-delimiters-depth-2">(</span><span class="org-keyword">smart-tabs-add-language-support</span> golang go-mode-hook
+ <span class="org-rainbow-delimiters-depth-3">(</span><span class="org-rainbow-delimiters-depth-4">(</span>c-indent-line . c-basic-offset<span class="org-rainbow-delimiters-depth-4">)</span>
+ <span class="org-rainbow-delimiters-depth-4">(</span>c-indent-region . c-basic-offset<span class="org-rainbow-delimiters-depth-4">)</span><span class="org-rainbow-delimiters-depth-3">)</span><span class="org-rainbow-delimiters-depth-2">)</span>
+ <span class="org-rainbow-delimiters-depth-2">(</span>smart-tabs-insinuate 'c 'c++ 'golang<span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>
</pre>
</div>
@@ -1988,29 +2040,29 @@ Inferior markup languages.
<div class="org-src-container">
-<pre class="src src-elisp">;; Markdown mode with preview mode in the browser.
-(use-package markdown-mode
- :ensure t
- :config
+<pre class="src src-elisp"><span class="org-comment-delimiter">;; </span><span class="org-comment">Markdown mode with preview mode in the browser.</span>
+<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">use-package</span> <span class="org-constant">markdown-mode</span>
+ <span class="org-builtin">:ensure</span> t
+ <span class="org-builtin">:config</span>
- ; This is the one that I got from openSUSE.
- (custom-set-variables
- '(markdown-command "/usr/bin/markdown-calibre"))
+ <span class="org-comment-delimiter">; </span><span class="org-comment">This is the one that I got from openSUSE.</span>
+ <span class="org-rainbow-delimiters-depth-2">(</span>custom-set-variables
+ '<span class="org-rainbow-delimiters-depth-3">(</span>markdown-command <span class="org-string">"/usr/bin/markdown-calibre"</span><span class="org-rainbow-delimiters-depth-3">)</span><span class="org-rainbow-delimiters-depth-2">)</span>
- ; Preview mode does its things through websockets, so it's a requirement.
- ; After that, we can safely require it.
- (use-package websocket
- :ensure t
- :config
- (use-package markdown-preview-mode
- :ensure t)))
+ <span class="org-comment-delimiter">; </span><span class="org-comment">Preview mode does its things through websockets, so it's a requirement.</span>
+ <span class="org-comment-delimiter">; </span><span class="org-comment">After that, we can safely require it.</span>
+ <span class="org-rainbow-delimiters-depth-2">(</span><span class="org-keyword">use-package</span> <span class="org-constant">websocket</span>
+ <span class="org-builtin">:ensure</span> t
+ <span class="org-builtin">:config</span>
+ <span class="org-rainbow-delimiters-depth-3">(</span><span class="org-keyword">use-package</span> <span class="org-constant">markdown-preview-mode</span>
+ <span class="org-builtin">:ensure</span> t<span class="org-rainbow-delimiters-depth-3">)</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>
-; YAML
-(use-package yaml-mode
- :ensure t
- :config
+<span class="org-comment-delimiter">; </span><span class="org-comment">YAML</span>
+<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">use-package</span> <span class="org-constant">yaml-mode</span>
+ <span class="org-builtin">:ensure</span> t
+ <span class="org-builtin">:config</span>
- (add-hook 'yaml-mode-hook 'warnings-mode-hook))
+ <span class="org-rainbow-delimiters-depth-2">(</span>add-hook 'yaml-mode-hook 'warnings-mode-hook<span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>
</pre>
</div>
@@ -2020,32 +2072,32 @@ Web-related stuff.
<div class="org-src-container">
-<pre class="src src-elisp">(use-package slim-mode
- :ensure t)
+<pre class="src src-elisp"><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">use-package</span> <span class="org-constant">slim-mode</span>
+ <span class="org-builtin">:ensure</span> t<span class="org-rainbow-delimiters-depth-1">)</span>
-(use-package scss-mode
- :ensure t
- :config
+<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">use-package</span> <span class="org-constant">scss-mode</span>
+ <span class="org-builtin">:ensure</span> t
+ <span class="org-builtin">:config</span>
- (setq scss-compile-at-save nil)
- (add-hook 'yaml-mode-hook 'warnings-mode-hook))
+ <span class="org-rainbow-delimiters-depth-2">(</span><span class="org-keyword">setq</span> scss-compile-at-save nil<span class="org-rainbow-delimiters-depth-2">)</span>
+ <span class="org-rainbow-delimiters-depth-2">(</span>add-hook 'yaml-mode-hook 'warnings-mode-hook<span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>
-(use-package php-mode
- :ensure t)
+<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">use-package</span> <span class="org-constant">php-mode</span>
+ <span class="org-builtin">:ensure</span> t<span class="org-rainbow-delimiters-depth-1">)</span>
-(use-package web-mode
- :ensure t
- :config
+<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">use-package</span> <span class="org-constant">web-mode</span>
+ <span class="org-builtin">:ensure</span> t
+ <span class="org-builtin">:config</span>
- (add-to-list 'auto-mode-alist '("\\.erb\\'" . web-mode))
- (add-to-list 'auto-mode-alist '("\\.jinja\\'" . web-mode))
- (add-to-list 'auto-mode-alist '("\\.html?\\'" . web-mode))
+ <span class="org-rainbow-delimiters-depth-2">(</span>add-to-list 'auto-mode-alist '<span class="org-rainbow-delimiters-depth-3">(</span><span class="org-string">"\\.erb\\'"</span> . web-mode<span class="org-rainbow-delimiters-depth-3">)</span><span class="org-rainbow-delimiters-depth-2">)</span>
+ <span class="org-rainbow-delimiters-depth-2">(</span>add-to-list 'auto-mode-alist '<span class="org-rainbow-delimiters-depth-3">(</span><span class="org-string">"\\.jinja\\'"</span> . web-mode<span class="org-rainbow-delimiters-depth-3">)</span><span class="org-rainbow-delimiters-depth-2">)</span>
+ <span class="org-rainbow-delimiters-depth-2">(</span>add-to-list 'auto-mode-alist '<span class="org-rainbow-delimiters-depth-3">(</span><span class="org-string">"\\.html?\\'"</span> . web-mode<span class="org-rainbow-delimiters-depth-3">)</span><span class="org-rainbow-delimiters-depth-2">)</span>
- (add-hook 'web-mode-hook
- (lambda ()
- (setq web-mode-markup-indent-offset 2)
- (setq web-mode-css-indent-offset 2)
- (setq web-mode-code-indent-offset 2))))
+ <span class="org-rainbow-delimiters-depth-2">(</span>add-hook 'web-mode-hook
+ <span class="org-rainbow-delimiters-depth-3">(</span><span class="org-keyword">lambda</span> <span class="org-rainbow-delimiters-depth-4">()</span>
+ <span class="org-rainbow-delimiters-depth-4">(</span><span class="org-keyword">setq</span> web-mode-markup-indent-offset 2<span class="org-rainbow-delimiters-depth-4">)</span>
+ <span class="org-rainbow-delimiters-depth-4">(</span><span class="org-keyword">setq</span> web-mode-css-indent-offset 2<span class="org-rainbow-delimiters-depth-4">)</span>
+ <span class="org-rainbow-delimiters-depth-4">(</span><span class="org-keyword">setq</span> web-mode-code-indent-offset 2<span class="org-rainbow-delimiters-depth-4">)</span><span class="org-rainbow-delimiters-depth-3">)</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>
</pre>
</div>
@@ -2055,22 +2107,22 @@ CMake for y'all.
<div class="org-src-container">
-<pre class="src src-elisp">(use-package cmake-mode
- :ensure t
- :config
+<pre class="src src-elisp"><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">use-package</span> <span class="org-constant">cmake-mode</span>
+ <span class="org-builtin">:ensure</span> t
+ <span class="org-builtin">:config</span>
- (setq auto-mode-alist
- (append
- '(("CMakeLists\\.txt\\'" . cmake-mode))
- '(("\\.cmake\\'" . cmake-mode))
- auto-mode-alist))
+ <span class="org-rainbow-delimiters-depth-2">(</span><span class="org-keyword">setq</span> auto-mode-alist
+ <span class="org-rainbow-delimiters-depth-3">(</span>append
+ '<span class="org-rainbow-delimiters-depth-4">(</span><span class="org-rainbow-delimiters-depth-5">(</span><span class="org-string">"CMakeLists\\.txt\\'"</span> . cmake-mode<span class="org-rainbow-delimiters-depth-5">)</span><span class="org-rainbow-delimiters-depth-4">)</span>
+ '<span class="org-rainbow-delimiters-depth-4">(</span><span class="org-rainbow-delimiters-depth-5">(</span><span class="org-string">"\\.cmake\\'"</span> . cmake-mode<span class="org-rainbow-delimiters-depth-5">)</span><span class="org-rainbow-delimiters-depth-4">)</span>
+ auto-mode-alist<span class="org-rainbow-delimiters-depth-3">)</span><span class="org-rainbow-delimiters-depth-2">)</span>
- (use-package cmake-font-lock
- :ensure t
- :config
+ <span class="org-rainbow-delimiters-depth-2">(</span><span class="org-keyword">use-package</span> <span class="org-constant">cmake-font-lock</span>
+ <span class="org-builtin">:ensure</span> t
+ <span class="org-builtin">:config</span>
- (add-hook 'cmake-mode-hook 'cmake-font-lock-activate)
- (add-hook 'yaml-mode-hook 'warnings-mode-hook)))
+ <span class="org-rainbow-delimiters-depth-3">(</span>add-hook 'cmake-mode-hook 'cmake-font-lock-activate<span class="org-rainbow-delimiters-depth-3">)</span>
+ <span class="org-rainbow-delimiters-depth-3">(</span>add-hook 'yaml-mode-hook 'warnings-mode-hook<span class="org-rainbow-delimiters-depth-3">)</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>
</pre>
</div>
@@ -2081,23 +2133,23 @@ now because it's buggy, but I still have hope.
<div class="org-src-container">
-<pre class="src src-elisp">(use-package dockerfile-mode
- :ensure t
- :config
+<pre class="src src-elisp"><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">use-package</span> <span class="org-constant">dockerfile-mode</span>
+ <span class="org-builtin">:ensure</span> t
+ <span class="org-builtin">:config</span>
- (add-to-list 'auto-mode-alist '("Dockerfile\\'" . dockerfile-mode)))
+ <span class="org-rainbow-delimiters-depth-2">(</span>add-to-list 'auto-mode-alist '<span class="org-rainbow-delimiters-depth-3">(</span><span class="org-string">"Dockerfile\\'"</span> . dockerfile-mode<span class="org-rainbow-delimiters-depth-3">)</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>
-(use-package terraform-mode
- :ensure t
- :config
+<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">use-package</span> <span class="org-constant">terraform-mode</span>
+ <span class="org-builtin">:ensure</span> t
+ <span class="org-builtin">:config</span>
- (terraform-format-on-save-mode))
+ <span class="org-rainbow-delimiters-depth-2">(</span>terraform-format-on-save-mode<span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>
-(use-package hcl-mode
- :ensure t)
+<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">use-package</span> <span class="org-constant">hcl-mode</span>
+ <span class="org-builtin">:ensure</span> t<span class="org-rainbow-delimiters-depth-1">)</span>
-;(use-package salt-mode
- ;:ensure t)
+<span class="org-comment-delimiter">;</span><span class="org-comment">(use-package salt-mode</span>
+ <span class="org-comment-delimiter">;</span><span class="org-comment">:ensure t)</span>
</pre>
</div>
@@ -2110,11 +2162,11 @@ criteria really).
<div class="org-src-container">
-<pre class="src src-elisp">(dolist (lang-hook '(ruby-mode-hook
+<pre class="src src-elisp"><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">dolist</span> <span class="org-rainbow-delimiters-depth-2">(</span>lang-hook '<span class="org-rainbow-delimiters-depth-3">(</span>ruby-mode-hook
php-mode-hook
perl-mode-hook
- emacs-lisp-mode-hook))
- (add-hook lang-hook 'soria-purple-identifiers))
+ emacs-lisp-mode-hook<span class="org-rainbow-delimiters-depth-3">)</span><span class="org-rainbow-delimiters-depth-2">)</span>
+ <span class="org-rainbow-delimiters-depth-2">(</span>add-hook lang-hook 'soria-purple-identifiers<span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>
</pre>
</div>
@@ -2125,18 +2177,18 @@ for writing some common blocks.
<div class="org-src-container">
-<pre class="src src-elisp">(use-package yasnippet
- :ensure t
- :config
- (yas-reload-all)
- (add-hook 'prog-mode-hook #'yas-minor-mode))
+<pre class="src src-elisp"><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">use-package</span> <span class="org-constant">yasnippet</span>
+ <span class="org-builtin">:ensure</span> t
+ <span class="org-builtin">:config</span>
+ <span class="org-rainbow-delimiters-depth-2">(</span>yas-reload-all<span class="org-rainbow-delimiters-depth-2">)</span>
+ <span class="org-rainbow-delimiters-depth-2">(</span>add-hook 'prog-mode-hook #'yas-minor-mode<span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>
</pre>
</div>
</div>
</div>
<div id="outline-container-sec-15" class="outline-2">
-<h2 id="sec-15"><span class="section-number-2">15</span> Misc</h2>
+<h2 id="sec-15">Misc</h2>
<div class="outline-text-2" id="text-15">
<p>
Install a set of useful functions from <a href="https://github.com/bbatsov">@bbatsov</a>. The bindings are following
@@ -2146,18 +2198,18 @@ too many things into my leader and these shortcuts look sensible to me).
<div class="org-src-container">
-<pre class="src src-elisp">(use-package crux
- :ensure t
- :bind (("C-c d" . crux-delete-file-and-buffer)
- ("C-c r" . crux-rename-file-and-buffer)
- ("C-c i" . crux-find-user-init-file)
- ("C-c o" . crux-open-with)))
+<pre class="src src-elisp"><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">use-package</span> <span class="org-constant">crux</span>
+ <span class="org-builtin">:ensure</span> t
+ <span class="org-builtin">:bind</span> <span class="org-rainbow-delimiters-depth-2">(</span><span class="org-rainbow-delimiters-depth-3">(</span><span class="org-string">"C-c d"</span> . crux-delete-file-and-buffer<span class="org-rainbow-delimiters-depth-3">)</span>
+ <span class="org-rainbow-delimiters-depth-3">(</span><span class="org-string">"C-c r"</span> . crux-rename-file-and-buffer<span class="org-rainbow-delimiters-depth-3">)</span>
+ <span class="org-rainbow-delimiters-depth-3">(</span><span class="org-string">"C-c i"</span> . crux-find-user-init-file<span class="org-rainbow-delimiters-depth-3">)</span>
+ <span class="org-rainbow-delimiters-depth-3">(</span><span class="org-string">"C-c o"</span> . crux-open-with<span class="org-rainbow-delimiters-depth-3">)</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>
</pre>
</div>
</div>
</div>
<div id="outline-container-sec-16" class="outline-2">
-<h2 id="sec-16"><span class="section-number-2">16</span> Credits</h2>
+<h2 id="sec-16">Credits</h2>
<div class="outline-text-2" id="text-16">
<p>
I've built this file by simply scavenging from other people's emacs.d/dotfiles
@@ -2175,7 +2227,7 @@ repositories. I have taken lots of pieces from here and there, but most notably:
</li>
<li><a href="https://github.com/purcell/emacs.d">@purcell</a>
</li>
-<li><a href="https://github.com/sachac/emacs.d">@sachac</a> (<a href="http://pages.sachachua.com/.emacs.d/Sacha.html">HTML version</a>)
+<li><a href="https://github.com/sachac/.emacs.d">@sachac</a> (<a href="http://pages.sachachua.com/.emacs.d/Sacha.html">HTML version</a>)
</li>
<li><a href="https://github.com/larstvei/dot-emacs">@larstvei</a>
</li>
@@ -2184,11 +2236,11 @@ repositories. I have taken lots of pieces from here and there, but most notably:
</div>
<div id="outline-container-sec-17" class="outline-2">
-<h2 id="sec-17"><span class="section-number-2">17</span> License</h2>
+<h2 id="sec-17">License</h2>
<div class="outline-text-2" id="text-17">
<div class="org-src-container">
-<pre class="src src-text">Copyright (C) 2014-2017 Miquel Sabaté Solà &lt;mikisabate@gmail.com&gt;
+<pre class="src src-text">Copyright (C) 2014-2017 Miquel Sabat&#233; Sol&#224; <a href="mailto:mikisabate%40gmail.com">&lt;mikisabate@gmail.com&gt;</a>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -2201,7 +2253,7 @@ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
-along with this program. If not, see &lt;http://www.gnu.org/licenses/&gt;.
+along with this program. If not, see <a href="http://www.gnu.org/licenses/">&lt;http://www.gnu.org/licenses/&gt;</a>.
</pre>
</div>
</div>
@@ -2209,7 +2261,7 @@ along with this program. If not, see &lt;http://www.gnu.org/licenses/&gt;.
</div>
<div id="postamble" class="status">
<p class="author">Author: Miquel Sabaté Solà</p>
-<p class="date">Created: 2017-01-18 Wed 15:25</p>
+<p class="date">Created: 2017-01-18 Wed 18:42</p>
<p class="creator"><a href="http://www.gnu.org/software/emacs/">Emacs</a> 25.1.1 (<a href="http://orgmode.org">Org</a> mode 8.2.10)</p>
<p class="validation"><a href="http://validator.w3.org/check?uri=referer">Validate</a></p>
</div>
diff --git a/emacs/init.org b/emacs/init.org
index cc50e82..67708f5 100644
--- a/emacs/init.org
+++ b/emacs/init.org
@@ -1,6 +1,7 @@
#+TITLE: mssola's GNU Emacs configuration
#+AUTHOR: Miquel Sabaté Solà
#+HTML_HEAD: <link rel="stylesheet" href="http://jo.mssola.com/static/style.css" type="text/css" />
+#+HTML_HEAD: <link rel="stylesheet" href="http://jo.mssola.com/static/org.css" type="text/css" />
#+BABEL: :cache yes
#+PROPERTY: header-args :tangle ~/.emacs.d/init.el
@@ -1142,6 +1143,8 @@ And finally define a proper shortcut.
* org
+** General settings
+
First of all, let me define some helper functions.
#+BEGIN_SRC elisp
@@ -1178,25 +1181,24 @@ First of all, let me define some helper functions.
Some general UI settings for org mode.
#+BEGIN_SRC elisp
- (setq org-src-fontify-natively t
- org-src-tab-acts-natively t
- org-confirm-babel-evaluate nil
- org-edit-src-content-indentation 0)
+(setq org-src-tab-acts-natively t
+ org-confirm-babel-evaluate nil
+ org-edit-src-content-indentation 0)
- (setq org-todo-keywords
- '((sequence "TODO(t)" "|" "DONE(d!)")
- (sequence "IDEA(i)" "WORKING(w)" "|" "USED(u@/!)" "DISCARDED(x@/!)")))
+(setq org-todo-keywords
+ '((sequence "TODO(t)" "|" "DONE(d!)")
+ (sequence "IDEA(i)" "WORKING(w)" "|" "USED(u@/!)" "DISCARDED(x@/!)")))
- (setq org-todo-keyword-faces
- '(("TODO" . org-todo)
- ("IDEA" . font-lock-constant-face)
- ("WORKING" . font-lock-constant-face)
- ("DONE" . org-done)
- ("USED" . org-done)
- ("DISCARDED" . org-done)))
+(setq org-todo-keyword-faces
+ '(("TODO" . org-todo)
+ ("IDEA" . font-lock-constant-face)
+ ("WORKING" . font-lock-constant-face)
+ ("DONE" . org-done)
+ ("USED" . org-done)
+ ("DISCARDED" . org-done)))
#+END_SRC
-Loggins settings.
+Logging settings.
#+BEGIN_SRC elisp
(setq org-log-done t)
@@ -1210,6 +1212,31 @@ Where org files reside.
(setq org-agenda-files '("~/org/"))
#+END_SRC
+** Publishing
+
+In order to publish files into HTML, I would like to have =htmlize= installed.
+This package allows org to export to HTML in a better way (e.g. allowing code
+blocks to be converted into HTML as well, so we can properly colorize it).
+
+#+BEGIN_SRC elisp
+(use-package 'htmlize
+ :ensure t)
+#+END_SRC
+
+And now let's set all the related settings.
+
+#+BEGIN_SRC elisp
+(setq org-src-fontify-natively t
+ org-html-include-timestamps nil
+ org-html-toplevel-hlevel 2
+ org-html-htmlize-output-type 'css
+ org-export-with-section-numbers nil
+ org-export-with-sub-superscripts nil
+ org-export-htmlize-output-type 'css)
+#+END_SRC
+
+** Agenda
+
Custom commands for =org-agenda=.
#+BEGIN_SRC elisp
@@ -1290,6 +1317,8 @@ The prefix for the different kinds of types being used.
(todo . "%c:%t%s")))
#+END_SRC
+** Other
+
Insert a <kbd></kbd> value in org mode. See this [[http://emacs.stackexchange.com/questions/2206/i-want-to-have-the-kbd-tags-for-my-blog-written-in-org-mode][StackExchange answer]].
#+BEGIN_SRC elisp
@@ -1588,12 +1617,12 @@ repositories. I have taken lots of pieces from here and there, but most notably:
- [[https://github.com/bbatsov/emacs.d][@bbatsov]]
- [[https://github.com/aaronbieber/dotfiles][@aaronbieber]]
- [[https://github.com/purcell/emacs.d][@purcell]]
-- [[https://github.com/sachac/emacs.d][@sachac]] ([[http://pages.sachachua.com/.emacs.d/Sacha.html][HTML version]])
+- [[https://github.com/sachac/.emacs.d][@sachac]] ([[http://pages.sachachua.com/.emacs.d/Sacha.html][HTML version]])
- [[https://github.com/larstvei/dot-emacs][@larstvei]]
* License
-#+BEGIN_SRC text
+#+BEGIN_SRC text :tangle no
Copyright (C) 2014-2017 Miquel Sabaté Solà <mikisabate@gmail.com>
This program is free software: you can redistribute it and/or modify
diff --git a/emacs/org.css b/emacs/org.css
new file mode 100644
index 0000000..28bdd61
--- /dev/null
+++ b/emacs/org.css
@@ -0,0 +1,49 @@
+/*
+ * This file tries to mimick what we have in the soria theme. That being said,
+ * the HTML exporter of org-mode is not perfect, so there's tons of stuff that
+ * are not highlighted in the same way as in GNU Emacs. Anyways, the colors are
+ * as follows:
+ *
+ * soria-purple "#dfafdf"
+ * soria-darkpurple "#875f87"
+ * soria-white "#d0d0d0"
+ * soria-darkgray "#1c1c1c"
+ * soria-brightgreen "#81c13b"
+ * soria-green "#b9dc92"
+ * soria-darkgreen "#2f5361"
+ * soria-gray "#808080"
+ * soria-linegray "#3a3a3a"
+ * soria-statusgray "#4e4e4e"
+ * soria-statusncgray "#b2b2b2"
+ * soria-black "#000000"
+ * soria-whitest "#eeeeee"
+ * soria-yellow "#ffffaf"
+ * soria-orange "#d7af87"
+ * soria-redpastel "#d78787"
+ * soria-blue "#87afd7"
+ */
+
+.org-src-container pre {
+ color: #d0d0d0;
+ background-color: #1c1c1c;
+ border-left: 0px;
+}
+
+.org-warning { color: #b9dc92; }
+.org-keyword { color: #87afd7; }
+.org-function-name { color: #87afd7; }
+.org-builtin { color: #87afd7; }
+.org-constant { color: #ffffaf; }
+.org-string { color: #ffffaf; }
+.org-doc { color: #808080; }
+.org-comment { color: #808080; }
+.org-comment-delimiter { color: #808080; }
+.org-rainbow-delimiters-depth-1 { color: #81c13b; }
+.org-rainbow-delimiters-depth-2 { color: #d78787; }
+.org-rainbow-delimiters-depth-3 { color: #d7af87; }
+.org-rainbow-delimiters-depth-4 { color: #87afd7; }
+.org-rainbow-delimiters-depth-5 { color: #d0d0d0; }
+.org-rainbow-delimiters-depth-6 { color: #d0d0d0; }
+.org-rainbow-delimiters-depth-7 { color: #d0d0d0; }
+.org-rainbow-delimiters-depth-8 { color: #d0d0d0; }
+.org-rainbow-delimiters-depth-9 { color: #d0d0d0; }