This commit is contained in:
SqrtMinusOne 2022-05-03 20:18:10 +00:00
parent 293718b303
commit a07a2dad92
4 changed files with 41 additions and 0 deletions

View file

@ -474,6 +474,7 @@ One thing where Emacs is particularly good is writing Lisp code, e.g. Clojure, C
<ul>
<li><a href="#general-keybindings">General keybindings</a></li>
<li><a href="#copy-a-link">Copy a link</a></li>
<li><a href="#navigating-source-blocks">Navigating source blocks</a></li>
<li><a href="#open-a-file-from-org-directory">Open a file from <code>org-directory</code></a></li>
</ul>
</li>
@ -4596,6 +4597,46 @@ One thing where Emacs is particularly good is writing Lisp code, e.g. Clojure, C
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>(general-nmap :keymaps <span style="color:#e6db74">&#39;org-mode-map</span>
</span></span><span style="display:flex;"><span> <span style="color:#e6db74">&#34;C-x C-l&#34;</span> <span style="color:#e6db74">&#39;my/org-link-copy</span>)
</span></span></code></pre></div><h4 id="navigating-source-blocks">Navigating source blocks</h4>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-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>(defun my/org-babel-next-visible-src-block (arg)
</span></span><span style="display:flex;"><span> <span style="color:#e6db74">&#34;Move to the next visible source block.
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">With ARG, repeats or can move backward if negative.&#34;</span>
</span></span><span style="display:flex;"><span> (interactive <span style="color:#e6db74">&#34;p&#34;</span>)
</span></span><span style="display:flex;"><span> (let ((regexp org-babel-src-block-regexp))
</span></span><span style="display:flex;"><span> (if (<span style="color:#a6e22e">&lt;</span> arg <span style="color:#ae81ff">0</span>)
</span></span><span style="display:flex;"><span> (<span style="color:#a6e22e">beginning-of-line</span>)
</span></span><span style="display:flex;"><span> (<span style="color:#a6e22e">end-of-line</span>))
</span></span><span style="display:flex;"><span> (while (and (<span style="color:#a6e22e">&lt;</span> arg <span style="color:#ae81ff">0</span>) (<span style="color:#a6e22e">re-search-backward</span> regexp <span style="color:#66d9ef">nil</span> :move))
</span></span><span style="display:flex;"><span> (unless (<span style="color:#a6e22e">bobp</span>)
</span></span><span style="display:flex;"><span> (while (pcase (<span style="color:#a6e22e">get-char-property-and-overlay</span> (<span style="color:#a6e22e">point</span>) <span style="color:#e6db74">&#39;invisible</span>)
</span></span><span style="display:flex;"><span> (<span style="color:#f92672">`</span>(outline <span style="color:#f92672">.</span> <span style="color:#f92672">,</span>o)
</span></span><span style="display:flex;"><span> (<span style="color:#a6e22e">goto-char</span> (<span style="color:#a6e22e">overlay-start</span> o))
</span></span><span style="display:flex;"><span> (<span style="color:#a6e22e">re-search-backward</span> regexp <span style="color:#66d9ef">nil</span> :move))
</span></span><span style="display:flex;"><span> (_ <span style="color:#66d9ef">nil</span>))))
</span></span><span style="display:flex;"><span> (cl-incf arg))
</span></span><span style="display:flex;"><span> (while (and (<span style="color:#a6e22e">&gt;</span> arg <span style="color:#ae81ff">0</span>) (<span style="color:#a6e22e">re-search-forward</span> regexp <span style="color:#66d9ef">nil</span> <span style="color:#66d9ef">t</span>))
</span></span><span style="display:flex;"><span> (while (pcase (<span style="color:#a6e22e">get-char-property-and-overlay</span> (<span style="color:#a6e22e">point</span>) <span style="color:#e6db74">&#39;invisible</span>)
</span></span><span style="display:flex;"><span> (<span style="color:#f92672">`</span>(outline <span style="color:#f92672">.</span> <span style="color:#f92672">,</span>o)
</span></span><span style="display:flex;"><span> (<span style="color:#a6e22e">goto-char</span> (<span style="color:#a6e22e">overlay-end</span> o))
</span></span><span style="display:flex;"><span> (<span style="color:#a6e22e">re-search-forward</span> regexp <span style="color:#66d9ef">nil</span> :move))
</span></span><span style="display:flex;"><span> (_ (<span style="color:#a6e22e">end-of-line</span>) <span style="color:#66d9ef">nil</span>)))
</span></span><span style="display:flex;"><span> (<span style="color:#a6e22e">re-search-backward</span> regexp <span style="color:#66d9ef">nil</span> :move)
</span></span><span style="display:flex;"><span> (cl-decf arg))
</span></span><span style="display:flex;"><span> (if (<span style="color:#a6e22e">&gt;</span> arg <span style="color:#ae81ff">0</span>) (<span style="color:#a6e22e">goto-char</span> (<span style="color:#a6e22e">point-max</span>)) (<span style="color:#a6e22e">beginning-of-line</span>))))
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>(defun my/org-babel-previous-visible-src-block (arg)
</span></span><span style="display:flex;"><span> <span style="color:#e6db74">&#34;Move to the prevous visible source block.
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">With ARG, repeats or can move backward if negative.&#34;</span>
</span></span><span style="display:flex;"><span> (interactive <span style="color:#e6db74">&#34;p&#34;</span>)
</span></span><span style="display:flex;"><span> (my/org-babel-next-visible-src-block (<span style="color:#a6e22e">-</span> arg)))
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>(general-define-key
</span></span><span style="display:flex;"><span> :keymaps <span style="color:#e6db74">&#39;org-mode-map</span>
</span></span><span style="display:flex;"><span> :states <span style="color:#f92672">&#39;</span>(normal emacs)
</span></span><span style="display:flex;"><span> <span style="color:#e6db74">&#34;M-]&#34;</span> <span style="color:#a6e22e">#&#39;</span>my/org-babel-next-visible-src-block
</span></span><span style="display:flex;"><span> <span style="color:#e6db74">&#34;M-[&#34;</span> <span style="color:#a6e22e">#&#39;</span>my/org-babel-previous-visible-src-block)
</span></span></code></pre></div><h4 id="open-a-file-from-org-directory">Open a file from <code>org-directory</code></h4>
<p>A function to open a file from <code>org-directory</code>, excluding a few directories like <code>roam</code> and <code>journal</code>.</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-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>(defun my/org-file-open ()

Binary file not shown.

Before

Width:  |  Height:  |  Size: 120 KiB

After

Width:  |  Height:  |  Size: 121 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 64 KiB

After

Width:  |  Height:  |  Size: 64 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 67 KiB

After

Width:  |  Height:  |  Size: 67 KiB