diff options
| author | Miquel Sabaté Solà <msabate@suse.com> | 2017-03-15 15:14:09 +0100 |
|---|---|---|
| committer | Miquel Sabaté Solà <msabate@suse.com> | 2017-03-15 15:14:09 +0100 |
| commit | cf6d7d8bcea74e3dc51c94e6b61833f19b8e065a (patch) | |
| tree | d5ba6c3fb1404389800569953c5484f9acf2f581 | |
| parent | e7155e2ff63289278e20789795ee2e7cbe7249ab (diff) | |
| download | dotfiles-cf6d7d8bcea74e3dc51c94e6b61833f19b8e065a.tar.gz dotfiles-cf6d7d8bcea74e3dc51c94e6b61833f19b8e065a.zip | |
emacs: added an advice for find-file
This way we can edit files as root if needed.
Signed-off-by: Miquel Sabaté Solà <msabate@suse.com>
| -rw-r--r-- | emacs/init.html | 494 | ||||
| -rw-r--r-- | emacs/init.org | 24 |
2 files changed, 171 insertions, 347 deletions
diff --git a/emacs/init.html b/emacs/init.html index d273f81..2687495 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-03-14 Tue 20:48 --> +<!-- 2017-03-15 Wed 15:13 --> <meta http-equiv="Content-Type" content="text/html;charset=utf-8" /> <meta name="generator" content="Org-mode" /> <meta name="author" content="Miquel Sabaté Solà" /> @@ -164,42 +164,41 @@ for the JavaScript code in this tag. </ul> </li> <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> +<li><a href="#sec-8">Dired</a></li> +<li><a href="#sec-9">Evil</a></li> +<li><a href="#sec-10">Magit</a></li> +<li><a href="#sec-11">mu4e</a></li> +<li><a href="#sec-12">org</a> <ul> -<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">Capture</a></li> -<li><a href="#sec-13-5">Other</a></li> -<li><a href="#sec-13-6"><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-7"><span class="todo TODO">TODO</span> make it work with evil</a></li> -<li><a href="#sec-13-8"><span class="todo TODO">TODO</span> Proper keybindings for quick access.</a></li> -<li><a href="#sec-13-9"><span class="todo TODO">TODO</span> shortcuts for stuff like: create something urgent for today</a></li> +<li><a href="#sec-12-1">General settings</a></li> +<li><a href="#sec-12-2">Publishing</a></li> +<li><a href="#sec-12-3">Agenda</a></li> +<li><a href="#sec-12-4">Capture</a></li> +<li><a href="#sec-12-5">Other</a></li> +<li><a href="#sec-12-6"><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-12-7"><span class="todo TODO">TODO</span> make it work with evil</a></li> +<li><a href="#sec-12-8"><span class="todo TODO">TODO</span> Proper keybindings for quick access.</a></li> +<li><a href="#sec-12-9"><span class="todo TODO">TODO</span> shortcuts for stuff like: create something urgent for today</a></li> </ul> </li> -<li><a href="#sec-14">IRC</a></li> -<li><a href="#sec-15">Languages</a> +<li><a href="#sec-13">IRC</a></li> +<li><a href="#sec-14">Languages</a> <ul> -<li><a href="#sec-15-1">General</a></li> -<li><a href="#sec-15-2">Lisp</a></li> -<li><a href="#sec-15-3">C and C++</a></li> -<li><a href="#sec-15-4">Ruby</a></li> -<li><a href="#sec-15-5">Go</a></li> -<li><a href="#sec-15-6">Tabs vs spaces</a></li> -<li><a href="#sec-15-7">Inferior markup languages.</a></li> -<li><a href="#sec-15-8">Web-related stuff.</a></li> -<li><a href="#sec-15-9">Others</a></li> +<li><a href="#sec-14-1">General</a></li> +<li><a href="#sec-14-2">Lisp</a></li> +<li><a href="#sec-14-3">C and C++</a></li> +<li><a href="#sec-14-4">Ruby</a></li> +<li><a href="#sec-14-5">Go</a></li> +<li><a href="#sec-14-6">Tabs vs spaces</a></li> +<li><a href="#sec-14-7">Inferior markup languages.</a></li> +<li><a href="#sec-14-8">Web-related stuff.</a></li> +<li><a href="#sec-14-9">Others</a></li> </ul> </li> -<li><a href="#sec-16">WoMan</a></li> -<li><a href="#sec-17">Misc</a></li> -<li><a href="#sec-18">Credits</a></li> -<li><a href="#sec-19">License</a></li> +<li><a href="#sec-15">WoMan</a></li> +<li><a href="#sec-16">Misc</a></li> +<li><a href="#sec-17">Credits</a></li> +<li><a href="#sec-18">License</a></li> </ul> </div> </div> @@ -776,7 +775,7 @@ require it here on the very top. <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">diminish</span> +<pre class="src src-elisp"><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">use-package</span> diminish <span class="org-builtin">:ensure</span> t<span class="org-rainbow-delimiters-depth-1">)</span> </pre> </div> @@ -794,7 +793,7 @@ Ayo silver! <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">ag</span> +<pre class="src src-elisp"><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">use-package</span> ag <span class="org-builtin">:ensure</span> t <span class="org-builtin">:config</span> @@ -816,12 +815,12 @@ Then, for keeping up with my projects I use the Projectile + Helm combination. <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">projectile</span> +<pre class="src src-elisp"><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">use-package</span> projectile <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-1">)</span> -<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">use-package</span> <span class="org-constant">helm</span> +<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">use-package</span> helm <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> @@ -853,10 +852,10 @@ Then, for keeping up with my projects I use the Projectile + Helm combination. <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> - <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-rainbow-delimiters-depth-2">(</span><span class="org-keyword">use-package</span> helm-ag <span class="org-builtin">:ensure</span> t<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">helm-projectile</span> +<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">use-package</span> helm-projectile <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> @@ -935,198 +934,9 @@ binding to <kbd>,a</kbd> a function that calls to the proper function. </div> <div id="outline-container-sec-8" class="outline-2"> -<h2 id="sec-8">Edit</h2> +<h2 id="sec-8">Dired</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 -the coolest packages out there is <code>undo-tree</code>. It allows you to navigate through -the undo history in a tree (because GNU Emacs is cool and keeps track of undo -actions in a tree structure instead of in a stack). This package is included in -recent versions of GNU Emacs. -</p> - -<div class="org-src-container"> - -<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<span class="org-rainbow-delimiters-depth-2">)</span> - - <span class="org-rainbow-delimiters-depth-2">(</span>diminish 'undo-tree-mode<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> - -<p> -Another important package is <code>flycheck</code>, which is an on-the-fly syntax checking -extension. This works with lots of languages with proper glue code. -</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">let-alist</span> - <span class="org-builtin">:ensure</span> t<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">flycheck</span> - <span class="org-builtin">:ensure</span> t - <span class="org-builtin">:diminish</span> - <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> - - <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> - -<p> -A recurring issue in speeches and presentations is that when showing something -with your editor, you have to increase/decrease the fonts. I use the -<code>default-text-scale</code> package for this. -</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">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> - -<p> -Some languages use some delimiters a lot (e.g. lisp languages and -parenthesis). For this reason I'm using the <code>rainbow-delimiters</code> package, which -properly highlights each level in a different way (provided that your theme -supports 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">rainbow-delimiters</span> - <span class="org-builtin">:ensure</span> t<span class="org-rainbow-delimiters-depth-1">)</span> -</pre> -</div> - -<p> -I never use the mouse. -</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">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-2">(</span><span class="org-keyword">setq</span> global-disable-mouse-mode-lighter <span class="org-string">""</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span> -</pre> -</div> - -<p> -Sometimes you begin typing a prefix, but then you forget the following -chord. For this reason <code>which-key</code> was created. It will show the available -commands for the current chord as a list. -</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">which-key</span> - <span class="org-builtin">:ensure</span> t<span class="org-rainbow-delimiters-depth-1">)</span> -</pre> -</div> - -<p> -For some modes it is important to count the number of words in the text. For -this, we have <code>wc-mode</code>. -</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">wc-mode</span> - <span class="org-builtin">:ensure</span> t<span class="org-rainbow-delimiters-depth-1">)</span> -</pre> -</div> - -<p> -Next on the list, we have <code>writeroom-mode</code>. I honestly don't use this package -that often, but it's cool to have a distraction-free screen from time to time. -</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">writeroom-mode</span> - <span class="org-builtin">:ensure</span> t<span class="org-rainbow-delimiters-depth-1">)</span> -</pre> -</div> - -<p> -The <code>expand-region</code> package is an extension that is based on a Vim one, which -expands the region of selection with a single key chord. Even if evil covers -most of my uses, it's convenient to have this tool anyways. -</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">expand-region</span> - <span class="org-builtin">:ensure</span> t - <span class="org-builtin">:config</span> - - <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> - -<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 & pages in text mode.</span> -<span class="org-doc">Directly taken from: https://github.com/magnars/expand-region.el."</span> - - <span class="org-rainbow-delimiters-depth-2">(</span>set <span class="org-rainbow-delimiters-depth-3">(</span>make-local-variable 'er/try-expand-list<span class="org-rainbow-delimiters-depth-3">)</span> <span class="org-rainbow-delimiters-depth-3">(</span>append - er/try-expand-list - '<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> - -<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> - -<p> -Last but not least, <code>YASnippet</code>. This package allows people to define shortcuts -for writing some common blocks. Moreover, it comes with a set of builtin -snippets already. Since I don't remember some of these snippets, I've mapped -<kbd>, h</kbd> to <code>yas-describe-tables</code>, which shows the available -snippets in another buffer. -</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">yasnippet</span> - <span class="org-builtin">:ensure</span> t - <span class="org-builtin">:diminish</span> yas-minor-mode - <span class="org-builtin">:init</span> <span class="org-rainbow-delimiters-depth-2">(</span>yas-global-mode<span class="org-rainbow-delimiters-depth-2">)</span> - <span class="org-builtin">:config</span> - <span class="org-rainbow-delimiters-depth-2">(</span>yas-global-mode 1<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">"h"</span> 'yas-describe-tables<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-9" class="outline-2"> -<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, whenever I use it, I want basic evil movement. </p> @@ -1185,9 +995,9 @@ from the <a href="https://www.djcbsoftware.nl/code/mu/mu4e/Dired.html#Dired">mu4 </div> </div> -<div id="outline-container-sec-10" class="outline-2"> -<h2 id="sec-10">Evil</h2> -<div class="outline-text-2" id="text-10"> +<div id="outline-container-sec-9" class="outline-2"> +<h2 id="sec-9">Evil</h2> +<div class="outline-text-2" id="text-9"> <p> Forgive me, <a href="https://stallman.org/saint.html">Father</a>, for I have sinned. I've been exposed to modal editing through Vim, and that has changed how I view editing for the foreseeable future. @@ -1270,7 +1080,7 @@ Now make sure that Evil is installed, and call the relevant configuration functi <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">evil</span> +<pre class="src src-elisp"><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">use-package</span> evil <span class="org-builtin">:ensure</span> t <span class="org-builtin">:config</span> @@ -1300,7 +1110,7 @@ Vim into Evil. <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">evil-leader</span> +<pre class="src src-elisp"><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">use-package</span> evil-leader <span class="org-builtin">:ensure</span> t <span class="org-builtin">:config</span> <span class="org-rainbow-delimiters-depth-2">(</span>global-evil-leader-mode<span class="org-rainbow-delimiters-depth-2">)</span> @@ -1327,7 +1137,7 @@ having double quotes with single quotes in a single command). <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">evil-surround</span> +<pre class="src src-elisp"><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">use-package</span> evil-surround <span class="org-builtin">:ensure</span> t <span class="org-builtin">:config</span> <span class="org-rainbow-delimiters-depth-2">(</span>global-evil-surround-mode 1<span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span> @@ -1343,7 +1153,7 @@ the current line, regardless of the programming language. <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">evil-commentary</span> +<pre class="src src-elisp"><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">use-package</span> evil-commentary <span class="org-builtin">:ensure</span> t <span class="org-builtin">:config</span> <span class="org-rainbow-delimiters-depth-2">(</span>evil-commentary-mode t<span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span> @@ -1359,7 +1169,7 @@ respectively. <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">evil-args</span> +<pre class="src src-elisp"><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">use-package</span> evil-args <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> @@ -1385,7 +1195,7 @@ into Evil: <kbd>C-a</kbd> for increasing a number, and <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">evil-numbers</span> +<pre class="src src-elisp"><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">use-package</span> evil-numbers <span class="org-builtin">:ensure</span> t <span class="org-builtin">:config</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-a"</span><span class="org-rainbow-delimiters-depth-3">)</span> 'evil-numbers/inc-at-pt<span class="org-rainbow-delimiters-depth-2">)</span> @@ -1395,9 +1205,9 @@ into Evil: <kbd>C-a</kbd> for increasing a number, and </div> </div> -<div id="outline-container-sec-11" class="outline-2"> -<h2 id="sec-11">Magit</h2> -<div class="outline-text-2" id="text-11"> +<div id="outline-container-sec-10" class="outline-2"> +<h2 id="sec-10">Magit</h2> +<div class="outline-text-2" id="text-10"> <p> A git porcelain for GNU Emacs. Even if I'm still using the git CLI, it's certainly useful for some common tasks (I guess that I still need some learning). @@ -1405,7 +1215,7 @@ certainly useful for some common tasks (I guess that I still need some learning) <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">magit</span> +<pre class="src src-elisp"><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">use-package</span> magit <span class="org-builtin">:ensure</span> t <span class="org-builtin">:config</span> </pre> @@ -1458,7 +1268,7 @@ And repair some key bindings from Evil mode. <pre class="src src-elisp"><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">"s"</span> 'magit-status<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-magit</span> + <span class="org-rainbow-delimiters-depth-2">(</span><span class="org-keyword">use-package</span> evil-magit <span class="org-builtin">:ensure</span> t <span class="org-builtin">:config</span> @@ -1474,9 +1284,9 @@ And repair some key bindings from Evil mode. </div> </div> -<div id="outline-container-sec-12" class="outline-2"> -<h2 id="sec-12">mu4e</h2> -<div class="outline-text-2" id="text-12"> +<div id="outline-container-sec-11" class="outline-2"> +<h2 id="sec-11">mu4e</h2> +<div class="outline-text-2" id="text-11"> <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 mainly from the documentation, plus some cool remarks on Reddit. This @@ -1806,7 +1616,7 @@ I want desktop notifications when receiving email. <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">mu4e-alert</span> +<pre class="src src-elisp"><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">use-package</span> mu4e-alert <span class="org-builtin">:ensure</span> t <span class="org-builtin">:config</span> @@ -1822,7 +1632,7 @@ I want desktop notifications when receiving email. <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-rainbow-delimiters-depth-2">(</span><span class="org-keyword">use-package</span> evil-mu4e <span class="org-builtin">:ensure</span> t <span class="org-builtin">:config</span> @@ -1852,9 +1662,9 @@ And finally define a proper shortcut. </div> </div> -<div id="outline-container-sec-13" class="outline-2"> -<h2 id="sec-13">org</h2> -<div class="outline-text-2" id="text-13"> +<div id="outline-container-sec-12" class="outline-2"> +<h2 id="sec-12">org</h2> +<div class="outline-text-2" id="text-12"> <p> <a href="http://orgmode.org/">org mode</a> is an incredible tool that keeps me organized: TODOs, notes, agenda, etc. Moreover, it's built in GNU Emacs: @@ -1867,9 +1677,9 @@ etc. Moreover, it's built in GNU Emacs: </div> </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"> +<div id="outline-container-sec-12-1" class="outline-3"> +<h3 id="sec-12-1">General settings</h3> +<div class="outline-text-3" id="text-12-1"> <p> First of all, let me define some helper functions. </p> @@ -1955,9 +1765,9 @@ Where org files reside. </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"> +<div id="outline-container-sec-12-2" class="outline-3"> +<h3 id="sec-12-2">Publishing</h3> +<div class="outline-text-3" id="text-12-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 @@ -1966,7 +1776,7 @@ blocks to be converted into HTML as well, so we can properly colorize it). <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> +<pre class="src src-elisp"><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">use-package</span> htmlize <span class="org-builtin">:ensure</span> t<span class="org-rainbow-delimiters-depth-1">)</span> </pre> </div> @@ -1989,9 +1799,9 @@ And now let's set all the related settings. </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"> +<div id="outline-container-sec-12-3" class="outline-3"> +<h3 id="sec-12-3">Agenda</h3> +<div class="outline-text-3" id="text-12-3"> <p> Custom commands for <code>org-agenda</code>. </p> @@ -2092,9 +1902,9 @@ Set up a key binding for org-agenda. </div> </div> -<div id="outline-container-sec-13-4" class="outline-3"> -<h3 id="sec-13-4">Capture</h3> -<div class="outline-text-3" id="text-13-4"> +<div id="outline-container-sec-12-4" class="outline-3"> +<h3 id="sec-12-4">Capture</h3> +<div class="outline-text-3" id="text-12-4"> <p> Set the default notes file and the key binding. </p> @@ -2120,9 +1930,9 @@ And finally set <code>org-capture-templates</code>. </div> </div> -<div id="outline-container-sec-13-5" class="outline-3"> -<h3 id="sec-13-5">Other</h3> -<div class="outline-text-3" id="text-13-5"> +<div id="outline-container-sec-12-5" class="outline-3"> +<h3 id="sec-12-5">Other</h3> +<div class="outline-text-3" id="text-12-5"> <p> Insert a <kbd></kbd> 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> @@ -2149,31 +1959,31 @@ Insert a <kbd></kbd> value in org mode. See this <a href="http://ema </div> </div> -<div id="outline-container-sec-13-6" class="outline-3"> -<h3 id="sec-13-6"><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-12-6" class="outline-3"> +<h3 id="sec-12-6"><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-7" class="outline-3"> -<h3 id="sec-13-7"><span class="todo TODO">TODO</span> make it work with evil</h3> +<div id="outline-container-sec-12-7" class="outline-3"> +<h3 id="sec-12-7"><span class="todo TODO">TODO</span> make it work with evil</h3> </div> -<div id="outline-container-sec-13-8" class="outline-3"> -<h3 id="sec-13-8"><span class="todo TODO">TODO</span> Proper keybindings for quick access.</h3> +<div id="outline-container-sec-12-8" class="outline-3"> +<h3 id="sec-12-8"><span class="todo TODO">TODO</span> Proper keybindings for quick access.</h3> </div> -<div id="outline-container-sec-13-9" class="outline-3"> -<h3 id="sec-13-9"><span class="todo TODO">TODO</span> shortcuts for stuff like: create something urgent for today</h3> +<div id="outline-container-sec-12-9" class="outline-3"> +<h3 id="sec-12-9"><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">IRC</h2> -<div class="outline-text-2" id="text-14"> +<div id="outline-container-sec-13" class="outline-2"> +<h2 id="sec-13">IRC</h2> +<div class="outline-text-2" id="text-13"> <p> I'm giving ERC a chance. First of all, I'm setting up basic stuff. </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">erc</span> +<pre class="src src-elisp"><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">use-package</span> erc <span class="org-builtin">:config</span> <span class="org-rainbow-delimiters-depth-2">(</span>erc-track-mode t<span class="org-rainbow-delimiters-depth-2">)</span> @@ -2216,7 +2026,7 @@ Use the <code>erc-hl-nicks</code> package, so highlight support for nicknames is <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">erc-hl-nicks</span> +<pre class="src src-elisp"><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">use-package</span> erc-hl-nicks <span class="org-builtin">:ensure</span> t <span class="org-builtin">:init</span> <span class="org-rainbow-delimiters-depth-2">(</span><span class="org-keyword">with-eval-after-load</span> 'erc @@ -2285,12 +2095,12 @@ And now define a function to connect to both IRC servers. </div> </div> -<div id="outline-container-sec-15" class="outline-2"> -<h2 id="sec-15">Languages</h2> -<div class="outline-text-2" id="text-15"> -</div><div id="outline-container-sec-15-1" class="outline-3"> -<h3 id="sec-15-1">General</h3> -<div class="outline-text-3" id="text-15-1"> +<div id="outline-container-sec-14" class="outline-2"> +<h2 id="sec-14">Languages</h2> +<div class="outline-text-2" id="text-14"> +</div><div id="outline-container-sec-14-1" class="outline-3"> +<h3 id="sec-14-1">General</h3> +<div class="outline-text-3" id="text-14-1"> <p> First of all, define a function that identifies some warning keywords (e.g. TODO). This function can then be applied to the proper mode. @@ -2323,9 +2133,9 @@ context too. In this case, I want spell check and <code>wc-mode</code> activated </div> </div> -<div id="outline-container-sec-15-2" class="outline-3"> -<h3 id="sec-15-2">Lisp</h3> -<div class="outline-text-3" id="text-15-2"> +<div id="outline-container-sec-14-2" class="outline-3"> +<h3 id="sec-14-2">Lisp</h3> +<div class="outline-text-3" id="text-14-2"> <p> Emacs lisp needs <code>rainbow-delimiters</code>, so the amount of parenthesis is less confusing. Moreover, I'm also enabling <code>eldoc-mode</code> and the aforementioned @@ -2346,9 +2156,9 @@ confusing. Moreover, I'm also enabling <code>eldoc-mode</code> and the aforement </div> </div> -<div id="outline-container-sec-15-3" class="outline-3"> -<h3 id="sec-15-3">C and C++</h3> -<div class="outline-text-3" id="text-15-3"> +<div id="outline-container-sec-14-3" class="outline-3"> +<h3 id="sec-14-3">C and C++</h3> +<div class="outline-text-3" id="text-14-3"> <p> C and C++ only require the <code>warnings-mode-hook</code> function, spell checking for the comments and the usage of tabs instead of spaces. @@ -2372,9 +2182,9 @@ comments and the usage of tabs instead of spaces. </div> </div> -<div id="outline-container-sec-15-4" class="outline-3"> -<h3 id="sec-15-4">Ruby</h3> -<div class="outline-text-3" id="text-15-4"> +<div id="outline-container-sec-14-4" class="outline-3"> +<h3 id="sec-14-4">Ruby</h3> +<div class="outline-text-3" id="text-14-4"> <p> Include warning keywords in Ruby. </p> @@ -2387,9 +2197,9 @@ Include warning keywords in Ruby. </div> </div> -<div id="outline-container-sec-15-5" class="outline-3"> -<h3 id="sec-15-5">Go</h3> -<div class="outline-text-3" id="text-15-5"> +<div id="outline-container-sec-14-5" class="outline-3"> +<h3 id="sec-14-5">Go</h3> +<div class="outline-text-3" id="text-14-5"> <p> And now my Go configuration. This includes stuff like the usage of <code>goimports</code>, <code>gofmt</code> on save, among many other useful things. @@ -2418,18 +2228,18 @@ And now my Go configuration. This includes stuff like the usage of <code>goimpor <span class="org-rainbow-delimiters-depth-2">(</span>flyspell-prog-mode<span class="org-rainbow-delimiters-depth-2">)</span> <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-rainbow-delimiters-depth-2">(</span><span class="org-keyword">use-package</span> go-eldoc <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> - <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-rainbow-delimiters-depth-2">(</span><span class="org-keyword">use-package</span> go-add-tags <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> <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-rainbow-delimiters-depth-1">(</span><span class="org-keyword">use-package</span> go-mode <span class="org-builtin">:ensure</span> t <span class="org-builtin">:pin</span> melpa-stable <span class="org-builtin">:config</span> @@ -2442,9 +2252,9 @@ And now my Go configuration. This includes stuff like the usage of <code>goimpor </div> </div> -<div id="outline-container-sec-15-6" class="outline-3"> -<h3 id="sec-15-6">Tabs vs spaces</h3> -<div class="outline-text-3" id="text-15-6"> +<div id="outline-container-sec-14-6" class="outline-3"> +<h3 id="sec-14-6">Tabs vs spaces</h3> +<div class="outline-text-3" id="text-14-6"> <p> Tabs or spaces? <a href="https://www.emacswiki.org/emacs/TabsSpacesBoth">Both</a>. The <code>smart-tabs-mode</code> has the philosophy of: tabs for indentation, spaces for alignment. This is only applied in languages where I'm @@ -2453,7 +2263,7 @@ usings tabs for indentation (C, C++ and Go). <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">smart-tabs-mode</span> +<pre class="src src-elisp"><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">use-package</span> smart-tabs-mode <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 @@ -2465,13 +2275,13 @@ usings tabs for indentation (C, C++ and Go). </div> </div> -<div id="outline-container-sec-15-7" class="outline-3"> -<h3 id="sec-15-7">Inferior markup languages.</h3> -<div class="outline-text-3" id="text-15-7"> +<div id="outline-container-sec-14-7" class="outline-3"> +<h3 id="sec-14-7">Inferior markup languages.</h3> +<div class="outline-text-3" id="text-14-7"> <div class="org-src-container"> <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-rainbow-delimiters-depth-1">(</span><span class="org-keyword">use-package</span> markdown-mode <span class="org-builtin">:ensure</span> t <span class="org-builtin">:config</span> @@ -2481,14 +2291,14 @@ usings tabs for indentation (C, C++ and Go). <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-rainbow-delimiters-depth-2">(</span><span class="org-keyword">use-package</span> websocket <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-rainbow-delimiters-depth-3">(</span><span class="org-keyword">use-package</span> markdown-preview-mode <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> <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-rainbow-delimiters-depth-1">(</span><span class="org-keyword">use-package</span> yaml-mode <span class="org-builtin">:ensure</span> t <span class="org-builtin">:config</span> @@ -2498,26 +2308,26 @@ usings tabs for indentation (C, C++ and Go). </div> </div> -<div id="outline-container-sec-15-8" class="outline-3"> -<h3 id="sec-15-8">Web-related stuff.</h3> -<div class="outline-text-3" id="text-15-8"> +<div id="outline-container-sec-14-8" class="outline-3"> +<h3 id="sec-14-8">Web-related stuff.</h3> +<div class="outline-text-3" id="text-14-8"> <p> Slim and SCSS. </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">slim-mode</span> +<pre class="src src-elisp"><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">use-package</span> slim-mode <span class="org-builtin">:ensure</span> t<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">scss-mode</span> +<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">use-package</span> scss-mode <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> 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> -<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">use-package</span> <span class="org-constant">coffee-mode</span> +<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">use-package</span> coffee-mode <span class="org-builtin">:ensure</span> t<span class="org-rainbow-delimiters-depth-1">)</span> </pre> </div> @@ -2529,10 +2339,10 @@ bundle of features which are interesting for web-related stuff. <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">php-mode</span> +<pre class="src src-elisp"><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">use-package</span> php-mode <span class="org-builtin">:ensure</span> t<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">web-mode</span> +<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">use-package</span> web-mode <span class="org-builtin">:ensure</span> t <span class="org-builtin">:config</span> @@ -2551,7 +2361,7 @@ bundle of features which are interesting for web-related stuff. <span class="org-rainbow-delimiters-depth-4">(</span><span class="org-keyword">setq</span> js-indent-level 2<span class="org-rainbow-delimiters-depth-4">)</span> <span class="org-rainbow-delimiters-depth-4">(</span>rainbow-delimiters-mode 1<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">use-package</span> <span class="org-constant">vue-mode</span> + <span class="org-rainbow-delimiters-depth-2">(</span><span class="org-keyword">use-package</span> vue-mode <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">setq</span> mmm-submode-decoration-level 0<span class="org-rainbow-delimiters-depth-3">)</span><span class="org-rainbow-delimiters-depth-2">)</span> @@ -2578,23 +2388,23 @@ can be frustrating without proper formatting. <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">json-reformat</span> +<pre class="src src-elisp"><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">use-package</span> json-reformat <span class="org-builtin">:ensure</span> t<span class="org-rainbow-delimiters-depth-1">)</span> </pre> </div> </div> </div> -<div id="outline-container-sec-15-9" class="outline-3"> -<h3 id="sec-15-9">Others</h3> -<div class="outline-text-3" id="text-15-9"> +<div id="outline-container-sec-14-9" class="outline-3"> +<h3 id="sec-14-9">Others</h3> +<div class="outline-text-3" id="text-14-9"> <p> CMake for y'all. </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">cmake-mode</span> +<pre class="src src-elisp"><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">use-package</span> cmake-mode <span class="org-builtin">:ensure</span> t <span class="org-builtin">:config</span> @@ -2604,7 +2414,7 @@ CMake for y'all. '<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> - <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-rainbow-delimiters-depth-2">(</span><span class="org-keyword">use-package</span> cmake-font-lock <span class="org-builtin">:ensure</span> t <span class="org-builtin">:config</span> @@ -2620,19 +2430,19 @@ now because it's buggy, but I still have hope. <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">dockerfile-mode</span> +<pre class="src src-elisp"><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">use-package</span> dockerfile-mode <span class="org-builtin">:ensure</span> t <span class="org-builtin">:config</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">"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> -<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-rainbow-delimiters-depth-1">(</span><span class="org-keyword">use-package</span> terraform-mode <span class="org-builtin">:ensure</span> t <span class="org-builtin">:config</span> <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> -<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-rainbow-delimiters-depth-1">(</span><span class="org-keyword">use-package</span> hcl-mode <span class="org-builtin">:ensure</span> t<span class="org-rainbow-delimiters-depth-1">)</span> <span class="org-comment-delimiter">;</span><span class="org-comment">(use-package salt-mode</span> @@ -2660,9 +2470,9 @@ criteria really). </div> </div> -<div id="outline-container-sec-16" class="outline-2"> -<h2 id="sec-16">WoMan</h2> -<div class="outline-text-2" id="text-16"> +<div id="outline-container-sec-15" class="outline-2"> +<h2 id="sec-15">WoMan</h2> +<div class="outline-text-2" id="text-15"> <p> <code>WoMan</code> is a package that is included inside of GNU Emacs by default, and that takes care of visualizing man pages. Let's properly setup Evil mode for this: @@ -2695,9 +2505,9 @@ Finally, I want man pages to fill all the frame: </div> </div> -<div id="outline-container-sec-17" class="outline-2"> -<h2 id="sec-17">Misc</h2> -<div class="outline-text-2" id="text-17"> +<div id="outline-container-sec-16" class="outline-2"> +<h2 id="sec-16">Misc</h2> +<div class="outline-text-2" id="text-16"> <p> Install a set of useful functions from <a href="https://github.com/bbatsov">@bbatsov</a>. The bindings are following Emacs style instead of being more Vim-like on purpose (I don't want to put @@ -2706,7 +2516,7 @@ too many things into my leader and these shortcuts look sensible to me). <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">crux</span> +<pre class="src src-elisp"><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">use-package</span> crux <span class="org-builtin">:ensure</span> t <span class="org-builtin">:config</span> @@ -2718,9 +2528,9 @@ too many things into my leader and these shortcuts look sensible to me). </div> </div> -<div id="outline-container-sec-18" class="outline-2"> -<h2 id="sec-18">Credits</h2> -<div class="outline-text-2" id="text-18"> +<div id="outline-container-sec-17" class="outline-2"> +<h2 id="sec-17">Credits</h2> +<div class="outline-text-2" id="text-17"> <p> I've built this file by simply scavenging from other people's emacs.d/dotfiles repositories. I have taken lots of pieces from here and there, but most notably: @@ -2745,9 +2555,9 @@ repositories. I have taken lots of pieces from here and there, but most notably: </div> </div> -<div id="outline-container-sec-19" class="outline-2"> -<h2 id="sec-19">License</h2> -<div class="outline-text-2" id="text-19"> +<div id="outline-container-sec-18" class="outline-2"> +<h2 id="sec-18">License</h2> +<div class="outline-text-2" id="text-18"> <div class="org-src-container"> <pre class="src src-text">Copyright (C) 2014-2017 Miquel Sabaté Solà <a href="mailto:mikisabate%40gmail.com"><mikisabate@gmail.com></a> @@ -2771,7 +2581,7 @@ along with this program. If not, see <a href="http://www.gnu.org/licenses/">< </div> <div id="postamble" class="status"> <p class="author">Author: Miquel Sabaté Solà</p> -<p class="date">Created: 2017-03-14 Tue 20:48</p> +<p class="date">Created: 2017-03-15 Wed 15:13</p> <p class="creator"><a href="http://www.gnu.org/software/emacs/">Emacs</a> 25.2.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 fe9eaec..d9e8818 100644 --- a/emacs/init.org +++ b/emacs/init.org @@ -697,11 +697,25 @@ Directly taken from: https://github.com/magnars/expand-region.el." (add-hook 'text-mode-hook 'er/add-text-mode-expansions) #+END_SRC -Last but not least, =YASnippet=. This package allows people to define shortcuts -for writing some common blocks. Moreover, it comes with a set of builtin -snippets already. Since I don't remember some of these snippets, I've mapped -@@html:<kbd>, h</kbd>@@ to =yas-describe-tables=, which shows the available -snippets in another buffer. +Editing files as root is a bit of a pain because usually the root user doesn't +have the same configuration as the current one, and attempting to do so can be +messy. So, instead of that, we could advice the =find-file= function so if the +file is not writable by the current user, then GNU Emacs will ask for editing +this same file as root: + +#+BEGIN_SRC elisp +(defadvice find-file (after find-file-sudo activate) + "Find file as root if necessary." + (unless (and buffer-file-name + (file-writable-p buffer-file-name)) + (if (yes-or-no-p "Do you want to edit this file as root?") + (find-alternate-file (concat "/sudo:root@localhost:" buffer-file-name))))) +#+END_SRC + +=YASnippet= allows people to define shortcuts for writing some common blocks. +Moreover, it comes with a set of builtin snippets already. Since I don't +remember some of these snippets, I've mapped @@html:<kbd>, h</kbd>@@ to +=yas-describe-tables=, which shows the available snippets in another buffer. #+BEGIN_SRC elisp (use-package yasnippet |
