<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<?xml-stylesheet type="text/xsl" href="/rss.xsl"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Elisp on Raveen Kumar</title>
    <link>https://raveenkumar.com/tags/elisp/</link>
    <description>Recent content in Elisp on Raveen Kumar</description>
    <generator>Hugo</generator>
    <language>en-US</language>
    <copyright>Raveen Kumar</copyright>
    <lastBuildDate>Mon, 20 Feb 2023 00:00:00 +0000</lastBuildDate>
    <atom:link href="https://raveenkumar.com/tags/elisp/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Emacs File-info package</title>
      <link>https://raveenkumar.com/posts/2023-02-20-emacs-file-info-package/</link>
      <pubDate>Mon, 20 Feb 2023 00:00:00 +0000</pubDate>
      <guid>https://raveenkumar.com/posts/2023-02-20-emacs-file-info-package/</guid>
      <description>&lt;p&gt;Found a new package today. Does exactly what I want. List and copy the file info and path with a keybind and a popup window.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://github.com/Artawower/file-info.el&#34;&gt;https://github.com/Artawower/file-info.el&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Installation:&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;Add this to you init.el file&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-lisp&#34; data-lang=&#34;lisp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;;; File-info&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;(&lt;span style=&#34;color:#a6e22e&#34;&gt;use-package&lt;/span&gt; hydra&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#e6db74&#34;&gt;:straight&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;t&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;(&lt;span style=&#34;color:#a6e22e&#34;&gt;use-package&lt;/span&gt; browse-at-remote&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#e6db74&#34;&gt;:straight&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;t&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;(&lt;span style=&#34;color:#a6e22e&#34;&gt;use-package&lt;/span&gt; posframe&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#e6db74&#34;&gt;:straight&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;t&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;(&lt;span style=&#34;color:#a6e22e&#34;&gt;use-package&lt;/span&gt; file-info&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#e6db74&#34;&gt;:straight&lt;/span&gt; (&lt;span style=&#34;color:#e6db74&#34;&gt;:host&lt;/span&gt; github &lt;span style=&#34;color:#e6db74&#34;&gt;:repo&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;artawower/file-info.el&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#e6db74&#34;&gt;:bind&lt;/span&gt; ((&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;C-c f i&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;file-info-show&lt;/span&gt;))&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#e6db74&#34;&gt;:config&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  (&lt;span style=&#34;color:#66d9ef&#34;&gt;setq&lt;/span&gt; hydra-hint-display-type &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;posframe&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  (&lt;span style=&#34;color:#66d9ef&#34;&gt;setq&lt;/span&gt; hydra-posframe-show-params &lt;span style=&#34;color:#f92672&#34;&gt;`&lt;/span&gt;(&lt;span style=&#34;color:#e6db74&#34;&gt;:poshandler&lt;/span&gt; posframe-poshandler-frame-center&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                                               &lt;span style=&#34;color:#e6db74&#34;&gt;:internal-border-width&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;2&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                                               &lt;span style=&#34;color:#e6db74&#34;&gt;:internal-border-color&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;#61AFEF&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                                               &lt;span style=&#34;color:#e6db74&#34;&gt;:left-fringe&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;16&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                                               &lt;span style=&#34;color:#e6db74&#34;&gt;:right-fringe&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;16&lt;/span&gt;)))&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img src=&#34;https://du-blog.ru/media/elisp.webp&#34; alt=&#34;&#34;&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Emacs wrap region package</title>
      <link>https://raveenkumar.com/posts/2023-02-20-emacs-wrap-region-package/</link>
      <pubDate>Mon, 20 Feb 2023 00:00:00 +0000</pubDate>
      <guid>https://raveenkumar.com/posts/2023-02-20-emacs-wrap-region-package/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;https://github.com/rejeep/wrap-region.el&#34;&gt;https://github.com/rejeep/wrap-region.el&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Wrap Region is a minor mode for Emacs that wraps a region with punctuations. For &amp;ldquo;tagged&amp;rdquo; markup modes, such as HTML and XML, it wraps with tags.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Recursively grep with emacs lisp only</title>
      <link>https://raveenkumar.com/posts/2023-02-20-recursive-grep-with-emacs-lisp-only/</link>
      <pubDate>Mon, 20 Feb 2023 00:00:00 +0000</pubDate>
      <guid>https://raveenkumar.com/posts/2023-02-20-recursive-grep-with-emacs-lisp-only/</guid>
      <description>&lt;p&gt;I was looking for a way to recursively grep inside a directory and a find-grep replacement since its not availabe in windows and I found this.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://www.reddit.com/r/emacs/comments/bxtwfg/grep_and_find_but_in_pure_emacs_lisp/&#34;&gt;https://www.reddit.com/r/emacs/comments/bxtwfg/grep_and_find_but_in_pure_emacs_lisp/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-lisp&#34; data-lang=&#34;lisp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;(project-find-regexp)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Emacs lisp / elisp</title>
      <link>https://raveenkumar.com/library/programming/elisp-snippets/</link>
      <pubDate>Fri, 17 Feb 2023 00:00:00 +0000</pubDate>
      <guid>https://raveenkumar.com/library/programming/elisp-snippets/</guid>
      <description>&lt;h2 id=&#34;open-messages-buffer-in-a-popup-window-below&#34;&gt;Open messages buffer in a popup window below&lt;/h2&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-lisp&#34; data-lang=&#34;lisp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;(&lt;span style=&#34;color:#66d9ef&#34;&gt;let&lt;/span&gt; ((messages-buffer (get-buffer &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;*Messages*&amp;#34;&lt;/span&gt;)))&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  (display-buffer-at-bottom messages-buffer&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#39;&lt;/span&gt;(display-buffer-pop-up-window&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      (window-height &lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;0.2&lt;/span&gt;))))&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Advising a function in emacs lisp</title>
      <link>https://raveenkumar.com/posts/2023-01-22-emacs-lisp-advice/</link>
      <pubDate>Thu, 16 Feb 2023 00:00:00 +0000</pubDate>
      <guid>https://raveenkumar.com/posts/2023-01-22-emacs-lisp-advice/</guid>
      <description>&lt;p&gt;One of the awesome things that I found when programming in elisp is the advice. For any function, you can advice before, after, around, to it.&lt;/p&gt;&#xA;&lt;p&gt;When you advice a function A with a function B. Function B will executed before it. This is really interesting and useful.&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-lisp&#34; data-lang=&#34;lisp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;(advice-add &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;funa&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;:before&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;funb&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;EMACS is a event based program, it has hooks, advices and all that goodness to modify and customize anything. 🪝&lt;/p&gt;</description>
    </item>
    <item>
      <title>Emacs</title>
      <link>https://raveenkumar.com/library/text-editors/emacs/</link>
      <pubDate>Thu, 16 Feb 2023 00:00:00 +0000</pubDate>
      <guid>https://raveenkumar.com/library/text-editors/emacs/</guid>
      <description>&lt;p&gt;You mean Vim?&lt;/p&gt;&#xA;&lt;p&gt;No matter how much I try EMACS is just too slow for me. Its not snappy as vim. and often times its lagging and hanging and the package management is too slow. Its bluky and full of bloat. Dont get me wrong the base emacs is great. But as soon as I add packages and try to modify it, it keeps getting bulkier and difficult to manage. Whereas vim is snappy. And I can full use tmux and terminal and my hands and safe from injuries. And its comfy.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Open new eshell buffer without closing the current one</title>
      <link>https://raveenkumar.com/posts/2023-02-16-open-new-eshell-buffer/</link>
      <pubDate>Thu, 16 Feb 2023 00:00:00 +0000</pubDate>
      <guid>https://raveenkumar.com/posts/2023-02-16-open-new-eshell-buffer/</guid>
      <description>&lt;p&gt;I usually run multiple shell instances in terminal. If you already have one eshell buffer open. You can use prefix command to open a new eshell buffer without closing the current one.&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-emacs&#34; data-lang=&#34;emacs&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;C-u M-x eshell&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;a href=&#34;https://stackoverflow.com/questions/2540997/create-more-than-one-eshell-instance-in-emacs/75480565#75480565&#34;&gt;https://stackoverflow.com/questions/2540997/create-more-than-one-eshell-instance-in-emacs/75480565#75480565&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Here is my implementation of new eshell buffer / instance.&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-elisp&#34; data-lang=&#34;elisp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;(defun eshell-new-buffer (args)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Create a new eshell buffer.&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  (interactive &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;P&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  (eshell &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;new&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  )&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;(global-set-key (kbd &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;C-c e e&amp;#34;&lt;/span&gt;) &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;eshell&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;(global-set-key (kbd &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;C-c e n&amp;#34;&lt;/span&gt;) &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;eshell-new-buffer&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description>
    </item>
  </channel>
</rss>
