<?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>Handbook on MEMEX</title>
    <link>https://memex.keinmal.top/categories/handbook/</link>
    <description>Recent content in Handbook on MEMEX</description>
    <generator>Hugo --0.164.0</generator>
    <language>zh-cn</language><managingEditor>wyz2016zxc@outlook.com(Hiraeth)</managingEditor><webMaster>wyz2016zxc@outlook.com(Hiraeth)</webMaster><lastBuildDate>Wed, 30 Sep 2026 05:31:28 +0000</lastBuildDate><atom:link href="https://memex.keinmal.top/categories/handbook/index.xml" rel="self" type="application/rss+xml" /><item>
      <title>Archlinux 性能优化</title>
      <link>https://memex.keinmal.top/docs/linux/archlinux-enhance/</link>
      <pubDate>Wed, 26 Aug 2026 00:00:00 +0000</pubDate><author>wyz2016zxc@outlook.com(Hiraeth)</author><guid>https://memex.keinmal.top/docs/linux/archlinux-enhance/</guid>
      <description>和 deepseek 对话，查 archwiki，以及实践后的记录</description></item><item>
      <title>json toml yaml</title>
      <link>https://memex.keinmal.top/docs/code/json-toml-yaml/</link>
      <pubDate>Mon, 10 Aug 2026 00:00:00 +0000</pubDate><author>wyz2016zxc@outlook.com(Hiraeth)</author><guid>https://memex.keinmal.top/docs/code/json-toml-yaml/</guid>
      <description>三种数据格式的对比与使用</description></item><item>
      <title>niri</title>
      <link>https://memex.keinmal.top/docs/linux/niri/</link>
      <pubDate>Tue, 02 Dec 2025 00:00:00 +0000</pubDate><author>wyz2016zxc@outlook.com(Hiraeth)</author><guid>https://memex.keinmal.top/docs/linux/niri/</guid>
      <description>wayland下paper scroll 的 wm</description></item><item>
      <title>hugo</title>
      <link>https://memex.keinmal.top/docs/dev/hugo/</link>
      <pubDate>Tue, 02 Dec 2025 00:00:00 +0000</pubDate><author>wyz2016zxc@outlook.com(Hiraeth)</author><guid>https://memex.keinmal.top/docs/dev/hugo/</guid>
      <description>自制hugo主题后做一些记录</description></item><item>
      <title>hugo</title>
      <link>https://memex.keinmal.top/docs/code/hugo/</link>
      <pubDate>Tue, 02 Dec 2025 00:00:00 +0000</pubDate><author>wyz2016zxc@outlook.com(Hiraeth)</author><guid>https://memex.keinmal.top/docs/code/hugo/</guid>
      <description>自制hugo主题后做一些记录</description></item><item>
      <title>一些sh脚本</title>
      <link>https://memex.keinmal.top/docs/dev/scripts-example/</link>
      <pubDate>Sat, 25 Oct 2025 00:00:00 +0000</pubDate><author>wyz2016zxc@outlook.com(Hiraeth)</author><guid>https://memex.keinmal.top/docs/dev/scripts-example/</guid>
      <description>&lt;h1 id=&#34;scripts-example&#34;&gt;
  &lt;a class=&#34;anchor inpage&#34; href=&#34;#scripts-example&#34;&gt;#&lt;/a&gt;scripts example&lt;/h1&gt;
&lt;details open&gt;
    &lt;summary&gt;TEXT&lt;/summary&gt;&lt;pre
        class=&#34;codeblock&#34;
      &gt;&lt;code class=&#34;language-&#34; data-lang=&#34;&#34;&gt;find . -name &amp;#34;*.md&amp;#34; -type f -exec grep -lE &amp;#34;Finished&amp;#34; {} &amp;#43; | while read file; do
  if ! grep -q &amp;#34;2025-05-31&amp;#34; &amp;#34;$file&amp;#34;; then
    number=$(awk &amp;#39;/^pages: [0-9]&amp;#43;/ {print $2}&amp;#39; &amp;#34;$file&amp;#34;)
    if [ -n &amp;#34;$number&amp;#34; ]; then
      sed -i &amp;#34;/Finished/i\\- 2025-05-31: $number&amp;#34; &amp;#34;$file&amp;#34;
      echo &amp;#34;已处理: $file - 插入: - 2025-05-31: $number&amp;#34;
    else
      echo &amp;#34;跳过: $file (未找到pages数字或有效日期)&amp;#34;
    fi
  else
    echo &amp;#34;排除: $file (包含 2025-05-31)&amp;#34;
  fi
done&lt;/code&gt;&lt;button type=&#34;button&#34; class=&#34;copybtn&#34;&gt;copy&lt;/button&gt;&lt;/pre&gt;&lt;/details&gt;&lt;details open&gt;
    &lt;summary&gt;TEXT&lt;/summary&gt;&lt;pre
        class=&#34;codeblock&#34;
      &gt;&lt;code class=&#34;language-&#34; data-lang=&#34;&#34;&gt;# 创建备份和日志
backup_dir=&amp;#34;backup_$(date &amp;#43;%Y%m%d)&amp;#34;
mkdir -p &amp;#34;$backup_dir&amp;#34;
log_file=&amp;#34;replace_log.txt&amp;#34;

echo &amp;#34;开始替换操作 $(date)&amp;#34; &amp;gt; &amp;#34;$log_file&amp;#34;

find . -name &amp;#34;*.md&amp;#34; -type f | while read file; do
    # 检查文件是否包含目标字符串
    if grep -q &amp;#34;- 2025-06-01: Finished&amp;#34; &amp;#34;$file&amp;#34;; then
        # 创建备份
        cp &amp;#34;$file&amp;#34; &amp;#34;$backup_dir/$(basename &amp;#34;$file&amp;#34;)&amp;#34;
        # 执行替换
        sed -i &amp;#39;s/- 2025-06-01: Finished/- 2025-05-31: Finished/g&amp;#39; &amp;#34;$file&amp;#34;
        # 记录日志
        echo &amp;#34;已修改: $file&amp;#34; &amp;gt;&amp;gt; &amp;#34;$log_file&amp;#34;
        # 显示变更
        echo &amp;#34;=== $file 修改内容 ===&amp;#34;
        diff &amp;#34;$backup_dir/$(basename &amp;#34;$file&amp;#34;)&amp;#34; &amp;#34;$file&amp;#34; || true
    else
        echo &amp;#34;无修改: $file&amp;#34; &amp;gt;&amp;gt; &amp;#34;$log_file&amp;#34;
    fi
done

echo &amp;#34;操作完成，备份在 $backup_dir，日志见 $log_file&amp;#34;&lt;/code&gt;&lt;button type=&#34;button&#34; class=&#34;copybtn&#34;&gt;copy&lt;/button&gt;&lt;/pre&gt;&lt;/details&gt;&lt;details open&gt;
    &lt;summary&gt;TEXT&lt;/summary&gt;&lt;pre
        class=&#34;codeblock&#34;
      &gt;&lt;code class=&#34;language-&#34; data-lang=&#34;&#34;&gt;find . -name &amp;#34;*.md&amp;#34; -type f -exec grep -l &amp;#34;lists: book&amp;#34; {} &amp;#43; | \
while read file; do
    if ! grep -q &amp;#34;Finished&amp;#34; &amp;#34;$file&amp;#34;; then
        # 确保文件末尾有空行（避免追加内容粘连）
        [ -n &amp;#34;$(tail -c 1 &amp;#34;$file&amp;#34;)&amp;#34; ] &amp;amp;&amp;amp; echo &amp;gt;&amp;gt; &amp;#34;$file&amp;#34;
        # 追加内容
        echo &amp;#34;- 2025-06-01: Finished&amp;#34; &amp;gt;&amp;gt; &amp;#34;$file&amp;#34;
        echo &amp;#34;已处理: $file&amp;#34;
    else
        echo &amp;#34;跳过: $file (已包含 Finished)&amp;#34;
    fi
done&lt;/code&gt;&lt;button type=&#34;button&#34; class=&#34;copybtn&#34;&gt;copy&lt;/button&gt;&lt;/pre&gt;&lt;/details&gt;&lt;details open&gt;
    &lt;summary&gt;TEXT&lt;/summary&gt;&lt;pre
        class=&#34;codeblock&#34;
      &gt;&lt;code class=&#34;language-&#34; data-lang=&#34;&#34;&gt;find . -name &amp;#34;*.md&amp;#34; -type f -exec grep -L &amp;#34;Finished&amp;#34; {} &amp;#43; | while read file; do
    awk &amp;#39;BEGIN {done=0} /^---/ &amp;amp;&amp;amp; !done {print; print &amp;#34;- 2025-06-01: Finished&amp;#34;; done=1; next} 1&amp;#39; &amp;#34;$file&amp;#34; &amp;gt; tmp &amp;amp;&amp;amp; mv tmp &amp;#34;$file&amp;#34;
done&lt;/code&gt;&lt;button type=&#34;button&#34; class=&#34;copybtn&#34;&gt;copy&lt;/button&gt;&lt;/pre&gt;&lt;/details&gt;</description></item><item>
      <title>一些sh脚本</title>
      <link>https://memex.keinmal.top/docs/code/shell-scripts-example/</link>
      <pubDate>Sat, 25 Oct 2025 00:00:00 +0000</pubDate><author>wyz2016zxc@outlook.com(Hiraeth)</author><guid>https://memex.keinmal.top/docs/code/shell-scripts-example/</guid>
      <description>&lt;h1 id=&#34;scripts-example&#34;&gt;
  &lt;a class=&#34;anchor inpage&#34; href=&#34;#scripts-example&#34;&gt;#&lt;/a&gt;scripts example&lt;/h1&gt;
&lt;details open&gt;
    &lt;summary&gt;TEXT&lt;/summary&gt;&lt;pre
        class=&#34;codeblock&#34;
      &gt;&lt;code class=&#34;language-&#34; data-lang=&#34;&#34;&gt;find . -name &amp;#34;*.md&amp;#34; -type f -exec grep -lE &amp;#34;Finished&amp;#34; {} &amp;#43; | while read file; do
  if ! grep -q &amp;#34;2025-05-31&amp;#34; &amp;#34;$file&amp;#34;; then
    number=$(awk &amp;#39;/^pages: [0-9]&amp;#43;/ {print $2}&amp;#39; &amp;#34;$file&amp;#34;)
    if [ -n &amp;#34;$number&amp;#34; ]; then
      sed -i &amp;#34;/Finished/i\\- 2025-05-31: $number&amp;#34; &amp;#34;$file&amp;#34;
      echo &amp;#34;已处理: $file - 插入: - 2025-05-31: $number&amp;#34;
    else
      echo &amp;#34;跳过: $file (未找到pages数字或有效日期)&amp;#34;
    fi
  else
    echo &amp;#34;排除: $file (包含 2025-05-31)&amp;#34;
  fi
done&lt;/code&gt;&lt;button type=&#34;button&#34; class=&#34;copybtn&#34;&gt;copy&lt;/button&gt;&lt;/pre&gt;&lt;/details&gt;&lt;details open&gt;
    &lt;summary&gt;TEXT&lt;/summary&gt;&lt;pre
        class=&#34;codeblock&#34;
      &gt;&lt;code class=&#34;language-&#34; data-lang=&#34;&#34;&gt;# 创建备份和日志
backup_dir=&amp;#34;backup_$(date &amp;#43;%Y%m%d)&amp;#34;
mkdir -p &amp;#34;$backup_dir&amp;#34;
log_file=&amp;#34;replace_log.txt&amp;#34;

echo &amp;#34;开始替换操作 $(date)&amp;#34; &amp;gt; &amp;#34;$log_file&amp;#34;

find . -name &amp;#34;*.md&amp;#34; -type f | while read file; do
    # 检查文件是否包含目标字符串
    if grep -q &amp;#34;- 2025-06-01: Finished&amp;#34; &amp;#34;$file&amp;#34;; then
        # 创建备份
        cp &amp;#34;$file&amp;#34; &amp;#34;$backup_dir/$(basename &amp;#34;$file&amp;#34;)&amp;#34;
        # 执行替换
        sed -i &amp;#39;s/- 2025-06-01: Finished/- 2025-05-31: Finished/g&amp;#39; &amp;#34;$file&amp;#34;
        # 记录日志
        echo &amp;#34;已修改: $file&amp;#34; &amp;gt;&amp;gt; &amp;#34;$log_file&amp;#34;
        # 显示变更
        echo &amp;#34;=== $file 修改内容 ===&amp;#34;
        diff &amp;#34;$backup_dir/$(basename &amp;#34;$file&amp;#34;)&amp;#34; &amp;#34;$file&amp;#34; || true
    else
        echo &amp;#34;无修改: $file&amp;#34; &amp;gt;&amp;gt; &amp;#34;$log_file&amp;#34;
    fi
done

echo &amp;#34;操作完成，备份在 $backup_dir，日志见 $log_file&amp;#34;&lt;/code&gt;&lt;button type=&#34;button&#34; class=&#34;copybtn&#34;&gt;copy&lt;/button&gt;&lt;/pre&gt;&lt;/details&gt;&lt;details open&gt;
    &lt;summary&gt;TEXT&lt;/summary&gt;&lt;pre
        class=&#34;codeblock&#34;
      &gt;&lt;code class=&#34;language-&#34; data-lang=&#34;&#34;&gt;find . -name &amp;#34;*.md&amp;#34; -type f -exec grep -l &amp;#34;lists: book&amp;#34; {} &amp;#43; | \
while read file; do
    if ! grep -q &amp;#34;Finished&amp;#34; &amp;#34;$file&amp;#34;; then
        # 确保文件末尾有空行（避免追加内容粘连）
        [ -n &amp;#34;$(tail -c 1 &amp;#34;$file&amp;#34;)&amp;#34; ] &amp;amp;&amp;amp; echo &amp;gt;&amp;gt; &amp;#34;$file&amp;#34;
        # 追加内容
        echo &amp;#34;- 2025-06-01: Finished&amp;#34; &amp;gt;&amp;gt; &amp;#34;$file&amp;#34;
        echo &amp;#34;已处理: $file&amp;#34;
    else
        echo &amp;#34;跳过: $file (已包含 Finished)&amp;#34;
    fi
done&lt;/code&gt;&lt;button type=&#34;button&#34; class=&#34;copybtn&#34;&gt;copy&lt;/button&gt;&lt;/pre&gt;&lt;/details&gt;&lt;details open&gt;
    &lt;summary&gt;TEXT&lt;/summary&gt;&lt;pre
        class=&#34;codeblock&#34;
      &gt;&lt;code class=&#34;language-&#34; data-lang=&#34;&#34;&gt;find . -name &amp;#34;*.md&amp;#34; -type f -exec grep -L &amp;#34;Finished&amp;#34; {} &amp;#43; | while read file; do
    awk &amp;#39;BEGIN {done=0} /^---/ &amp;amp;&amp;amp; !done {print; print &amp;#34;- 2025-06-01: Finished&amp;#34;; done=1; next} 1&amp;#39; &amp;#34;$file&amp;#34; &amp;gt; tmp &amp;amp;&amp;amp; mv tmp &amp;#34;$file&amp;#34;
done&lt;/code&gt;&lt;button type=&#34;button&#34; class=&#34;copybtn&#34;&gt;copy&lt;/button&gt;&lt;/pre&gt;&lt;/details&gt;</description></item><item>
      <title>linux手册</title>
      <link>https://memex.keinmal.top/docs/linux/linux-handbook/</link>
      <pubDate>Sat, 25 Oct 2025 00:00:00 +0000</pubDate><author>wyz2016zxc@outlook.com(Hiraeth)</author><guid>https://memex.keinmal.top/docs/linux/linux-handbook/</guid>
      <description>&lt;h1 id=&#34;linux-handbook&#34;&gt;
  &lt;a class=&#34;anchor inpage&#34; href=&#34;#linux-handbook&#34;&gt;#&lt;/a&gt;Linux Handbook&lt;/h1&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;details open&gt;
    &lt;summary&gt;TEXT&lt;/summary&gt;&lt;pre
        class=&#34;codeblock&#34;
      &gt;&lt;code class=&#34;language-&#34; data-lang=&#34;&#34;&gt;bash &amp;lt;(curl -sSL https://linuxmirrors.cn/main.sh)&lt;/code&gt;&lt;button type=&#34;button&#34; class=&#34;copybtn&#34;&gt;copy&lt;/button&gt;&lt;/pre&gt;&lt;/details&gt;&lt;details open&gt;
    &lt;summary&gt;TEXT&lt;/summary&gt;&lt;pre
        class=&#34;codeblock&#34;
      &gt;&lt;code class=&#34;language-&#34; data-lang=&#34;&#34;&gt;bash &amp;lt;(curl -sSL https://linuxmirrors.cn/docker.sh)&lt;/code&gt;&lt;button type=&#34;button&#34; class=&#34;copybtn&#34;&gt;copy&lt;/button&gt;&lt;/pre&gt;&lt;/details&gt;&lt;details open&gt;
    &lt;summary&gt;TEXT&lt;/summary&gt;&lt;pre
        class=&#34;codeblock&#34;
      &gt;&lt;code class=&#34;language-&#34; data-lang=&#34;&#34;&gt;bash &amp;lt;(curl -sSL https://linuxmirrors.cn/docker.sh) --only-registry&lt;/code&gt;&lt;button type=&#34;button&#34; class=&#34;copybtn&#34;&gt;copy&lt;/button&gt;&lt;/pre&gt;&lt;/details&gt;&lt;h2 id=&#34;file&#34;&gt;
  &lt;a class=&#34;anchor inpage&#34; href=&#34;#file&#34;&gt;##&lt;/a&gt;file&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;filedialog&lt;/code&gt; 是其他应用需要选择文件时的弹窗&lt;/p&gt;
&lt;h2 id=&#34;boot&#34;&gt;
  &lt;a class=&#34;anchor inpage&#34; href=&#34;#boot&#34;&gt;##&lt;/a&gt;boot&lt;/h2&gt;
&lt;h2 id=&#34;display-manager&#34;&gt;
  &lt;a class=&#34;anchor inpage&#34; href=&#34;#display-manager&#34;&gt;##&lt;/a&gt;display manager&lt;/h2&gt;
&lt;p&gt;lightdm 有一堆莫名其妙的问题&lt;/p&gt;
&lt;p&gt;gtk display还不知道怎么搞&lt;/p&gt;</description></item><item>
      <title>cli收集</title>
      <link>https://memex.keinmal.top/docs/dev/cli/</link>
      <pubDate>Thu, 23 Oct 2025 00:00:00 +0000</pubDate><author>wyz2016zxc@outlook.com(Hiraeth)</author><guid>https://memex.keinmal.top/docs/dev/cli/</guid>
      <description>收集一些cli的命令工具用法</description></item><item>
      <title>一些nvim的配置和使用技巧</title>
      <link>https://memex.keinmal.top/docs/software/nvim-trick/</link>
      <pubDate>Wed, 06 Aug 2025 00:00:00 +0000</pubDate><author>wyz2016zxc@outlook.com(Hiraeth)</author><guid>https://memex.keinmal.top/docs/software/nvim-trick/</guid>
      <description>&lt;h1 id=&#34;一些nvim的配置和使用技巧&#34;&gt;
  &lt;a class=&#34;anchor inpage&#34; href=&#34;#%e4%b8%80%e4%ba%9bnvim%e7%9a%84%e9%85%8d%e7%bd%ae%e5%92%8c%e4%bd%bf%e7%94%a8%e6%8a%80%e5%b7%a7&#34;&gt;#&lt;/a&gt;一些nvim的配置和使用技巧&lt;/h1&gt;
&lt;h2 id=&#34;cmd&#34;&gt;
  &lt;a class=&#34;anchor inpage&#34; href=&#34;#cmd&#34;&gt;##&lt;/a&gt;cmd&lt;/h2&gt;
&lt;p&gt;Lua 输出：&lt;/p&gt;
&lt;details open&gt;
    &lt;summary&gt;nvim&lt;/summary&gt;&lt;pre
        class=&#34;codeblock&#34;
      &gt;&lt;code class=&#34;language-nvim&#34; data-lang=&#34;nvim&#34;&gt;:lua =vim.opt.runtimepath:get()&lt;/code&gt;&lt;button type=&#34;button&#34; class=&#34;copybtn&#34;&gt;copy&lt;/button&gt;&lt;/pre&gt;&lt;/details&gt;&lt;p&gt;&lt;code&gt;:setl ma! ma?&lt;/code&gt; 可以切换一个buffer的只读状态。
注意其他编辑器的只读一般是“你可以修改但不能保存“，这个是你根本不能修改，比如说根本就不能进入插入模式。
可以设一个顺手的keymap，比如说我是nnoremap &lt;silent&gt; ;m :setl ma! ma?&lt;cr&gt; 。&lt;/p&gt;</description></item></channel>
</rss>
