<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Shell on MoskitoHero</title><link>/tags/shell/</link><description>Recent content in Shell on MoskitoHero</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Fri, 17 Jul 2026 06:55:18 +0200</lastBuildDate><atom:link href="/tags/shell/index.xml" rel="self" type="application/rss+xml"/><item><title>Run Pasted Multiline Backslash-Escaped Shell Commands in Nushell</title><link>/post/2026-07-17-run-pasted-multiline-backslash-escaped-shell-commands-in-nushell/</link><pubDate>Fri, 17 Jul 2026 06:55:18 +0200</pubDate><guid>/post/2026-07-17-run-pasted-multiline-backslash-escaped-shell-commands-in-nushell/</guid><description>I often get frustrated when copy-pasting commands from a website into my Nushell terminal. Here is a little snippet to solve that issue.</description><content:encoded><![CDATA[<div class="paragraph">
<p>As a <a href="https://www.nushell.sh/">Nushell</a> user, I often get frustrated when copy-pasting commands from a website into my terminal. The typical use-case I encounter is the Github CI spitting out the failing tests with a command I can run in my terminal, like this one:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="rouge highlight"><code data-lang="shell">bundle <span class="nb">exec </span>rspec <span class="se">\</span>
  <span class="s1">&#39;./spec/requests/api/v1/campaigns/show_spec.rb[1:1:1:1:1]&#39;</span> <span class="se">\</span>
  <span class="s1">&#39;./spec/requests/api/v1/campaigns/show_spec.rb[1:1:1:2]&#39;</span> <span class="se">\</span>
  <span class="s1">&#39;./spec/requests/api/v1/campaigns/show_spec.rb[1:1:1:3:1]&#39;</span> <span class="se">\</span>
  <span class="s1">&#39;./spec/requests/api/v1/campaigns/show_spec.rb[1:1:1:4:1]&#39;</span></code></pre>
</div>
</div>
<div class="paragraph">
<p>Running this in nushell will give you an error like:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="rouge highlight"><code data-lang="rust"><span class="n">Error</span><span class="p">:</span> <span class="nn">nu</span><span class="p">::</span><span class="nn">parser</span><span class="p">::</span><span class="n">parse_mismatch</span>

  <span class="err">×</span> <span class="n">Parse</span> <span class="n">mismatch</span> <span class="n">during</span> <span class="n">operation</span><span class="err">.</span>
   <span class="err">╭─</span><span class="p">[</span><span class="n">repl_entry</span> <span class="err">#</span><span class="mi">3</span><span class="p">:</span><span class="mi">2</span><span class="p">:</span><span class="mi">62</span><span class="p">]</span>
 <span class="mi">1</span> <span class="err">│</span> <span class="n">bundle</span> <span class="n">exec</span> <span class="n">rspec</span> <span class="err">\</span>
 <span class="mi">2</span> <span class="err">│</span>   <span class="err">&#39;.</span><span class="o">/</span><span class="n">spec</span><span class="o">/</span><span class="n">requests</span><span class="o">/</span><span class="n">api</span><span class="o">/</span><span class="n">v1</span><span class="o">/</span><span class="n">campaigns</span><span class="o">/</span><span class="n">show_spec</span><span class="py">.rb</span><span class="p">[</span><span class="mi">1</span><span class="p">:</span><span class="mi">1</span><span class="p">:</span><span class="mi">1</span><span class="p">:</span><span class="mi">1</span><span class="p">:</span><span class="mi">1</span><span class="p">]</span><span class="err">&#39;</span> <span class="err">\</span>
   <span class="err">·</span>                                                              <span class="err">┬</span>
   <span class="err">·</span>                                                              <span class="err">╰──</span> <span class="n">expected</span> <span class="n">operator</span>
 <span class="mi">3</span> <span class="err">│</span>   <span class="err">&#39;.</span><span class="o">/</span><span class="n">spec</span><span class="o">/</span><span class="n">requests</span><span class="o">/</span><span class="n">api</span><span class="o">/</span><span class="n">v1</span><span class="o">/</span><span class="n">campaigns</span><span class="o">/</span><span class="n">show_spec</span><span class="py">.rb</span><span class="p">[</span><span class="mi">1</span><span class="p">:</span><span class="mi">1</span><span class="p">:</span><span class="mi">1</span><span class="p">:</span><span class="mi">2</span><span class="p">]</span><span class="err">&#39;</span> <span class="err">\</span>
   <span class="err">╰────</span></code></pre>
</div>
</div>
<div class="paragraph">
<p>This happens because <code>\</code> is <a href="https://github.com/nushell/nushell/issues/4044">not recognized as an escape character in Nushell</a>.</p>
</div>
<div class="paragraph">
<p>The temporary workaround I found was to drop to zsh and run the command. But it was not an acceptable, long-term solution.</p>
</div>
<div class="paragraph">
<p>So here is <a href="https://github.com/nushell/nushell/issues/4044#issuecomment-3352257312">a little snippet I found on Github</a> to solve that issue. I added this to my <code>config.nu</code> file, in the <code>keybindings</code> array:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="rouge highlight"><code data-lang="rust"><span class="p">{</span>
  <span class="n">name</span><span class="p">:</span> <span class="s">&#34;replace_slash_line_break_and_run&#34;</span>
  <span class="n">modifier</span><span class="p">:</span> <span class="s">&#34;control&#34;</span>
  <span class="n">keycode</span><span class="p">:</span> <span class="s">&#34;enter&#34;</span>
  <span class="n">mode</span><span class="p">:</span> <span class="p">[</span><span class="n">emacs</span><span class="p">,</span> <span class="n">vi_normal</span><span class="p">,</span> <span class="n">vi_insert</span><span class="p">]</span>
  <span class="n">event</span><span class="p">:</span> <span class="p">[</span>
    <span class="p">{</span>
      <span class="n">send</span><span class="p">:</span> <span class="n">executehostcommand</span><span class="p">,</span>
      <span class="n">cmd</span><span class="p">:</span> <span class="err">&#39;</span>
        <span class="k">mut</span> <span class="n">cmd</span> <span class="o">=</span> <span class="p">(</span><span class="n">commandline</span><span class="p">)</span>
        <span class="k">let</span> <span class="err">$</span><span class="n">line_break_regex</span> <span class="o">=</span> <span class="err">&#39;\\\</span><span class="n">n</span><span class="err">&#39;</span>
        <span class="err">$</span><span class="n">cmd</span> <span class="o">=</span> <span class="err">$</span><span class="n">cmd</span> <span class="p">|</span> <span class="nb">str</span> <span class="n">replace</span> <span class="o">--</span><span class="n">all</span> <span class="o">--</span><span class="n">regex</span> <span class="err">$</span><span class="n">line_break_regex</span> <span class="err">&#39;&#39;</span>
        <span class="n">commandline</span> <span class="n">edit</span> <span class="err">$</span><span class="s">&#34;($cmd)&#34;</span> <span class="o">--</span><span class="n">accept</span>
      <span class="err">&#39;</span>
    <span class="p">},</span>
  <span class="p">]</span>
<span class="p">}</span></code></pre>
</div>
</div>
<div class="paragraph">
<p>So now, I just paste the multiline snippet, hit <code>control-enter</code> and voilà!</p>
</div>
<div class="paragraph">
<p>All credits go to <a href="https://github.com/rondymesquita">Rondimesquita</a></p>
</div>
]]></content:encoded></item></channel></rss>