mirror of
https://github.com/SqrtMinusOne/sqrtminusone.github.io.git
synced 2025-12-10 15:53:03 +03:00
deploy: e4e8d31acd
This commit is contained in:
parent
711f6c23e8
commit
b91f322e61
4 changed files with 32 additions and 11 deletions
|
|
@ -366,6 +366,10 @@ Emacs is also particularly great at writing Lisp code, e.g. Clojure, Common Lisp
|
|||
<div class="highlight"><pre tabindex="0" style=";-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-emacs-lisp" data-lang="emacs-lisp"><span style="display:flex;"><span>(<span style="color:#008000">defun</span> <span style="color:#19177c">my/run-in-background</span> (<span style="color:#19177c">command</span>)
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#008000">let</span> ((<span style="color:#19177c">command-parts</span> (<span style="color:#19177c">split-string</span> <span style="color:#19177c">command</span> <span style="color:#ba2121">"[ ]+"</span>)))
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#00f">apply</span> <span style="color:#00f">#'call-process</span> <span style="color:#666">`</span>(<span style="color:#666">,</span>(<span style="color:#00f">car</span> <span style="color:#19177c">command-parts</span>) <span style="color:#800">nil</span> <span style="color:#666">0</span> <span style="color:#800">nil</span> <span style="color:#666">,@</span>(<span style="color:#00f">cdr</span> <span style="color:#19177c">command-parts</span>)))))
|
||||
</span></span></code></pre></div><h4 id="close-buffer-and-its-windows">Close buffer and its windows</h4>
|
||||
<div class="highlight"><pre tabindex="0" style=";-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-emacs-lisp" data-lang="emacs-lisp"><span style="display:flex;"><span>(<span style="color:#008000">defun</span> <span style="color:#19177c">my/quit-window-and-buffer</span> ()
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#008000">interactive</span>)
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#19177c">quit-window</span> <span style="color:#800">t</span>))
|
||||
</span></span></code></pre></div><h3 id="prevent-emacs-from-closing">Prevent Emacs from closing</h3>
|
||||
<p>This adds a confirmation to avoid accidental Emacs closing.</p>
|
||||
<div class="highlight"><pre tabindex="0" style=";-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-emacs-lisp" data-lang="emacs-lisp"><span style="display:flex;"><span>(<span style="color:#008000">setq</span> <span style="color:#19177c">confirm-kill-emacs</span> <span style="color:#19177c">'y-or-n-p</span>)
|
||||
|
|
@ -3751,10 +3755,6 @@ Emacs is also particularly great at writing Lisp code, e.g. Clojure, Common Lisp
|
|||
</span></span><span style="display:flex;"><span> (<span style="color:#19177c">find-file</span>
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#00f">concat</span> <span style="color:#19177c">org-directory</span> <span style="color:#ba2121">"/"</span>
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#00f">completing-read</span> <span style="color:#ba2121">"Org file: "</span> <span style="color:#19177c">files</span>)))))
|
||||
</span></span><span style="display:flex;"><span>
|
||||
</span></span><span style="display:flex;"><span>(<span style="color:#008000">with-eval-after-load</span> <span style="color:#19177c">'org</span>
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#19177c">my-leader-def</span>
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#ba2121">"o o"</span> <span style="color:#19177c">'my/org-file-open</span>))
|
||||
</span></span></code></pre></div><h3 id="literate-programing">Literate programing</h3>
|
||||
<h4 id="python-and-jupyter">Python & Jupyter</h4>
|
||||
<p>Use jupyter kernels for Org Mode.</p>
|
||||
|
|
@ -4956,7 +4956,8 @@ Emacs is also particularly great at writing Lisp code, e.g. Clojure, Common Lisp
|
|||
</span></span><span style="display:flex;"><span> <span style="color:#008000">:infix</span> <span style="color:#ba2121">"o"</span>
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#ba2121">""</span> <span style="color:#666">'</span>(<span style="color:#008000">:which-key</span> <span style="color:#ba2121">"org-mode"</span>)
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#ba2121">"c"</span> <span style="color:#19177c">'org-capture</span>
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#ba2121">"a"</span> <span style="color:#19177c">'org-agenda</span>)
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#ba2121">"a"</span> <span style="color:#19177c">'org-agenda</span>
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#ba2121">"o"</span> <span style="color:#00f">#'</span><span style="color:#19177c">my/org-file-open</span>)
|
||||
</span></span></code></pre></div><p>Local keybindings</p>
|
||||
<div class="highlight"><pre tabindex="0" style=";-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-emacs-lisp" data-lang="emacs-lisp"><span style="display:flex;"><span>(<span style="color:#008000">with-eval-after-load</span> <span style="color:#19177c">'org</span>
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#19177c">my-leader-def</span>
|
||||
|
|
@ -5989,7 +5990,8 @@ Didn’t work out as I expected, so I’ve made <code>org-journal-tags</
|
|||
</span></span><span style="display:flex;"><span> <span style="color:#ba2121">"M-r"</span> <span style="color:#00f">#'</span><span style="color:#19177c">wdired-change-to-wdired-mode</span>
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#ba2121">"<left>"</span> <span style="color:#00f">#'</span><span style="color:#19177c">dired-up-directory</span>
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#ba2121">"<right>"</span> <span style="color:#00f">#'</span><span style="color:#19177c">dired-find-file</span>
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#ba2121">"M-<return>"</span> <span style="color:#00f">#'</span><span style="color:#19177c">dired-open-xdg</span>))
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#ba2121">"M-<return>"</span> <span style="color:#00f">#'</span><span style="color:#19177c">dired-open-xdg</span>)
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#19177c">dired-async-mode</span>))
|
||||
</span></span><span style="display:flex;"><span>
|
||||
</span></span><span style="display:flex;"><span>(<span style="color:#008000">defun</span> <span style="color:#19177c">my/dired-home</span> ()
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#ba2121">"Open dired at $HOME"</span>
|
||||
|
|
@ -9528,8 +9530,21 @@ Some other optimization settings:</p>
|
|||
</span></span></code></pre></div><div class="highlight"><pre tabindex="0" style=";-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-text" data-lang="text"><span style="display:flex;"><span>my/index-get-symlink-commands
|
||||
</span></span></code></pre></div><h5 id="run-all-commands">Run all commands</h5>
|
||||
<p>And put that all together.</p>
|
||||
<p>First, as I want to check what’s going to be executed, let’s make a function to display commands in a separate buffer. Making it <code>sh-mode</code> is enough for now.</p>
|
||||
<div class="highlight"><pre tabindex="0" style=";-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-emacs-lisp" data-lang="emacs-lisp"><span style="display:flex;"><span>(<span style="color:#008000">defvar-local</span> <span style="color:#19177c">my/index-commands</span> <span style="color:#800">nil</span>
|
||||
<p>First, as I want to check what’s going to be executed, let’s make a function to display commands in a separate buffer.</p>
|
||||
<p>The mode definition is as follows:</p>
|
||||
<div class="highlight"><pre tabindex="0" style=";-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-emacs-lisp" data-lang="emacs-lisp"><span style="display:flex;"><span>(<span style="color:#008000">defvar</span> <span style="color:#19177c">my/index-commands-mode-map</span>
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#008000">let</span> ((<span style="color:#19177c">keymap</span> (<span style="color:#00f">make-sparse-keymap</span>)))
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#00f">define-key</span> <span style="color:#19177c">keymap</span> (<span style="color:#19177c">kbd</span> <span style="color:#ba2121">"C-c C-c"</span>) <span style="color:#00f">#'</span><span style="color:#19177c">my/index-commands-exec</span>)
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#00f">define-key</span> <span style="color:#19177c">keymap</span> (<span style="color:#19177c">kbd</span> <span style="color:#ba2121">"q"</span>) <span style="color:#00f">#'</span><span style="color:#19177c">my/quit-window-and-buffer</span>)
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#008000">when</span> (<span style="color:#00f">fboundp</span> <span style="color:#19177c">'evil-define-key*</span>)
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#19177c">evil-define-key*</span> <span style="color:#19177c">'normal</span> <span style="color:#19177c">keymap</span>
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#ba2121">"q"</span> <span style="color:#00f">#'</span><span style="color:#19177c">my/quit-window-and-buffer</span>))
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#19177c">keymap</span>)
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#ba2121">"Keymap for </span><span style="color:#19177c">`biome-api-error-mode'</span><span style="color:#ba2121">."</span>)
|
||||
</span></span><span style="display:flex;"><span>
|
||||
</span></span><span style="display:flex;"><span>(<span style="color:#008000">define-derived-mode</span> <span style="color:#19177c">my/index-commands-mode</span> <span style="color:#19177c">sh-mode</span> <span style="color:#ba2121">"Index Commands"</span>
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#ba2121">"A mode to display index commands."</span>)
|
||||
</span></span></code></pre></div><div class="highlight"><pre tabindex="0" style=";-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-emacs-lisp" data-lang="emacs-lisp"><span style="display:flex;"><span>(<span style="color:#008000">defvar-local</span> <span style="color:#19177c">my/index-commands</span> <span style="color:#800">nil</span>
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#ba2121">"Commands to be executed by </span><span style="color:#19177c">`my/index-commands-exec'</span><span style="color:#ba2121">"</span>)
|
||||
</span></span><span style="display:flex;"><span>
|
||||
</span></span><span style="display:flex;"><span>(<span style="color:#008000">defun</span> <span style="color:#19177c">my/index--commands-display</span> (<span style="color:#19177c">commands</span>)
|
||||
|
|
@ -9545,7 +9560,7 @@ Some other optimization settings:</p>
|
|||
</span></span><span style="display:flex;"><span> (<span style="color:#19177c">seq-group-by</span> (<span style="color:#008000">lambda</span> (<span style="color:#19177c">c</span>) (<span style="color:#00f">nth</span> <span style="color:#666">1</span> <span style="color:#19177c">c</span>))
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#19177c">commands</span>))))
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#008000">with-current-buffer</span> <span style="color:#19177c">buffer</span>
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#19177c">sh-mode</span>)
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#19177c">my/index-commands-mode</span>)
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#008000">let</span> ((<span style="color:#19177c">inhibit-read-only</span> <span style="color:#800">t</span>)
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#19177c">commands-sequence</span>)
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#00f">erase-buffer</span>)
|
||||
|
|
@ -9562,7 +9577,7 @@ Some other optimization settings:</p>
|
|||
</span></span></code></pre></div><p>In order to execute these commands, <a href="https://www.gnu.org/software/emacs/manual/html_node/emacs/Compilation.html">compile</a> with <code>bash -x</code> on a temporary file is quite sufficient.</p>
|
||||
<div class="highlight"><pre tabindex="0" style=";-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-emacs-lisp" data-lang="emacs-lisp"><span style="display:flex;"><span>(<span style="color:#008000">defun</span> <span style="color:#19177c">my/index-commands-exec</span> ()
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#008000">interactive</span>)
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#008000">unless</span> (<span style="color:#00f">eq</span> <span style="color:#19177c">major-mode</span> <span style="color:#19177c">'sh-mode</span>)
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#008000">unless</span> (<span style="color:#00f">eq</span> <span style="color:#19177c">major-mode</span> <span style="color:#19177c">'my/index-commands-mode</span>)
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#d2413a;font-weight:bold">user-error</span> <span style="color:#ba2121">"Not shell mode"</span>))
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#008000">let</span> ((<span style="color:#19177c">filename</span> (<span style="color:#19177c">make-temp-file</span> <span style="color:#ba2121">"index-commands-"</span>)))
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#00f">write-region</span> (<span style="color:#00f">point-min</span>) (<span style="color:#00f">point-max</span>) <span style="color:#19177c">filename</span>)
|
||||
|
|
@ -9762,12 +9777,17 @@ Some other optimization settings:</p>
|
|||
</span></span><span style="display:flex;"><span> (<span style="color:#008000">let</span> ((<span style="color:#19177c">default-directory</span> <span style="color:#19177c">dir</span>))
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#19177c">projectile-find-file</span>)))))
|
||||
</span></span><span style="display:flex;"><span>
|
||||
</span></span><span style="display:flex;"><span>(<span style="color:#008000">defun</span> <span style="color:#19177c">my/index-open-file</span> ()
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#008000">interactive</span>)
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#19177c">find-file</span> <span style="color:#19177c">my/index-file</span>))
|
||||
</span></span><span style="display:flex;"><span>
|
||||
</span></span><span style="display:flex;"><span>(<span style="color:#19177c">my-leader-def</span>
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#008000">:infix</span> <span style="color:#ba2121">"i"</span>
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#ba2121">""</span> <span style="color:#666">'</span>(<span style="color:#008000">:wk</span> <span style="color:#ba2121">"index"</span>)
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#ba2121">"i"</span> <span style="color:#00f">#'</span><span style="color:#19177c">my/index-nav</span>
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#ba2121">"s"</span> <span style="color:#00f">#'</span><span style="color:#19177c">my/index-commands-sync</span>
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#ba2121">"p"</span> <span style="color:#00f">#'</span><span style="color:#19177c">my/index-nav-with-select-file</span>)
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#ba2121">"p"</span> <span style="color:#00f">#'</span><span style="color:#19177c">my/index-nav-with-select-file</span>
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#ba2121">"f"</span> <span style="color:#00f">#'</span><span style="color:#19177c">my/index-open-file</span>)
|
||||
</span></span></code></pre></div><h4 id="export-tree">Export tree</h4>
|
||||
<p>I also need the tree to use in my <code>sqrt-data</code>, so let’s export this to JSON.</p>
|
||||
<div class="highlight"><pre tabindex="0" style=";-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-emacs-lisp" data-lang="emacs-lisp"><span style="display:flex;"><span>(<span style="color:#008000">defun</span> <span style="color:#19177c">my/index-export</span> (<span style="color:#19177c">file</span>)
|
||||
|
|
@ -10392,6 +10412,7 @@ I’ve seen a couple of cases where people would swap their username and ema
|
|||
<li><a href="#helper-functions">Helper functions</a>
|
||||
<ul>
|
||||
<li><a href="#run-command-in-background">Run command in background</a></li>
|
||||
<li><a href="#close-buffer-and-its-windows">Close buffer and its windows</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a href="#prevent-emacs-from-closing">Prevent Emacs from closing</a></li>
|
||||
|
|
|
|||
BIN
stats/all.png
BIN
stats/all.png
Binary file not shown.
|
Before Width: | Height: | Size: 120 KiB After Width: | Height: | Size: 120 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 59 KiB After Width: | Height: | Size: 60 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 68 KiB After Width: | Height: | Size: 68 KiB |
Loading…
Add table
Reference in a new issue