<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>神奇的算法之旅</title>
        <link>https://beargod.cool/</link>
        <description>Recent content on 神奇的算法之旅</description>
        <generator>Hugo -- gohugo.io</generator>
        <language>zh-cn</language>
        <lastBuildDate>Fri, 01 Sep 2023 10:47:50 +0800</lastBuildDate><atom:link href="https://beargod.cool/index.xml" rel="self" type="application/rss+xml" /><item>
        <title>常见排序算法及其实现</title>
        <link>https://beargod.cool/posts/algorithm/sort/</link>
        <pubDate>Fri, 01 Sep 2023 10:47:50 +0800</pubDate>
        
        <guid>https://beargod.cool/posts/algorithm/sort/</guid>
        <description>&lt;h2 id=&#34;冒泡排序&#34;&gt;冒泡排序
&lt;/h2&gt;&lt;p&gt;比较简单无脑的排序算法，在数据量很小的时候可以用一用。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;稳定性：稳定&lt;/li&gt;
&lt;li&gt;时间复杂度：O(n^2)&lt;/li&gt;
&lt;li&gt;空间复杂度：O(1)&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;c-实现&#34;&gt;C# 实现
&lt;/h3&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;12
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;13
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;14
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;15
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;16
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;17
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;18
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;19
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;20
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;21
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;22
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;23
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;24
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-csharp&#34; data-lang=&#34;csharp&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;void&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;BubbleSort&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;T&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;&amp;gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;IList&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;T&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;collection&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;kt&#34;&gt;bool&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;descending&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;false&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;where&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;T&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;IComparable&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;T&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;kt&#34;&gt;var&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;mul&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;descending&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;?&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;1&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;m&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;for&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;kt&#34;&gt;var&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;i&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;m&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;i&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;&amp;lt;&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;collection&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Count&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;-&lt;/span&gt; &lt;span class=&#34;m&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;i&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;++)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;kt&#34;&gt;var&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;sorted&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;true&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;for&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;kt&#34;&gt;var&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;j&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;m&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;j&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;&amp;lt;&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;collection&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Count&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;-&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;i&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;-&lt;/span&gt; &lt;span class=&#34;m&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;j&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;++)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;collection&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;j&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;].&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;CompareTo&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;collection&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;j&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;+&lt;/span&gt; &lt;span class=&#34;m&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;])&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;*&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;mul&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&#34;m&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;c1&#34;&gt;// Using syntactic sugar to swap&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;collection&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;j&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;],&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;collection&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;j&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;+&lt;/span&gt; &lt;span class=&#34;m&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;])&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;collection&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;j&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;+&lt;/span&gt; &lt;span class=&#34;m&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;],&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;collection&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;j&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;n&#34;&gt;sorted&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;false&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;c1&#34;&gt;// If the list is sorted, we should stop comparing&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;sorted&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;k&#34;&gt;break&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;选择排序&#34;&gt;选择排序
&lt;/h2&gt;&lt;p&gt;同冒泡排序相比，没有本质区别。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;稳定性：不稳定&lt;/li&gt;
&lt;li&gt;时间复杂度：O(n^2)&lt;/li&gt;
&lt;li&gt;空间复杂度：O(1)&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;c-实现-1&#34;&gt;C# 实现
&lt;/h3&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;12
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;13
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;14
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;15
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;16
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-csharp&#34; data-lang=&#34;csharp&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;void&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;SelectionSort&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;T&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;&amp;gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;IList&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;T&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;collection&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;kt&#34;&gt;bool&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;descending&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;false&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;where&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;T&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;IComparable&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;T&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;kt&#34;&gt;var&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;mul&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;descending&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;?&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;1&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;m&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;for&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;kt&#34;&gt;var&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;i&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;m&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;i&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;&amp;lt;&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;collection&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Count&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;-&lt;/span&gt; &lt;span class=&#34;m&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;i&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;++)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;kt&#34;&gt;var&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;lastIndex&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;collection&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Count&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;-&lt;/span&gt; &lt;span class=&#34;m&#34;&gt;1&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;-&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;i&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;for&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;kt&#34;&gt;var&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;j&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;m&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;j&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;&amp;lt;&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;lastIndex&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;j&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;++)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;collection&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;j&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;].&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;CompareTo&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;collection&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;lastIndex&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;])&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;*&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;mul&lt;/span&gt;  &lt;span class=&#34;p&#34;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&#34;m&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;collection&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;j&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;],&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;collection&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;lastIndex&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;])&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;collection&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;lastIndex&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;],&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;collection&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;j&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;插入排序&#34;&gt;插入排序
&lt;/h2&gt;&lt;p&gt;对于每一个未排序数据，将其插入到有序序列的合适位置。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;稳定性：稳定&lt;/li&gt;
&lt;li&gt;时间复杂度： O(n^2)&lt;/li&gt;
&lt;li&gt;空间复杂度： O(1)&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;c-实现-2&#34;&gt;C# 实现
&lt;/h3&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;12
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;13
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;14
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;15
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;16
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;17
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;18
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;19
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;20
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;21
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;22
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;23
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;24
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;25
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;26
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;27
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;28
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-csharp&#34; data-lang=&#34;csharp&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;void&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;InsertionSort&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;T&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;&amp;gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;IList&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;T&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;collection&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;kt&#34;&gt;bool&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;descending&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;false&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;where&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;T&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;IComparable&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;T&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;kt&#34;&gt;var&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;mul&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;descending&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;?&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;1&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;m&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;for&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;kt&#34;&gt;var&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;i&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;m&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;i&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;&amp;lt;&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;collection&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Count&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;i&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;++)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;kt&#34;&gt;var&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;tmp&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;collection&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;i&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;];&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;for&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;kt&#34;&gt;var&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;j&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;i&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;-&lt;/span&gt; &lt;span class=&#34;m&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;j&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;&amp;gt;=&lt;/span&gt; &lt;span class=&#34;m&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;j&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;--)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;collection&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;j&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;].&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;CompareTo&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;tmp&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;*&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;mul&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&#34;m&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;n&#34;&gt;collection&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;j&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;+&lt;/span&gt; &lt;span class=&#34;m&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;collection&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;j&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;];&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;j&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;==&lt;/span&gt; &lt;span class=&#34;m&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                    &lt;span class=&#34;n&#34;&gt;collection&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;tmp&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;k&#34;&gt;else&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;n&#34;&gt;collection&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;j&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;+&lt;/span&gt; &lt;span class=&#34;m&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;tmp&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;k&#34;&gt;break&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;PrintCollection&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;collection&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;</description>
        </item>
        <item>
        <title>Lazy Vim 快捷键</title>
        <link>https://beargod.cool/posts/vim/lazyvim_keybindings/</link>
        <pubDate>Mon, 31 Jul 2023 10:00:43 +0800</pubDate>
        
        <guid>https://beargod.cool/posts/vim/lazyvim_keybindings/</guid>
        <description>&lt;h2 id=&#34;personal&#34;&gt;Personal
&lt;/h2&gt;&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Key&lt;/th&gt;
          &lt;th&gt;Description&lt;/th&gt;
          &lt;th&gt;Mode&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;jk&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Escape&lt;/td&gt;
          &lt;td&gt;i&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id=&#34;general&#34;&gt;General
&lt;/h2&gt;&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Key&lt;/th&gt;
          &lt;th&gt;Description&lt;/th&gt;
          &lt;th&gt;Mode&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;&amp;lt;C-h&amp;gt;&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Go to left window&lt;/td&gt;
          &lt;td&gt;n, t&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;&amp;lt;C-j&amp;gt;&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Go to lower window&lt;/td&gt;
          &lt;td&gt;n, t&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;&amp;lt;C-k&amp;gt;&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Go to upper window&lt;/td&gt;
          &lt;td&gt;n, t&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;&amp;lt;C-l&amp;gt;&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Go to right window&lt;/td&gt;
          &lt;td&gt;n, t&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;&amp;lt;C-Up&amp;gt;&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Increase window height&lt;/td&gt;
          &lt;td&gt;n&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;&amp;lt;C-Down&amp;gt;&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Decrease window height&lt;/td&gt;
          &lt;td&gt;n&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;&amp;lt;C-Left&amp;gt;&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Decrease window width&lt;/td&gt;
          &lt;td&gt;n&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;&amp;lt;C-Right&amp;gt;&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Increase window width&lt;/td&gt;
          &lt;td&gt;n&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;&amp;lt;A-j&amp;gt;&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Move down&lt;/td&gt;
          &lt;td&gt;n, i, v&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;&amp;lt;A-k&amp;gt;&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Move up&lt;/td&gt;
          &lt;td&gt;n, i, v&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;&amp;lt;S-h&amp;gt;&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Prev buffer&lt;/td&gt;
          &lt;td&gt;n&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;&amp;lt;S-l&amp;gt;&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Next buffer&lt;/td&gt;
          &lt;td&gt;n&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;[b&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Prev buffer&lt;/td&gt;
          &lt;td&gt;n&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;]b&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Next buffer&lt;/td&gt;
          &lt;td&gt;n&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;&amp;lt;leader&amp;gt;bb&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Switch to Other Buffer&lt;/td&gt;
          &lt;td&gt;n&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;&amp;lt;leader&amp;gt;&lt;/code&gt; `&lt;/td&gt;
          &lt;td&gt;Switch to Other Buffer&lt;/td&gt;
          &lt;td&gt;n&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;&amp;lt;esc&amp;gt;&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Escape and clear hlsearch&lt;/td&gt;
          &lt;td&gt;i, n&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;&amp;lt;leader&amp;gt;ur&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Redraw / clear hlsearch / diff update&lt;/td&gt;
          &lt;td&gt;n&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;gw&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Search word under cursor&lt;/td&gt;
          &lt;td&gt;n, x&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;n&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Next search result&lt;/td&gt;
          &lt;td&gt;n, x, o&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;N&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Prev search result&lt;/td&gt;
          &lt;td&gt;n, x, o&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;&amp;lt;C-s&amp;gt;&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Save file&lt;/td&gt;
          &lt;td&gt;i, v, n, s&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;&amp;lt;leader&amp;gt;K&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Keywordprg&lt;/td&gt;
          &lt;td&gt;n&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;&amp;lt;leader&amp;gt;l&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Lazy&lt;/td&gt;
          &lt;td&gt;n&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;&amp;lt;leader&amp;gt;fn&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;New File&lt;/td&gt;
          &lt;td&gt;n&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;&amp;lt;leader&amp;gt;xl&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Location List&lt;/td&gt;
          &lt;td&gt;n&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;&amp;lt;leader&amp;gt;xq&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Quickfix List&lt;/td&gt;
          &lt;td&gt;n&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;&amp;lt;leader&amp;gt;uf&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Toggle format on Save&lt;/td&gt;
          &lt;td&gt;n&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;&amp;lt;leader&amp;gt;us&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Toggle Spelling&lt;/td&gt;
          &lt;td&gt;n&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;&amp;lt;leader&amp;gt;uw&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Toggle Word Wrap&lt;/td&gt;
          &lt;td&gt;n&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;&amp;lt;leader&amp;gt;ul&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Toggle Line Numbers&lt;/td&gt;
          &lt;td&gt;n&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;&amp;lt;leader&amp;gt;ud&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Toggle Diagnostics&lt;/td&gt;
          &lt;td&gt;n&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;&amp;lt;leader&amp;gt;uc&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Toggle Conceal&lt;/td&gt;
          &lt;td&gt;n&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;&amp;lt;leader&amp;gt;uh&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Toggle Inlay Hints&lt;/td&gt;
          &lt;td&gt;n&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;&amp;lt;leader&amp;gt;gg&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Lazygit (root dir)&lt;/td&gt;
          &lt;td&gt;n&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;&amp;lt;leader&amp;gt;gG&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Lazygit (cwd)&lt;/td&gt;
          &lt;td&gt;n&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;&amp;lt;leader&amp;gt;qq&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Quit all&lt;/td&gt;
          &lt;td&gt;n&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;&amp;lt;leader&amp;gt;ui&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Inspect Pos&lt;/td&gt;
          &lt;td&gt;n&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;&amp;lt;leader&amp;gt;L&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;LazyVim Changelog&lt;/td&gt;
          &lt;td&gt;n&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;&amp;lt;leader&amp;gt;ft&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Terminal (root dir)&lt;/td&gt;
          &lt;td&gt;n&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;&amp;lt;leader&amp;gt;fT&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Terminal (cwd)&lt;/td&gt;
          &lt;td&gt;n&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;&amp;lt;c-/&amp;gt;&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Terminal (root dir)&lt;/td&gt;
          &lt;td&gt;n&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;&amp;lt;c-_&amp;gt;&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;which_Key_ignore&lt;/td&gt;
          &lt;td&gt;n, t&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;&amp;lt;esc&amp;gt;&amp;lt;esc&amp;gt;&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Enter Normal Mode&lt;/td&gt;
          &lt;td&gt;t&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;&amp;lt;C-/&amp;gt;&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Hide Terminal&lt;/td&gt;
          &lt;td&gt;t&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;&amp;lt;leader&amp;gt;ww&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Other window&lt;/td&gt;
          &lt;td&gt;n&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;&amp;lt;leader&amp;gt;wd&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Delete window&lt;/td&gt;
          &lt;td&gt;n&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;&amp;lt;leader&amp;gt;w-&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Split window below&lt;/td&gt;
          &lt;td&gt;n&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;&amp;lt;leader&amp;gt;w|&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Split window right&lt;/td&gt;
          &lt;td&gt;n&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;&amp;lt;leader&amp;gt;-&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Split window below&lt;/td&gt;
          &lt;td&gt;n&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;&amp;lt;leader&amp;gt;|&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Split window right&lt;/td&gt;
          &lt;td&gt;n&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;&amp;lt;leader&amp;gt;&amp;lt;tab&amp;gt;l&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Last Tab&lt;/td&gt;
          &lt;td&gt;n&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;&amp;lt;leader&amp;gt;&amp;lt;tab&amp;gt;f&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;First Tab&lt;/td&gt;
          &lt;td&gt;n&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;&amp;lt;leader&amp;gt;&amp;lt;tab&amp;gt;&amp;lt;tab&amp;gt;&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;New Tab&lt;/td&gt;
          &lt;td&gt;n&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;&amp;lt;leader&amp;gt;&amp;lt;tab&amp;gt;]&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Next Tab&lt;/td&gt;
          &lt;td&gt;n&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;&amp;lt;leader&amp;gt;&amp;lt;tab&amp;gt;d&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Close Tab&lt;/td&gt;
          &lt;td&gt;n&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;&amp;lt;leader&amp;gt;&amp;lt;tab&amp;gt;[&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Previous Tab&lt;/td&gt;
          &lt;td&gt;n&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id=&#34;lsp&#34;&gt;LSP
&lt;/h2&gt;&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Key&lt;/th&gt;
          &lt;th&gt;Description&lt;/th&gt;
          &lt;th&gt;Mode&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;&amp;lt;leader&amp;gt;cd&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Line Diagnostics&lt;/td&gt;
          &lt;td&gt;n&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;&amp;lt;leader&amp;gt;cl&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Lsp Info&lt;/td&gt;
          &lt;td&gt;n&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;gd&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Goto Definition&lt;/td&gt;
          &lt;td&gt;n&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;gr&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;References&lt;/td&gt;
          &lt;td&gt;n&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;gD&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Goto Declaration&lt;/td&gt;
          &lt;td&gt;n&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;gI&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Goto Implementation&lt;/td&gt;
          &lt;td&gt;n&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;gy&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Goto Type Definition&lt;/td&gt;
          &lt;td&gt;n&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;K&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Hover&lt;/td&gt;
          &lt;td&gt;n&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;gK&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Signature Help&lt;/td&gt;
          &lt;td&gt;n&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;&amp;lt;c-k&amp;gt;&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Signature Help&lt;/td&gt;
          &lt;td&gt;i&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;]d&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Next Diagnostic&lt;/td&gt;
          &lt;td&gt;n&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;[d&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Prev Diagnostic&lt;/td&gt;
          &lt;td&gt;n&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;]e&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Next Error&lt;/td&gt;
          &lt;td&gt;n&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;[e&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Prev Error&lt;/td&gt;
          &lt;td&gt;n&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;]w&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Next Warning&lt;/td&gt;
          &lt;td&gt;n&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;[w&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Prev Warning&lt;/td&gt;
          &lt;td&gt;n&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;&amp;lt;leader&amp;gt;cf&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Format Document&lt;/td&gt;
          &lt;td&gt;n&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;&amp;lt;leader&amp;gt;cf&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Format Range&lt;/td&gt;
          &lt;td&gt;v&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;&amp;lt;leader&amp;gt;ca&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Code Action&lt;/td&gt;
          &lt;td&gt;n, v&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;&amp;lt;leader&amp;gt;cA&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Source Action&lt;/td&gt;
          &lt;td&gt;n&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;&amp;lt;leader&amp;gt;cr&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Rename&lt;/td&gt;
          &lt;td&gt;n&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id=&#34;bufferlinenvim&#34;&gt;bufferline.nvim
&lt;/h2&gt;&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Key&lt;/th&gt;
          &lt;th&gt;Description&lt;/th&gt;
          &lt;th&gt;Mode&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;&amp;lt;leader&amp;gt;bp&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Toggle pin&lt;/td&gt;
          &lt;td&gt;n&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;&amp;lt;leader&amp;gt;bP&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Delete non-pinned buffers&lt;/td&gt;
          &lt;td&gt;n&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id=&#34;flashnvim&#34;&gt;flash.nvim
&lt;/h2&gt;&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Key&lt;/th&gt;
          &lt;th&gt;Description&lt;/th&gt;
          &lt;th&gt;Mode&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;s&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Flash&lt;/td&gt;
          &lt;td&gt;n, x, o&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;S&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Flash Treesitter&lt;/td&gt;
          &lt;td&gt;n, o, x&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;r&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Remote Flash&lt;/td&gt;
          &lt;td&gt;o&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;R&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Treesitter Search&lt;/td&gt;
          &lt;td&gt;o, x&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;&amp;lt;c-s&amp;gt;&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Toggle Flash Search&lt;/td&gt;
          &lt;td&gt;c&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id=&#34;masonnvim&#34;&gt;mason.nvim
&lt;/h2&gt;&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Key&lt;/th&gt;
          &lt;th&gt;Description&lt;/th&gt;
          &lt;th&gt;Mode&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;&amp;lt;leader&amp;gt;cm&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Mason&lt;/td&gt;
          &lt;td&gt;n&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id=&#34;minibufremove&#34;&gt;mini.bufremove
&lt;/h2&gt;&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Key&lt;/th&gt;
          &lt;th&gt;Description&lt;/th&gt;
          &lt;th&gt;Mode&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;&amp;lt;leader&amp;gt;bd&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Delete Buffer&lt;/td&gt;
          &lt;td&gt;n&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;&amp;lt;leader&amp;gt;bD&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Delete Buffer (Force)&lt;/td&gt;
          &lt;td&gt;n&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id=&#34;minisurround&#34;&gt;mini.surround
&lt;/h2&gt;&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Key&lt;/th&gt;
          &lt;th&gt;Description&lt;/th&gt;
          &lt;th&gt;Mode&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;gza&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Add surrounding&lt;/td&gt;
          &lt;td&gt;n, v&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;gzd&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Delete surrounding&lt;/td&gt;
          &lt;td&gt;n&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;gzf&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Find right surrounding&lt;/td&gt;
          &lt;td&gt;n&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;gzF&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Find left surrounding&lt;/td&gt;
          &lt;td&gt;n&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;gzh&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Highlight surrounding&lt;/td&gt;
          &lt;td&gt;n&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;gzr&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Replace surrounding&lt;/td&gt;
          &lt;td&gt;n&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;gzn&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Update MiniSurround.config.n_lines&lt;/td&gt;
          &lt;td&gt;n&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id=&#34;neo-treenvim&#34;&gt;neo-tree.nvim
&lt;/h2&gt;&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Key&lt;/th&gt;
          &lt;th&gt;Description&lt;/th&gt;
          &lt;th&gt;Mode&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;&amp;lt;leader&amp;gt;fe&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Explorer NeoTree (root dir)&lt;/td&gt;
          &lt;td&gt;n&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;&amp;lt;leader&amp;gt;fE&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Explorer NeoTree (cwd)&lt;/td&gt;
          &lt;td&gt;n&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;&amp;lt;leader&amp;gt;e&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Explorer NeoTree (root dir)&lt;/td&gt;
          &lt;td&gt;n&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;&amp;lt;leader&amp;gt;E&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Explorer NeoTree (cwd)&lt;/td&gt;
          &lt;td&gt;n&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id=&#34;noicenvim&#34;&gt;noice.nvim
&lt;/h2&gt;&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Key&lt;/th&gt;
          &lt;th&gt;Description&lt;/th&gt;
          &lt;th&gt;Mode&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;&amp;lt;S-Enter&amp;gt;&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Redirect Cmdline&lt;/td&gt;
          &lt;td&gt;c&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;&amp;lt;leader&amp;gt;snl&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Noice Last Message&lt;/td&gt;
          &lt;td&gt;n&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;&amp;lt;leader&amp;gt;snh&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Noice History&lt;/td&gt;
          &lt;td&gt;n&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;&amp;lt;leader&amp;gt;sna&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Noice All&lt;/td&gt;
          &lt;td&gt;n&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;&amp;lt;leader&amp;gt;snd&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Dismiss All&lt;/td&gt;
          &lt;td&gt;n&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;&amp;lt;c-f&amp;gt;&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Scroll forward&lt;/td&gt;
          &lt;td&gt;i, n, s&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;&amp;lt;c-b&amp;gt;&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Scroll backward&lt;/td&gt;
          &lt;td&gt;i, n, s&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id=&#34;nvim-notify&#34;&gt;nvim-notify
&lt;/h2&gt;&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Key&lt;/th&gt;
          &lt;th&gt;Description&lt;/th&gt;
          &lt;th&gt;Mode&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;&amp;lt;leader&amp;gt;un&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Dismiss all Notifications&lt;/td&gt;
          &lt;td&gt;n&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id=&#34;nvim-spectre&#34;&gt;nvim-spectre
&lt;/h2&gt;&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Key&lt;/th&gt;
          &lt;th&gt;Description&lt;/th&gt;
          &lt;th&gt;Mode&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;&amp;lt;leader&amp;gt;sr&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Replace in files (Spectre)&lt;/td&gt;
          &lt;td&gt;n&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id=&#34;nvim-treesitter&#34;&gt;nvim-treesitter
&lt;/h2&gt;&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Key&lt;/th&gt;
          &lt;th&gt;Description&lt;/th&gt;
          &lt;th&gt;Mode&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;&amp;lt;c-space&amp;gt;&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Increment selection&lt;/td&gt;
          &lt;td&gt;n&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;&amp;lt;bs&amp;gt;&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Decrement selection&lt;/td&gt;
          &lt;td&gt;x&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id=&#34;persistencenvim&#34;&gt;persistence.nvim
&lt;/h2&gt;&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Key&lt;/th&gt;
          &lt;th&gt;Description&lt;/th&gt;
          &lt;th&gt;Mode&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;&amp;lt;leader&amp;gt;qs&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Restore Session&lt;/td&gt;
          &lt;td&gt;n&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;&amp;lt;leader&amp;gt;ql&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Restore Last Session&lt;/td&gt;
          &lt;td&gt;n&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;&amp;lt;leader&amp;gt;qd&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Don&amp;rsquo;t Save Current Session&lt;/td&gt;
          &lt;td&gt;n&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id=&#34;telescopenvim&#34;&gt;telescope.nvim
&lt;/h2&gt;&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Key&lt;/th&gt;
          &lt;th&gt;Description&lt;/th&gt;
          &lt;th&gt;Mode&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;&amp;lt;leader&amp;gt;,&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Switch Buffer&lt;/td&gt;
          &lt;td&gt;n&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;&amp;lt;leader&amp;gt;/&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Grep (root dir)&lt;/td&gt;
          &lt;td&gt;n&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;&amp;lt;leader&amp;gt;:&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Command History&lt;/td&gt;
          &lt;td&gt;n&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;&amp;lt;leader&amp;gt;&amp;lt;space&amp;gt;&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Find Files (root dir)&lt;/td&gt;
          &lt;td&gt;n&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;&amp;lt;leader&amp;gt;fb&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Buffers&lt;/td&gt;
          &lt;td&gt;n&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;&amp;lt;leader&amp;gt;ff&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Find Files (root dir)&lt;/td&gt;
          &lt;td&gt;n&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;&amp;lt;leader&amp;gt;fF&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Find Files (cwd)&lt;/td&gt;
          &lt;td&gt;n&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;&amp;lt;leader&amp;gt;fr&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Recent&lt;/td&gt;
          &lt;td&gt;n&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;&amp;lt;leader&amp;gt;fR&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Recent (cwd)&lt;/td&gt;
          &lt;td&gt;n&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;&amp;lt;leader&amp;gt;gc&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;commits&lt;/td&gt;
          &lt;td&gt;n&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;&amp;lt;leader&amp;gt;gs&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;status&lt;/td&gt;
          &lt;td&gt;n&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;&amp;lt;leader&amp;gt;s&amp;quot;&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Registers&lt;/td&gt;
          &lt;td&gt;n&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;&amp;lt;leader&amp;gt;sa&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Auto Commands&lt;/td&gt;
          &lt;td&gt;n&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;&amp;lt;leader&amp;gt;sb&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Buffer&lt;/td&gt;
          &lt;td&gt;n&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;&amp;lt;leader&amp;gt;sc&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Command History&lt;/td&gt;
          &lt;td&gt;n&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;&amp;lt;leader&amp;gt;sC&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Commands&lt;/td&gt;
          &lt;td&gt;n&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;&amp;lt;leader&amp;gt;sd&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Document diagnostics&lt;/td&gt;
          &lt;td&gt;n&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;&amp;lt;leader&amp;gt;sD&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Workspace diagnostics&lt;/td&gt;
          &lt;td&gt;n&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;&amp;lt;leader&amp;gt;sg&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Grep (root dir)&lt;/td&gt;
          &lt;td&gt;n&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;&amp;lt;leader&amp;gt;sG&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Grep (cwd)&lt;/td&gt;
          &lt;td&gt;n&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;&amp;lt;leader&amp;gt;sh&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Help Pages&lt;/td&gt;
          &lt;td&gt;n&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;&amp;lt;leader&amp;gt;sH&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Search Highlight Groups&lt;/td&gt;
          &lt;td&gt;n&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;&amp;lt;leader&amp;gt;sk&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Key Maps&lt;/td&gt;
          &lt;td&gt;n&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;&amp;lt;leader&amp;gt;sM&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Man Pages&lt;/td&gt;
          &lt;td&gt;n&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;&amp;lt;leader&amp;gt;sm&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Jump to Mark&lt;/td&gt;
          &lt;td&gt;n&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;&amp;lt;leader&amp;gt;so&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Options&lt;/td&gt;
          &lt;td&gt;n&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;&amp;lt;leader&amp;gt;sR&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Resume&lt;/td&gt;
          &lt;td&gt;n&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;&amp;lt;leader&amp;gt;sw&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Word (root dir)&lt;/td&gt;
          &lt;td&gt;n&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;&amp;lt;leader&amp;gt;sW&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Word (cwd)&lt;/td&gt;
          &lt;td&gt;n&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;&amp;lt;leader&amp;gt;sw&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Selection (root dir)&lt;/td&gt;
          &lt;td&gt;v&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;&amp;lt;leader&amp;gt;sW&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Selection (cwd)&lt;/td&gt;
          &lt;td&gt;v&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;&amp;lt;leader&amp;gt;uC&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Colorscheme with preview&lt;/td&gt;
          &lt;td&gt;n&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;&amp;lt;leader&amp;gt;ss&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Goto Symbol&lt;/td&gt;
          &lt;td&gt;n&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;&amp;lt;leader&amp;gt;sS&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Goto Symbol (Workspace)&lt;/td&gt;
          &lt;td&gt;n&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id=&#34;todo-commentsnvim&#34;&gt;todo-comments.nvim
&lt;/h2&gt;&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Key&lt;/th&gt;
          &lt;th&gt;Description&lt;/th&gt;
          &lt;th&gt;Mode&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;]t&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Next todo comment&lt;/td&gt;
          &lt;td&gt;n&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;[t&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Previous todo comment&lt;/td&gt;
          &lt;td&gt;n&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;&amp;lt;leader&amp;gt;xt&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Todo (Trouble)&lt;/td&gt;
          &lt;td&gt;n&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;&amp;lt;leader&amp;gt;xT&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Todo/Fix/Fixme (Trouble)&lt;/td&gt;
          &lt;td&gt;n&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;&amp;lt;leader&amp;gt;st&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Todo&lt;/td&gt;
          &lt;td&gt;n&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;&amp;lt;leader&amp;gt;sT&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Todo/Fix/Fixme&lt;/td&gt;
          &lt;td&gt;n&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id=&#34;troublenvim&#34;&gt;trouble.nvim
&lt;/h2&gt;&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Key&lt;/th&gt;
          &lt;th&gt;Description&lt;/th&gt;
          &lt;th&gt;Mode&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;&amp;lt;leader&amp;gt;xx&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Document Diagnostics (Trouble)&lt;/td&gt;
          &lt;td&gt;n&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;&amp;lt;leader&amp;gt;xX&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Workspace Diagnostics (Trouble)&lt;/td&gt;
          &lt;td&gt;n&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;&amp;lt;leader&amp;gt;xL&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Location List (Trouble)&lt;/td&gt;
          &lt;td&gt;n&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;&amp;lt;leader&amp;gt;xQ&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Quickfix List (Trouble)&lt;/td&gt;
          &lt;td&gt;n&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;[q&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Previous trouble/quickfix item&lt;/td&gt;
          &lt;td&gt;n&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;]q&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Next trouble/quickfix item&lt;/td&gt;
          &lt;td&gt;n&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id=&#34;vim-illuminate&#34;&gt;vim-illuminate
&lt;/h2&gt;&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Key&lt;/th&gt;
          &lt;th&gt;Description&lt;/th&gt;
          &lt;th&gt;Mode&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;]]&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Next Reference&lt;/td&gt;
          &lt;td&gt;n&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;[[&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Prev Reference&lt;/td&gt;
          &lt;td&gt;n&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id=&#34;yankynvim&#34;&gt;yanky.nvim
&lt;/h2&gt;&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Key&lt;/th&gt;
          &lt;th&gt;Description&lt;/th&gt;
          &lt;th&gt;Mode&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;&amp;lt;leader&amp;gt;p&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Open Yank History&lt;/td&gt;
          &lt;td&gt;n&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;y&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Yank text&lt;/td&gt;
          &lt;td&gt;n, x&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;p&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Put yanked text after cursor&lt;/td&gt;
          &lt;td&gt;n, x&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;P&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Put yanked text before cursor&lt;/td&gt;
          &lt;td&gt;n, x&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;gp&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Put yanked text after selection&lt;/td&gt;
          &lt;td&gt;n, x&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;gP&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Put yanked text before selection&lt;/td&gt;
          &lt;td&gt;n, x&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;[y&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Cycle forward through yank history&lt;/td&gt;
          &lt;td&gt;n&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;]y&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Cycle backward through yank history&lt;/td&gt;
          &lt;td&gt;n&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;]p&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Put indented after cursor (linewise)&lt;/td&gt;
          &lt;td&gt;n&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;[p&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Put indented before cursor (linewise)&lt;/td&gt;
          &lt;td&gt;n&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;]P&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Put indented after cursor (linewise)&lt;/td&gt;
          &lt;td&gt;n&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;[P&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Put indented before cursor (linewise)&lt;/td&gt;
          &lt;td&gt;n&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;&amp;gt;p&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Put and indent right&lt;/td&gt;
          &lt;td&gt;n&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;&amp;lt;p&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Put and indent left&lt;/td&gt;
          &lt;td&gt;n&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;&amp;gt;P&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Put before and indent right&lt;/td&gt;
          &lt;td&gt;n&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;&amp;lt;P&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Put before and indent left&lt;/td&gt;
          &lt;td&gt;n&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;=p&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Put after applying a filter&lt;/td&gt;
          &lt;td&gt;n&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;=P&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Put before applying a filter&lt;/td&gt;
          &lt;td&gt;n&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id=&#34;nvim-dap&#34;&gt;nvim-dap
&lt;/h2&gt;&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Key&lt;/th&gt;
          &lt;th&gt;Description&lt;/th&gt;
          &lt;th&gt;Mode&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;&amp;lt;leader&amp;gt;dB&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Breakpoint Condition&lt;/td&gt;
          &lt;td&gt;n&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;&amp;lt;leader&amp;gt;db&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Toggle Breakpoint&lt;/td&gt;
          &lt;td&gt;n&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;&amp;lt;leader&amp;gt;dc&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Continue&lt;/td&gt;
          &lt;td&gt;n&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;&amp;lt;leader&amp;gt;dC&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Run to Cursor&lt;/td&gt;
          &lt;td&gt;n&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;&amp;lt;leader&amp;gt;dg&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Go to line (no execute)&lt;/td&gt;
          &lt;td&gt;n&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;&amp;lt;leader&amp;gt;di&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Step Into&lt;/td&gt;
          &lt;td&gt;n&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;&amp;lt;leader&amp;gt;dj&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Down&lt;/td&gt;
          &lt;td&gt;n&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;&amp;lt;leader&amp;gt;dk&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Up&lt;/td&gt;
          &lt;td&gt;n&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;&amp;lt;leader&amp;gt;dl&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Run Last&lt;/td&gt;
          &lt;td&gt;n&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;&amp;lt;leader&amp;gt;do&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Step Out&lt;/td&gt;
          &lt;td&gt;n&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;&amp;lt;leader&amp;gt;dO&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Step Over&lt;/td&gt;
          &lt;td&gt;n&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;&amp;lt;leader&amp;gt;dp&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Pause&lt;/td&gt;
          &lt;td&gt;n&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;&amp;lt;leader&amp;gt;dr&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Toggle REPL&lt;/td&gt;
          &lt;td&gt;n&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;&amp;lt;leader&amp;gt;ds&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Session&lt;/td&gt;
          &lt;td&gt;n&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;&amp;lt;leader&amp;gt;dt&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Terminate&lt;/td&gt;
          &lt;td&gt;n&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;&amp;lt;leader&amp;gt;dw&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Widgets&lt;/td&gt;
          &lt;td&gt;n&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id=&#34;nvim-dap-ui&#34;&gt;nvim-dap-ui
&lt;/h2&gt;&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Key&lt;/th&gt;
          &lt;th&gt;Description&lt;/th&gt;
          &lt;th&gt;Mode&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;&amp;lt;leader&amp;gt;du&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Dap UI&lt;/td&gt;
          &lt;td&gt;n&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;&amp;lt;leader&amp;gt;de&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Eval&lt;/td&gt;
          &lt;td&gt;n, v&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id=&#34;one-small-step-for-vimkind&#34;&gt;one-small-step-for-vimkind
&lt;/h2&gt;&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Key&lt;/th&gt;
          &lt;th&gt;Description&lt;/th&gt;
          &lt;th&gt;Mode&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;&amp;lt;leader&amp;gt;daL&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Adapter Lua Server&lt;/td&gt;
          &lt;td&gt;n&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;&amp;lt;leader&amp;gt;dal&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Adapter Lua&lt;/td&gt;
          &lt;td&gt;n&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id=&#34;flitnvim&#34;&gt;flit.nvim
&lt;/h2&gt;&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Key&lt;/th&gt;
          &lt;th&gt;Description&lt;/th&gt;
          &lt;th&gt;Mode&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;f&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;f&lt;/td&gt;
          &lt;td&gt;n, x, o&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;F&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;F&lt;/td&gt;
          &lt;td&gt;n, x, o&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;t&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;t&lt;/td&gt;
          &lt;td&gt;n, x, o&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;T&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;T&lt;/td&gt;
          &lt;td&gt;n, x, o&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id=&#34;leapnvim&#34;&gt;leap.nvim
&lt;/h2&gt;&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Key&lt;/th&gt;
          &lt;th&gt;Description&lt;/th&gt;
          &lt;th&gt;Mode&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;s&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Leap forward to&lt;/td&gt;
          &lt;td&gt;n, x, o&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;S&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Leap backward to&lt;/td&gt;
          &lt;td&gt;n, x, o&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;gs&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Leap from windows&lt;/td&gt;
          &lt;td&gt;n, x, o&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id=&#34;minifiles&#34;&gt;mini.files
&lt;/h2&gt;&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Key&lt;/th&gt;
          &lt;th&gt;Description&lt;/th&gt;
          &lt;th&gt;Mode&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;&amp;lt;leader&amp;gt;fm&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Open mini.files (directory of current file)&lt;/td&gt;
          &lt;td&gt;n&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;&amp;lt;leader&amp;gt;fM&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Open mini.files (cwd)&lt;/td&gt;
          &lt;td&gt;n&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id=&#34;nvim-dap-python&#34;&gt;nvim-dap-python
&lt;/h2&gt;&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Key&lt;/th&gt;
          &lt;th&gt;Description&lt;/th&gt;
          &lt;th&gt;Mode&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;&amp;lt;leader&amp;gt;dPt&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Debug Method&lt;/td&gt;
          &lt;td&gt;n&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;&amp;lt;leader&amp;gt;dPc&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Debug Class&lt;/td&gt;
          &lt;td&gt;n&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id=&#34;venv-selectornvim&#34;&gt;venv-selector.nvim
&lt;/h2&gt;&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Key&lt;/th&gt;
          &lt;th&gt;Description&lt;/th&gt;
          &lt;th&gt;Mode&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;&amp;lt;leader&amp;gt;cv&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Select VirtualEnv&lt;/td&gt;
          &lt;td&gt;n&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id=&#34;neotest&#34;&gt;neotest
&lt;/h2&gt;&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Key&lt;/th&gt;
          &lt;th&gt;Description&lt;/th&gt;
          &lt;th&gt;Mode&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;&amp;lt;leader&amp;gt;tt&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Run File&lt;/td&gt;
          &lt;td&gt;n&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;&amp;lt;leader&amp;gt;tT&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Run All Test Files&lt;/td&gt;
          &lt;td&gt;n&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;&amp;lt;leader&amp;gt;tr&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Run Nearest&lt;/td&gt;
          &lt;td&gt;n&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;&amp;lt;leader&amp;gt;ts&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Toggle Summary&lt;/td&gt;
          &lt;td&gt;n&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;&amp;lt;leader&amp;gt;to&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Show Output&lt;/td&gt;
          &lt;td&gt;n&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;&amp;lt;leader&amp;gt;tO&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Toggle Output Panel&lt;/td&gt;
          &lt;td&gt;n&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;&amp;lt;leader&amp;gt;tS&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Stop&lt;/td&gt;
          &lt;td&gt;n&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id=&#34;nvim-dap-1&#34;&gt;nvim-dap
&lt;/h2&gt;&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Key&lt;/th&gt;
          &lt;th&gt;Description&lt;/th&gt;
          &lt;th&gt;Mode&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;&amp;lt;leader&amp;gt;td&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Debug Nearest&lt;/td&gt;
          &lt;td&gt;n&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id=&#34;edgynvim&#34;&gt;edgy.nvim
&lt;/h2&gt;&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Key&lt;/th&gt;
          &lt;th&gt;Description&lt;/th&gt;
          &lt;th&gt;Mode&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;&amp;lt;leader&amp;gt;ue&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Edgy Toggle&lt;/td&gt;
          &lt;td&gt;n&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;&amp;lt;leader&amp;gt;uE&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Edgy Select Window&lt;/td&gt;
          &lt;td&gt;n&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id=&#34;projectnvim&#34;&gt;project.nvim
&lt;/h2&gt;&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Key&lt;/th&gt;
          &lt;th&gt;Description&lt;/th&gt;
          &lt;th&gt;Mode&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;&amp;lt;leader&amp;gt;fp&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Projects&lt;/td&gt;
          &lt;td&gt;n&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
</description>
        </item>
        <item>
        <title>制作一款伟大的动作类角色扮演游戏</title>
        <link>https://beargod.cool/posts/arpg/plan/outline/</link>
        <pubDate>Tue, 18 Jul 2023 15:09:01 +0800</pubDate>
        
        <guid>https://beargod.cool/posts/arpg/plan/outline/</guid>
        <description>&lt;p&gt;业内人士喜欢用《代号：XX》来给尚未完成的项目命名，我打算沿用这种惯例把我的游戏暂定为
《代号：ARPG》，简称ARPG。ARPG是一款动作类角色扮演游戏，玩家将扮演一个或多个传奇主角
在这块充满冒险的世界里旅行，完成拯救天下的任务。&lt;/p&gt;
&lt;p&gt;目前策划案并未稳定，任何设计都有可能发生改动。为了避免案子中出现大量“可能”、“也许”、
“计划”等代表功能会发生变化词汇，案子中会以一个明确的口吻来描述计划，但事实上是计划确
实有可能发生改动。&lt;/p&gt;
&lt;h2 id=&#34;上架平台&#34;&gt;上架平台
&lt;/h2&gt;&lt;p&gt;ARPG是一款单机买断制游戏，目标平台包括 Steam、TapTap、Apple Store、Google Play 以及御
三家主机平台。会按照以下优先级进行适配：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Steam&lt;/li&gt;
&lt;li&gt;Apple Store&lt;/li&gt;
&lt;li&gt;Google Play&lt;/li&gt;
&lt;li&gt;TapTap&lt;/li&gt;
&lt;li&gt;主机平台&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&#34;开发引擎&#34;&gt;开发引擎
&lt;/h2&gt;&lt;p&gt;使用 .Net 平台的 Godot Engine。&lt;/p&gt;
&lt;p&gt;我在 Unity 和 Godot 之间徘徊了很久，最终选择了 Godot。有以下理由：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;我曾在使用 Unity 的游戏公司工作，公司未购买正版授权，组织内所有的 Unity 账号均被封
禁，这影响了公司的项目开发，最终导致项目迁移到 Cocos，项目为了迁移引擎付出了巨大的代价。
所以最好不要抱着先暂时使用 Unity ，等后面项目赚钱了再购买授权的想法，因为也许到那时项目
既没有能力购买正版授权，又无法短时间完成迁移工作，这将对项目造成致命打击。如果不打算为
Unity 付费，一开始就不应该使用 Unity，当工作流程和 Unity 绑定后，迁移引擎常常很困难，付
出的工作量极有可能超过前期 Unity 带来的便利。&lt;/li&gt;
&lt;li&gt;我曾在 Unity Asset Store 里面购买了大量资源，但在我的 Unity 账号被封禁后，我无法使用
已经购买的资源，并且在和 Unity 多次交涉仍无法恢复使用。这个体验很糟糕，我非常心疼花几千
块钱购买的资源，很多资源仅仅是 &lt;a class=&#34;link&#34; href=&#34;https://space.bilibili.com/396395171?spm_id_from=333.337.0.0&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Up 主&lt;/a&gt;
推荐我就入手了，大部分资源我都还没有下载过，账号被封了之后资源也不能使用了，等于是这部分
钱白花了。以后我的个人项目不可能使用 Unity 来开发，因为记仇。&lt;/li&gt;
&lt;li&gt;使用 Unity 的最大好处是可以使用大量成熟的解决方案。这一点在我看来确实很有吸引力，但
在对比 Unity 和 Godot 的功能后，结合 ARPG 想要实现的功能，我认为大部分功能还是需要自己
造轮子，Unity 生态并不能对 Godot 形成碾压优势。&lt;/li&gt;
&lt;li&gt;Unity 是闭源商业引擎，Godot 是基于 MIT 协议的开源引擎，Godot 在引擎深度定制方面拥有
优势。ARPG 是一个系列游戏，游戏开发过程中需要定制引擎，使用 Godot 可以任意修改源代码而
不需要支付高昂的授权费用或者承担法律风险。&lt;/li&gt;
&lt;li&gt;使用 Godot 实际上是选择和开源引擎共同成长。使用 Godot 引擎过程中可以发现它的 bug 并反
馈意见，帮助其成为一个更易用的游戏引擎。我也能从 Godot 的源代码中学习到引擎的相关知识。
项目成功后我也会开源部分工具，以吸引其他开发者使用 Godot 引擎，最终为 Godot 社区做出贡献。&lt;/li&gt;
&lt;/ol&gt;
&lt;blockquote&gt;
&lt;p&gt;关于我的 Unity 账号被封禁这件事：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;我承认违反了 Unity 相关的授权规则，在盈利超过10万美元的公司里白嫖了 Unity，行为是错误
的，账号应该被封禁。&lt;/li&gt;
&lt;li&gt;我认为公司如果继续使用 Unity 应该购买正版授权。&lt;/li&gt;
&lt;li&gt;我有使用正版软件的习惯，比如我一直在使用拥有个人正版授权的 JetBrains 全家桶，我拒绝使
用盗版软件。&lt;/li&gt;
&lt;li&gt;即使用我有过错，也不影响我记仇。我总不能说 Unity 你封得好，就该把这种违规的人关起来，
不要让他们用我们的产品。&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;h2 id=&#34;建模软件&#34;&gt;建模软件
&lt;/h2&gt;&lt;p&gt;果然选择 Blender。&lt;/p&gt;
&lt;p&gt;Blender 是一款非常优秀的开源软件，功能强大、齐全，更新勤快，可以使用 Python 做为开发语言自
定义工作流。我知道很多游戏公司使用 Maya、3dMax 而不是 Blender，但对于前两者，我没有使用过，
Blender 已经足够强大方便了。&lt;/p&gt;
&lt;h2 id=&#34;回合制&#34;&gt;回合制
&lt;/h2&gt;</description>
        </item>
        <item>
        <title>Arch Linux 设置</title>
        <link>https://beargod.cool/posts/linux/arch_linux_setting/</link>
        <pubDate>Sun, 16 Jul 2023 11:03:33 +0800</pubDate>
        
        <guid>https://beargod.cool/posts/linux/arch_linux_setting/</guid>
        <description>&lt;p&gt;在安装好 Arch 后，需要进行一些设置，才能更方便地使用它。这里记录了对 Arch 的常用更改。&lt;/p&gt;
&lt;h2 id=&#34;用户设置&#34;&gt;用户设置
&lt;/h2&gt;&lt;h3 id=&#34;允许-root-远程登录&#34;&gt;允许 root 远程登录
&lt;/h3&gt;&lt;p&gt;修改配置文件&lt;code&gt;/etc/ssh/sshd_config&lt;/code&gt;，允许 root 远程登录。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;PermitRootLogin yes
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;开启 sshd 服务&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;systemctl &lt;span class=&#34;nb&#34;&gt;enable&lt;/span&gt; sshd.service
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;systemctl start sshd.service
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;创建新用户并赋予权限&#34;&gt;创建新用户，并赋予权限
&lt;/h3&gt;&lt;blockquote&gt;
&lt;p&gt;请使用新的用户名替换&lt;code&gt;$new_user&lt;/code&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;useradd &lt;span class=&#34;nv&#34;&gt;$new_user&lt;/span&gt; -G wheel -m
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;passwd &lt;span class=&#34;nv&#34;&gt;$new_user&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;修改&lt;code&gt;/etc/sudoers&lt;/code&gt;，将下面代码添加到文件末尾，使&lt;code&gt;wheel&lt;/code&gt;组的用户执行&lt;code&gt;sudo&lt;/code&gt;时不用输入密码。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;%wheel ALL=(ALL:ALL) NOPASSWD: ALL
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;设置-pacman&#34;&gt;设置 Pacman
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;Pacman&lt;/code&gt; 是 Arch 上一个方便易用程序包管理器，我们可以用它来下载、安装、更新和删除电脑上的软件。相当于 iOS 上
AppStore 或者安卓上的应用市场，但对于 Arch 而言，Pacman 还承担了对系统软件进行更新的重任。Arch 滚动更新的特
点很大一部分是由 Pacman 体现的。&lt;/p&gt;
&lt;h3 id=&#34;更改源&#34;&gt;更改源
&lt;/h3&gt;&lt;p&gt;由于国内特殊的网络环境，想要流畅地下载软件并不容易，因此我们应该将 Pacman 的软件仓库地址更改成国内便于访问的
地址，这里我们使用阿里云镜像地址。&lt;/p&gt;
&lt;p&gt;编辑 &lt;code&gt;/etc/pacman.d/mirrorlist&lt;/code&gt;，将如下代码添加到所有其它镜像服务器地址之前。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Server = https://mirrors.aliyun.com/archlinux/$repo/os/$arch
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;添加-multilib&#34;&gt;添加 &lt;code&gt;multilib&lt;/code&gt;
&lt;/h3&gt;&lt;p&gt;&lt;code&gt;multilib&lt;/code&gt; 包含了32位软件和库，可以用来在64位的机器上构建32位的应用。&lt;/p&gt;
&lt;p&gt;在 &lt;code&gt;/etc/pacman.conf&lt;/code&gt; 文件里把下面两行代码解除注释。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;[multilib]
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Include = /etc/pacman.d/mirrorlist
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;添加-archlinuxcn&#34;&gt;添加 &lt;code&gt;archlinuxcn&lt;/code&gt;
&lt;/h3&gt;&lt;p&gt;&lt;code&gt;archlinuxcn&lt;/code&gt; 是一个非官方的软件仓库，由中文社区维护。里面包含了软件、工具、字体等。&lt;/p&gt;
&lt;p&gt;将如下代码添加到 &lt;code&gt;/etc/pacman.conf&lt;/code&gt;：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;[archlinuxcn]
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Server = https://mirrors.aliyun.com/archlinuxcn/$arch
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;安装钥匙串 &lt;code&gt;archlinuxcn-keyring&lt;/code&gt;：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo pacman -S archlinuxcn-keyring
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;如果在安装 &lt;code&gt;archlinuxcn-keyring&lt;/code&gt; 过程中发生&lt;code&gt;error: archlinuxcn-keyring: signature from &amp;quot;Jiachen YANG (Arch Linux Packager Signing Key) &amp;lt;farseerfc@archlinux.org&amp;gt;&amp;quot; is marginal trust&lt;/code&gt;错误，需要对签名添加信任后再安装钥匙串:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo pacman-key --lsign-key &lt;span class=&#34;s2&#34;&gt;&amp;#34;farseerfc@archlinux.org&amp;#34;&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;amp;&amp;amp;&lt;/span&gt; sudo pacman -S archlinuxcn-keyring
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;安装-yay&#34;&gt;安装 &lt;code&gt;yay&lt;/code&gt;
&lt;/h3&gt;&lt;p&gt;&lt;code&gt;yay&lt;/code&gt; 是一个非常好用的软件，可以用来安装 Arch 用户仓库里的包。&lt;/p&gt;
&lt;p&gt;安装 &lt;strong&gt;yay&lt;/strong&gt;：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo pacman -Sy
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo pacman -S yay
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;安装字体&#34;&gt;安装字体
&lt;/h2&gt;&lt;p&gt;安装编程字体以及相关的字体图标&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo pacman -S ttf-jetbrains-mono-nerd noto-fonts
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;安装中文字体&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo pacman -S noto-fonts-cjk
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;安装编程语言&#34;&gt;安装编程语言
&lt;/h2&gt;&lt;h3 id=&#34;c&#34;&gt;C#
&lt;/h3&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo pacman -S dotnet-sdk aspnet-runtime
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;rust&#34;&gt;Rust
&lt;/h3&gt;&lt;p&gt;使用 pacman 来安装 &lt;code&gt;rustup&lt;/code&gt;。要记住，通用这种方式来安装 rustup，rustup 的自我更新不会生效，需要通过 pacman 来升级
rustup。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo pacman -S rustup
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;为了安装工具链 &lt;code&gt;toolchain&lt;/code&gt;，我们得告诉 rustup 使用哪种版本，可以在 &lt;code&gt;stable&lt;/code&gt; 和 &lt;code&gt;nightly&lt;/code&gt; 之间做出选择。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;rustup default stable
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;安装nvidia显卡驱动&#34;&gt;安装NVIDIA显卡驱动
&lt;/h2&gt;&lt;p&gt;如果使用的显卡是Turing或者更新的架构，使用以下命令安装驱动&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo pacman -S nvidia-open nvidia-settings lib32-nvidia-utils
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;老一点的显卡使用这个命令&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo pacman -S nvidia nvidia-settings lib32-nvidia-utils
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;为了避免官方驱动和开源驱动起冲突，我们需要编辑&lt;code&gt;/etc/mkinitcpio.conf&lt;/code&gt;，删除以&lt;code&gt;HOOKS&lt;/code&gt;开头的那一行里的&lt;code&gt;kms&lt;/code&gt;，然后运行命令&lt;code&gt;sudo mkinitcpio -P&lt;/code&gt;。
使用&lt;code&gt;nvidia-smi&lt;/code&gt;查看驱动是否安装成功。&lt;/p&gt;
&lt;h2 id=&#34;安装图形界面&#34;&gt;安装图形界面
&lt;/h2&gt;&lt;h3 id=&#34;hyprland&#34;&gt;Hyprland
&lt;/h3&gt;&lt;p&gt;如果我们使用的是NVIDIA显卡，我们应该先安装NVIDIA驱动。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo pacman -S hyprland
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;tofi-waybar-alacritty-hyprpaper&#34;&gt;&lt;code&gt;tofi&lt;/code&gt;, &lt;code&gt;waybar&lt;/code&gt;, &lt;code&gt;alacritty&lt;/code&gt;, &lt;code&gt;hyprpaper&lt;/code&gt;
&lt;/h3&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo pacman -S tofi waybar alacritty hyprpaper
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;安装命令行工具&#34;&gt;安装命令行工具
&lt;/h2&gt;&lt;h3 id=&#34;fd-fzf-ripgrep-zip-unzip-git-delt&#34;&gt;&lt;code&gt;fd&lt;/code&gt;, &lt;code&gt;fzf&lt;/code&gt;, &lt;code&gt;ripgrep&lt;/code&gt;, &lt;code&gt;zip&lt;/code&gt;, &lt;code&gt;unzip&lt;/code&gt;, &lt;code&gt;git-delt&lt;/code&gt;
&lt;/h3&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo pacman -S fd fzf ripgrep zip unzip git-delt
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;tldr&#34;&gt;&lt;code&gt;tldr&lt;/code&gt;
&lt;/h3&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo pacman -S tldr
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;tldr --update
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;starship-bat-btop-alacritty&#34;&gt;&lt;code&gt;starship&lt;/code&gt;, &lt;code&gt;bat&lt;/code&gt;, &lt;code&gt;btop&lt;/code&gt;, &lt;code&gt;alacritty&lt;/code&gt;
&lt;/h3&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo pacman -S starship bat btop alacritty
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;zsh&#34;&gt;&lt;code&gt;zsh&lt;/code&gt;
&lt;/h3&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo pacman -S zsh
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;chsh -s /bin/zsh
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;yazi&#34;&gt;&lt;code&gt;yazi&lt;/code&gt;
&lt;/h3&gt;&lt;p&gt;Yazi (means &amp;ldquo;duck&amp;rdquo;) is a terminal file manager written in Rust, based on non-blocking async I/O. It aims to provide an efficient, user-friendly, and customizable file management experience.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo pacman -S yazi ffmpegthumbnailer p7zip jq poppler fd ripgrep fzf zoxide imagemagick
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;安装中文输入法&#34;&gt;安装中文输入法
&lt;/h2&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo pacman -S fctix5-im fctix5-chinese-addons
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;剪贴板&#34;&gt;剪贴板
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;wl-clipboard&lt;/code&gt; 是 wayland 显示服务器下的剪贴板工具，安装即可正常使用。&lt;code&gt;cliphist&lt;/code&gt;是 wayland 下剪贴板历史管理工具。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo pacman -S wl-clipboard
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;声音&#34;&gt;声音
&lt;/h2&gt;&lt;p&gt;我的台式机安装完ArchLinux后没有声音声音,排查发现是因为默认声音输出设备没有设置正确&lt;/p&gt;
&lt;p&gt;使用&lt;code&gt;aplay -l&lt;/code&gt;查看所有的音频设备。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;12
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;13
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;14
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;15
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;16
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;17
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;18
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;19
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;20
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;21
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;22
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;23
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;24
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;25
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;26
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;27
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;28
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;29
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;30
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;31
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;32
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;33
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;34
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;35
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;36
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;37
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;38
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;39
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;40
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;41
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;❯ aplay -l
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;**** List of PLAYBACK Hardware Devices ****
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;card 0: NVidia &lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;HDA NVidia&lt;span class=&#34;o&#34;&gt;]&lt;/span&gt;, device 3: HDMI &lt;span class=&#34;m&#34;&gt;0&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;HDMI 0&lt;span class=&#34;o&#34;&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  Subdevices: 1/1
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  Subdevice &lt;span class=&#34;c1&#34;&gt;#0: subdevice #0&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;card 0: NVidia &lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;HDA NVidia&lt;span class=&#34;o&#34;&gt;]&lt;/span&gt;, device 7: HDMI &lt;span class=&#34;m&#34;&gt;1&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;HDMI 1&lt;span class=&#34;o&#34;&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  Subdevices: 1/1
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  Subdevice &lt;span class=&#34;c1&#34;&gt;#0: subdevice #0&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;card 0: NVidia &lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;HDA NVidia&lt;span class=&#34;o&#34;&gt;]&lt;/span&gt;, device 8: HDMI &lt;span class=&#34;m&#34;&gt;2&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;HDMI 2&lt;span class=&#34;o&#34;&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  Subdevices: 1/1
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  Subdevice &lt;span class=&#34;c1&#34;&gt;#0: subdevice #0&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;card 0: NVidia &lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;HDA NVidia&lt;span class=&#34;o&#34;&gt;]&lt;/span&gt;, device 9: HDMI &lt;span class=&#34;m&#34;&gt;3&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;HDMI 3&lt;span class=&#34;o&#34;&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  Subdevices: 1/1
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  Subdevice &lt;span class=&#34;c1&#34;&gt;#0: subdevice #0&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;card 1: PCH &lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;HDA Intel PCH&lt;span class=&#34;o&#34;&gt;]&lt;/span&gt;, device 3: HDMI &lt;span class=&#34;m&#34;&gt;0&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;M27P20&lt;span class=&#34;o&#34;&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  Subdevices: 1/1
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  Subdevice &lt;span class=&#34;c1&#34;&gt;#0: subdevice #0&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;card 1: PCH &lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;HDA Intel PCH&lt;span class=&#34;o&#34;&gt;]&lt;/span&gt;, device 7: HDMI &lt;span class=&#34;m&#34;&gt;1&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;OLEDG48P5&lt;span class=&#34;o&#34;&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  Subdevices: 1/1
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  Subdevice &lt;span class=&#34;c1&#34;&gt;#0: subdevice #0&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;card 1: PCH &lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;HDA Intel PCH&lt;span class=&#34;o&#34;&gt;]&lt;/span&gt;, device 8: HDMI &lt;span class=&#34;m&#34;&gt;2&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;HDMI 2&lt;span class=&#34;o&#34;&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  Subdevices: 1/1
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  Subdevice &lt;span class=&#34;c1&#34;&gt;#0: subdevice #0&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;card 1: PCH &lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;HDA Intel PCH&lt;span class=&#34;o&#34;&gt;]&lt;/span&gt;, device 9: HDMI &lt;span class=&#34;m&#34;&gt;3&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;HDMI 3&lt;span class=&#34;o&#34;&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  Subdevices: 1/1
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  Subdevice &lt;span class=&#34;c1&#34;&gt;#0: subdevice #0&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;card 2: Audio &lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;USB Audio&lt;span class=&#34;o&#34;&gt;]&lt;/span&gt;, device 0: USB Audio &lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;USB Audio&lt;span class=&#34;o&#34;&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  Subdevices: 1/1
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  Subdevice &lt;span class=&#34;c1&#34;&gt;#0: subdevice #0&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;card 2: Audio &lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;USB Audio&lt;span class=&#34;o&#34;&gt;]&lt;/span&gt;, device 1: USB Audio &lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;USB Audio &lt;span class=&#34;c1&#34;&gt;#1]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  Subdevices: 1/1
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  Subdevice &lt;span class=&#34;c1&#34;&gt;#0: subdevice #0&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;card 2: Audio &lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;USB Audio&lt;span class=&#34;o&#34;&gt;]&lt;/span&gt;, device 2: USB Audio &lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;USB Audio &lt;span class=&#34;c1&#34;&gt;#2]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  Subdevices: 1/1
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  Subdevice &lt;span class=&#34;c1&#34;&gt;#0: subdevice #0&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;card 2: Audio &lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;USB Audio&lt;span class=&#34;o&#34;&gt;]&lt;/span&gt;, device 3: USB Audio &lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;USB Audio &lt;span class=&#34;c1&#34;&gt;#3]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  Subdevices: 1/1
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  Subdevice &lt;span class=&#34;c1&#34;&gt;#0: subdevice #0&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;card 3: Audio_1 &lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;UGREEN CM564 USB Audio&lt;span class=&#34;o&#34;&gt;]&lt;/span&gt;, device 0: USB Audio &lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;USB Audio&lt;span class=&#34;o&#34;&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  Subdevices: 1/1
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  Subdevice &lt;span class=&#34;c1&#34;&gt;#0: subdevice #0&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;这里我打算使用&lt;em&gt;OLEDG48P5&lt;/em&gt;设备播放音频,这个设备是我的显示器上的音频输出。新建并编辑文件&lt;code&gt;.asoundrc&lt;/code&gt;，其中&lt;code&gt;1&lt;/code&gt;为上面输出的声卡ID，&lt;code&gt;7&lt;/code&gt;为设备ID。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;defaults.pcm.card 1;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;defaults.pcm.device 7;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;defaults.ctl.card 1;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;安装&lt;code&gt;alsa-utils&lt;/code&gt;，使用&lt;code&gt;alsamixer&lt;/code&gt;来设置声音。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo pacman -S alsa-utils
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;防火墙&#34;&gt;防火墙
&lt;/h2&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo pacman -S ufw
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo systemctl &lt;span class=&#34;nb&#34;&gt;enable&lt;/span&gt; ufw
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo systemctl start ufw
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo ufw &lt;span class=&#34;nb&#34;&gt;enable&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;kde-plasma&#34;&gt;KDE Plasma
&lt;/h2&gt;&lt;p&gt;最小安装，再按需要安装其它应用。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo pacman -S plasma-desktop
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;kwallet-pam&lt;/code&gt; 不用每次询问密码&lt;/li&gt;
&lt;li&gt;&lt;code&gt;kscreen&lt;/code&gt; 多屏幕&lt;/li&gt;
&lt;li&gt;&lt;code&gt;bluedevil&lt;/code&gt; 蓝牙&lt;/li&gt;
&lt;li&gt;&lt;code&gt;plasma-pa&lt;/code&gt; 声音&lt;/li&gt;
&lt;li&gt;&lt;code&gt;plasma-nm&lt;/code&gt; 网络&lt;/li&gt;
&lt;li&gt;&lt;code&gt;plasma-firewall&lt;/code&gt; 防火墙&lt;/li&gt;
&lt;li&gt;&lt;code&gt;plasma-systemmonitor&lt;/code&gt; 系统监控&lt;/li&gt;
&lt;li&gt;&lt;code&gt;kinfocenter&lt;/code&gt; 系统信息&lt;/li&gt;
&lt;li&gt;&lt;code&gt;dolphin&lt;/code&gt; 文件浏览器&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;使用下面的命令启动Plasma&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;dbus-run-session startplasma-wayland
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;登录管理器&#34;&gt;登录管理器
&lt;/h2&gt;&lt;p&gt;SDDM 是 KDE Plasma 推荐的登录管理器。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo pacman -S sddm
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo systemctl &lt;span class=&#34;nb&#34;&gt;enable&lt;/span&gt; sddm
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;安装kvm&#34;&gt;安装KVM
&lt;/h2&gt;&lt;p&gt;安装一堆软件&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo pacman -S qemu-full virt-manager virt-viewer dnsmasq bridge-utils libguestfs ebtables vde2 openbsd-netcat
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;启动 libvirtd 服务&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo systemctl &lt;span class=&#34;nb&#34;&gt;enable&lt;/span&gt; libvirtd.service
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo systemctl start libvirtd.service
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;编辑 &lt;code&gt;/etc/libvirt/libvirtd.conf&lt;/code&gt;，取消下面两行的注释&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;unix_sock_group = &amp;#34;libvirt&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;unix_sock_rw_perms = &amp;#34;0770&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;将当前用户加入到&lt;code&gt;libvirt&lt;/code&gt;用户组里&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo usermod -aG libvirt &lt;span class=&#34;nv&#34;&gt;$USER&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;代理&#34;&gt;代理
&lt;/h2&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo pacman -S daed
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo systemctl start daed
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo systemctl &lt;span class=&#34;nb&#34;&gt;enable&lt;/span&gt; daed
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;然后在浏览器中打开链接&lt;a class=&#34;link&#34; href=&#34;http://localhost:2023&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;&lt;/a&gt;&lt;/p&gt;
</description>
        </item>
        <item>
        <title>Arch Linux 安装</title>
        <link>https://beargod.cool/posts/linux/archlinux/</link>
        <pubDate>Sat, 08 Jul 2023 12:09:34 +0800</pubDate>
        
        <guid>https://beargod.cool/posts/linux/archlinux/</guid>
        <description>&lt;img src="https://beargod.cool/posts/linux/archlinux/opppyg2m.png" alt="Featured image of post Arch Linux 安装" /&gt;&lt;p&gt;Arch Linux 是一个独立的 Linux 发行版。特点是安装时几乎不带任何额外的包，非常纯净。并且它自带一个强大的包管理器&lt;em&gt;Pacman&lt;/em&gt;，使用起来相当方便。&lt;/p&gt;
&lt;h2 id=&#34;在阿里云上安装&#34;&gt;在阿里云上安装
&lt;/h2&gt;&lt;p&gt;购买了阿里云服务器后，由于它的镜像市场并不自带Arch Linux的发行版，所以我们必须基于其它发行版手动安装Arch Linux。&lt;/p&gt;
&lt;h3 id=&#34;重置服务器&#34;&gt;重置服务器
&lt;/h3&gt;&lt;p&gt;登录阿里云服务器，将操作系统重置成不带uefi的Ubuntu操作系统。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;需要关闭云服务器后才能看到重置服务器的选项&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;img src=&#34;https://beargod.cool/posts/linux/archlinux/img.png&#34;
	width=&#34;619&#34;
	height=&#34;739&#34;
	srcset=&#34;https://beargod.cool/posts/linux/archlinux/img_hu_83e419eeeb9d6b01.png 480w, https://beargod.cool/posts/linux/archlinux/img_hu_778576e283999f2a.png 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;更换操作系统&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;83&#34;
		data-flex-basis=&#34;201px&#34;
	
&gt;&lt;/p&gt;
&lt;h3 id=&#34;下载arch-linux镜像&#34;&gt;下载Arch Linux镜像
&lt;/h3&gt;&lt;p&gt;从阿里云镜像站里下载最新的Arch Linux镜像到根目录下。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;curl -o /arch.iso https://mirrors.aliyun.com/archlinux/iso/latest/archlinux-x86_64.iso
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;通过live-mode启动arch-linux&#34;&gt;通过Live Mode启动Arch Linux
&lt;/h3&gt;&lt;p&gt;Edit &lt;code&gt;/boot/grub/grub.cfg&lt;/code&gt; file, add code before first &lt;code&gt;menuentry&lt;/code&gt; occurs. User &lt;code&gt;lsblk&lt;/code&gt; to show your disk info.
编辑文件 &lt;code&gt;/boot/grub/grub.cfg&lt;/code&gt;，在&lt;code&gt;menuentry&lt;/code&gt;前添加如下代码。可以通过&lt;code&gt;lsblk&lt;/code&gt;查看磁盘信息。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;请将变量$iso_disk替换成iso镜像文件所在的磁盘位置&lt;/p&gt;
&lt;/blockquote&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;8
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;set&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;timeout&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;3&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;menuentry &lt;span class=&#34;s2&#34;&gt;&amp;#34;Archlinux Live (x86_64)&amp;#34;&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  insmod iso9660
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;nb&#34;&gt;set&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;isofile&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;/arch.iso
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  loopback loop0 &lt;span class=&#34;nv&#34;&gt;$isofile&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  linux &lt;span class=&#34;o&#34;&gt;(&lt;/span&gt;loop0&lt;span class=&#34;o&#34;&gt;)&lt;/span&gt;/arch/boot/x86_64/vmlinuz-linux &lt;span class=&#34;nv&#34;&gt;archisolabel&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;ARCH &lt;span class=&#34;nv&#34;&gt;img_dev&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;$iso_disk&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;img_loop&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;$isofile&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  initrd &lt;span class=&#34;o&#34;&gt;(&lt;/span&gt;loop0&lt;span class=&#34;o&#34;&gt;)&lt;/span&gt;/arch/boot/x86_64/initramfs-linux.img
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;o&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;通过VNC模式登录服务器，并执行重启命令。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;reboot
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;&lt;img src=&#34;https://beargod.cool/posts/linux/archlinux/img_1.png&#34;
	width=&#34;776&#34;
	height=&#34;764&#34;
	srcset=&#34;https://beargod.cool/posts/linux/archlinux/img_1_hu_44bede5dc1099e89.png 480w, https://beargod.cool/posts/linux/archlinux/img_1_hu_f6407e5f0a14fd88.png 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;通过VNC模式登录服务器&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;101&#34;
		data-flex-basis=&#34;243px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;现在我们进入了live CD模式，在进行接下来看步骤前我们需要移除Ubuntu的系统文件。&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://beargod.cool/posts/linux/archlinux/img_2.png&#34;
	width=&#34;1532&#34;
	height=&#34;503&#34;
	srcset=&#34;https://beargod.cool/posts/linux/archlinux/img_2_hu_e3743be1494bad7e.png 480w, https://beargod.cool/posts/linux/archlinux/img_2_hu_7f8ba403f39cb6ae.png 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;img_2.png&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;304&#34;
		data-flex-basis=&#34;730px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;可以使用&lt;code&gt;lsblk&lt;/code&gt;命令查看Ubuntu系统文件所挂载的位置&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://beargod.cool/posts/linux/archlinux/img_3.png&#34;
	width=&#34;699&#34;
	height=&#34;197&#34;
	srcset=&#34;https://beargod.cool/posts/linux/archlinux/img_3_hu_b53b20b074753ef1.png 480w, https://beargod.cool/posts/linux/archlinux/img_3_hu_3271f9d48bf7642f.png 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;img_3.png&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;354&#34;
		data-flex-basis=&#34;851px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;我们需要重新挂载系统磁盘，否则Ubuntu系统文件将无法删除。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;mount -o remount,rw /run/archiso/img_dev 
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;如果系统磁盘没有挂载，可以使用如下命令挂载它：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;mount -o rw &lt;span class=&#34;nv&#34;&gt;$iso_disk&lt;/span&gt; /run/archiso/img_dev
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;进入对应路径，删除所有原来的系统文件。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;cd&lt;/span&gt; /run/archiso/img_dev 
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;ls &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; grep -v arch.iso &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; xargs rm -rf
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;完成了以上步骤后，我们可以就可以跟着&lt;a class=&#34;link&#34; href=&#34;https://wiki.archlinux.org/title/Installation_guide&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;官方教程&lt;/a&gt;来安装Arch Linux了。&lt;/p&gt;
&lt;h3 id=&#34;安装&#34;&gt;安装
&lt;/h3&gt;&lt;p&gt;安装Arch Linux。&lt;/p&gt;
&lt;p&gt;在&lt;code&gt;/etc/pacman.d/mirrorlist&lt;/code&gt;文件顶部添加阿里云镜像站地址。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Server = http://mirrors.aliyun.com/archlinux/$repo/os/$arch
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;blockquote&gt;
&lt;p&gt;请将变量$iso_disk替换成iso镜像文件所在的磁盘位置&lt;/p&gt;
&lt;/blockquote&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;mount &lt;span class=&#34;nv&#34;&gt;$iso_disk&lt;/span&gt; /mnt
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;pacstrap -K /mnt base linux linux-firmware base-devel grub efibootmgr intel-ucode os-prober openssh git neovim networkmanager 
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;设置系统&#34;&gt;设置系统
&lt;/h3&gt;&lt;p&gt;生成磁盘挂载文件，系统启动时将会自动挂载磁盘。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;genfstab -U /mnt &amp;gt;&amp;gt; /mnt/etc/fstab
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Chroot&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;arch-chroot /mnt
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;设置时区&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;hwclock --systohc
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;编辑&lt;code&gt;/etc/locale.gen&lt;/code&gt;文件，取消这&lt;code&gt;en_US.UTF-8 UTF-8&lt;/code&gt;一行的注释，通过以下命令生成本地化相关内容：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;echo&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;en_US.UTF-8 UTF-8&amp;#34;&lt;/span&gt; &amp;gt;&amp;gt; /etc/locale.gen &lt;span class=&#34;o&#34;&gt;&amp;amp;&amp;amp;&lt;/span&gt; locale-gen
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;新建&lt;code&gt;locale.conf&lt;/code&gt;文件，写入配置以更改语言选项：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;echo&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;LANG=en_US.UTF-8&amp;#34;&lt;/span&gt; &amp;gt; /etc/locale.conf
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;打开&lt;code&gt;/etc/hosts&lt;/code&gt;文件，添加地址解析相关内容。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;cat &amp;gt;&amp;gt; /etc/hosts &lt;span class=&#34;s&#34;&gt;&amp;lt;&amp;lt; EOF
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s&#34;&gt;127.0.0.1       localhost
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s&#34;&gt;::1             localhost
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s&#34;&gt;EOF&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;新建&lt;code&gt;/etc/hostname&lt;/code&gt;，为主机起一个好名字：&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;请将$hostname替换成真实的主机名字&lt;/p&gt;
&lt;/blockquote&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;echo&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;$hostname&lt;/span&gt; &amp;gt; /etc/hostname
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;安装启动加载器&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;8
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;mkdir /boot/grub
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;grub-mkconfig &amp;gt; /boot/grub/grub.cfg
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# If install on aliyun server, use command below&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# grub-install --target=i386-pc /dev/vda&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# Otherwise, use this command&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# grub-install --target=x86_64-efi --efi-directory=/boot&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;重置root密码并添加第一个非root用户：&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;请将$new_user替换成真正的用户名&lt;/p&gt;
&lt;/blockquote&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;passwd
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;useradd &lt;span class=&#34;nv&#34;&gt;$new_user&lt;/span&gt; -G wheel -m
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;passwd &lt;span class=&#34;nv&#34;&gt;$new_user&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;启用sshd&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;systemctl &lt;span class=&#34;nb&#34;&gt;enable&lt;/span&gt; sshd
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;systemctl start sshd
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;启用NetworkManager&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;systemctl &lt;span class=&#34;nb&#34;&gt;enable&lt;/span&gt; NetworkManager
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;systemctl start NetworkManager
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;</description>
        </item>
        <item>
        <title>Blender Shortcuts</title>
        <link>https://beargod.cool/posts/blender/shortcuts/</link>
        <pubDate>Thu, 02 Feb 2023 09:50:50 +0800</pubDate>
        
        <guid>https://beargod.cool/posts/blender/shortcuts/</guid>
        <description>&lt;blockquote&gt;
&lt;p&gt;This post is inspired by &lt;a class=&#34;link&#34; href=&#34;https://docs.blender.org/manual/en/latest/interface/keymap/introduction.html&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;blender document&lt;/a&gt;
and &lt;a class=&#34;link&#34; href=&#34;https://www.bilibili.com/video/BV1zh411Y7LX/?spm_id_from=333.337.search-card.all.click&amp;amp;vd_source=03f79a84a743d1ededf072381a04c080&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;video from bilibili&lt;/a&gt;.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id=&#34;conventions&#34;&gt;Conventions
&lt;/h2&gt;&lt;p&gt;Hotkey letters in this post like they appear on keyboard; For example:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;G&lt;/code&gt; refers to the lowercase &lt;code&gt;g&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;Shift&lt;/code&gt;, &lt;code&gt;Ctrl&lt;/code&gt;, &lt;code&gt;Alt&lt;/code&gt; are specified as modifier keys&lt;/p&gt;
&lt;p&gt;&lt;code&gt;Ctrl-W&lt;/code&gt;, &lt;code&gt;Shift-Alt-A&lt;/code&gt;, &amp;hellip; indicates that these keys should be pressed simultaneously&lt;/p&gt;
&lt;p&gt;&lt;code&gt;Numpad0&lt;/code&gt; to &lt;code&gt;Numpad9&lt;/code&gt;, &lt;code&gt;Numpad+&lt;/code&gt; refer to the keys on the separate numeric keypad&lt;/p&gt;
&lt;p&gt;Other keys are referred to by their names, such as &lt;code&gt;Esc&lt;/code&gt;, &lt;code&gt;Tab&lt;/code&gt;, &lt;code&gt;F1&lt;/code&gt; to &lt;code&gt;F12&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;LMB&lt;/code&gt; is left mouse button&lt;/p&gt;
&lt;p&gt;&lt;code&gt;RMB&lt;/code&gt; is right mouse button&lt;/p&gt;
&lt;p&gt;&lt;code&gt;MMB&lt;/code&gt; is middle mouse button&lt;/p&gt;
&lt;p&gt;&lt;code&gt;Wheel&lt;/code&gt;, &lt;code&gt;WheelUp&lt;/code&gt; &amp;amp; &lt;code&gt;WheelDown&lt;/code&gt; means scrolling the wheel&lt;/p&gt;
&lt;p&gt;&lt;code&gt;Hovering&lt;/code&gt; means hovering (when the cursor is held over a button)&lt;/p&gt;
&lt;p&gt;Because &lt;em&gt;`&lt;/em&gt; can not show in code panel of markdown, it will be replaced by &lt;em&gt;~&lt;/em&gt;&lt;/p&gt;
&lt;h2 id=&#34;properties&#34;&gt;Properties
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Ctrl-C&lt;/code&gt; – Copy the (single) value of the button.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Ctrl-V&lt;/code&gt; – Paste the (single) value of the button.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Ctrl-Alt-C&lt;/code&gt; – Copy the entire vector or color of the field.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Ctrl-Alt-V&lt;/code&gt; – Paste the entire vector or color of the field.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;RMB&lt;/code&gt; – Open the context menu.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Backspace&lt;/code&gt; – Clear the value (sets to zero or clears a text field).&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Minus&lt;/code&gt; – Negate number values (multiply by -1.0).&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Ctrl-Wheel&lt;/code&gt; – Change the value incremental steps.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;For pop-up option menus buttons, this cycles the value.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Return&lt;/code&gt; – Activates menus or toggles the value.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Alt&lt;/code&gt; – Hold while editing values to apply the change to all selected items (objects, bones, sequence-strips).&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This can be used for number fields and toggles.&lt;/p&gt;
&lt;h2 id=&#34;animation&#34;&gt;Animation
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;I&lt;/code&gt; - Insert a keyframe&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Alt-I&lt;/code&gt; - Clear the keyframe&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Shift-Alt-I&lt;/code&gt; - Clear all keyframes&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Ctrl-D&lt;/code&gt; – Assign a driver.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Ctrl-Alt-D&lt;/code&gt; – Clear the driver.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;K&lt;/code&gt; – Add a Keying Set.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Alt-K&lt;/code&gt; – Clear the Keying Set.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;animation-1&#34;&gt;Animation
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Ctrl-C&lt;/code&gt; over any Operator Buttons copies their Python command into the clipboard.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This can be used in the Python Console or in the Text editor when writing scripts.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Shift-Ctrl-C&lt;/code&gt; over property buttons copies their data path for this property (also available from the context menu).&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Useful when writing drivers or scripts.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Shift-Ctrl-Alt-C&lt;/code&gt; over property buttons copies their full data path for the data-block and property.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Note that in most cases it is best to access values based on the context, instead of by name.&lt;/p&gt;
&lt;h2 id=&#34;dragging&#34;&gt;Dragging
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Ctrl&lt;/code&gt; – While dragging, snap to discrete steps.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Shift&lt;/code&gt; – Gives precision control over the value.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Shift-Ctrl&lt;/code&gt; – Precise snap will move the object with high precision along with the snapping constraint.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;text-editing&#34;&gt;Text Editing
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Home&lt;/code&gt; – Go to the start of the line.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;End&lt;/code&gt; – Go to the end of the line.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Left&lt;/code&gt; , &lt;code&gt;Right&lt;/code&gt; – Move the cursor a single character.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Ctrl-Left&lt;/code&gt;, &lt;code&gt;Ctrl-Right&lt;/code&gt; – Move the cursor an entire word.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Backspace&lt;/code&gt;, &lt;code&gt;Delete&lt;/code&gt; – Delete characters.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Ctrl-Backspace&lt;/code&gt;, &lt;code&gt;Ctrl-Delete&lt;/code&gt; – Delete words.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Shift&lt;/code&gt; – Select while holding the key and moving the cursor.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Ctrl-A&lt;/code&gt; – Select all text.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Ctrl-C&lt;/code&gt; – Copy the selected text.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Ctrl-X&lt;/code&gt; – Cut the selected text.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Ctrl-V&lt;/code&gt; – Paste text at the cursor position.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;confirm--cancel&#34;&gt;Confirm &amp;amp; Cancel
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Esc&lt;/code&gt;, &lt;code&gt;RMB&lt;/code&gt; – Cancel.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Return&lt;/code&gt;, &lt;code&gt;LMB&lt;/code&gt; – Confirm.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;global-keys&#34;&gt;Global Keys
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Ctrl-O&lt;/code&gt; - Open file&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Ctrl-S&lt;/code&gt; - Save file&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Ctrl-N&lt;/code&gt; - New file&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Ctrl-Z&lt;/code&gt; - Undo&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Shift-Ctrl-Z&lt;/code&gt; - Redo&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Ctrl-Q&lt;/code&gt; - Quit&lt;/li&gt;
&lt;li&gt;&lt;code&gt;F1&lt;/code&gt; - Help (context sensitive)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;F2&lt;/code&gt; - Rename active item&lt;/li&gt;
&lt;li&gt;&lt;code&gt;F3&lt;/code&gt; - Menu Search&lt;/li&gt;
&lt;li&gt;&lt;code&gt;F4&lt;/code&gt; - File context menu&lt;/li&gt;
&lt;li&gt;&lt;code&gt;F5&lt;/code&gt; - &lt;code&gt;F8&lt;/code&gt; - Reserved for user actions&lt;/li&gt;
&lt;li&gt;&lt;code&gt;F9&lt;/code&gt; - Adjust last operation&lt;/li&gt;
&lt;li&gt;&lt;code&gt;F10&lt;/code&gt; - Reserved for user actions&lt;/li&gt;
&lt;li&gt;&lt;code&gt;F11&lt;/code&gt; - Show render window&lt;/li&gt;
&lt;li&gt;&lt;code&gt;F12&lt;/code&gt; - Render the current frame&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Q&lt;/code&gt; - Quick access (favorites)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Ctrl-SpaceBar&lt;/code&gt; - Toggle maximize area&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Ctrl-Alt-SpaceBar&lt;/code&gt; - Toggle fullscreen area.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Ctrl-PageUp&lt;/code&gt; / &lt;code&gt;Ctrl-PageDown&lt;/code&gt; - Next/previous Workspace.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;SpaceBar&lt;/code&gt; - User configurable.
&lt;ul&gt;
&lt;li&gt;Play: Toggle animation playback.&lt;/li&gt;
&lt;li&gt;Tools: Tool switching with hotkeys (Shift-SpaceBar for play).&lt;/li&gt;
&lt;li&gt;Search: Search for actions (Shift-SpaceBar for play).&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Shift-Ctrl-SpaceBar&lt;/code&gt; -  Playback animation (reverse).&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;common-editing-keys&#34;&gt;Common Editing Keys
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;X&lt;/code&gt; - Deletes the selected item, requires a confirmation dialog.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Delete&lt;/code&gt; Deletes the selected item, does not require a confirmation dialog.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;common-editor-keys&#34;&gt;Common Editor Keys
&lt;/h2&gt;&lt;p&gt;These keys are shared across editors such as the 3D Viewport, UV and Graph editor.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;A&lt;/code&gt; - Select all.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;A-A&lt;/code&gt; - Cancel select all&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Alt-A&lt;/code&gt; - Select none.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Ctrl-I&lt;/code&gt; - Invert selection.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;H&lt;/code&gt; - Hide selection.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Alt-H&lt;/code&gt; - Reveal hidden items.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;T&lt;/code&gt; - Toggle Toolbar.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;N&lt;/code&gt; - Toggle Sidebar.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;3d-viewport-keys&#34;&gt;3D Viewport Keys
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Tab&lt;/code&gt; - Toggle edit mode.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Ctrl-Tab&lt;/code&gt; - Toggle pose mode for armatures, or show a mode switching pie menu for others.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;1&lt;/code&gt; - &lt;code&gt;3&lt;/code&gt; - In edit mode, switch between editing vertices (&lt;code&gt;1&lt;/code&gt;), edges (&lt;code&gt;2&lt;/code&gt;), or faces (&lt;code&gt;3&lt;/code&gt;).
Hold &lt;code&gt;Shift&lt;/code&gt; to toggle one of these without disabling the others.
Hold &lt;code&gt;Ctrl&lt;/code&gt; to alter how the selection is transformed from the old mode to the new
See mesh selection modes for details.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;AccentGrave&lt;/code&gt; Show 3d viewport navigation pie menu.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Ctrl-AccentGrave&lt;/code&gt; - Toggle gizmos.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Shift-AccentGrave&lt;/code&gt; - Start walk/fly navigation&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;common&#34;&gt;Common
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Numpad0&lt;/code&gt; - View camera&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Numpad5&lt;/code&gt; - View perspective/orthographic&lt;/li&gt;
&lt;li&gt;&lt;code&gt;N&lt;/code&gt; - Toggle show region ui&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Ctrl-Alt-0&lt;/code&gt; - Align camera to view&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Ctrl-Alt-Q&lt;/code&gt; - Toggle quad view&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Numpad7&lt;/code&gt; - Top view&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Numpad1&lt;/code&gt; - Front view&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Numpad3&lt;/code&gt; - Right view&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Ctrl-Numpad7&lt;/code&gt; - Left view&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Ctrl-Numpad1&lt;/code&gt; - Back view&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Ctrl-Numpad3&lt;/code&gt; - Left view&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Numpad9&lt;/code&gt; - View orbit 3.142 rad&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Numpad.&lt;/code&gt; - Frame selected&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Numpad/&lt;/code&gt; - Local view frame selected&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Ctrl-Numpad.&lt;/code&gt; - Frame selected in all region&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Home&lt;/code&gt; - Frame all&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Ctrl-Home&lt;/code&gt; - Frame all in all region&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;3d-view&#34;&gt;3D View
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;G&lt;/code&gt; - Move&lt;/li&gt;
&lt;li&gt;&lt;code&gt;R&lt;/code&gt; - Rotate&lt;/li&gt;
&lt;li&gt;&lt;code&gt;S&lt;/code&gt; - Scale&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Alt-G&lt;/code&gt; - Clear location&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Alt-R&lt;/code&gt; - Clear rotation&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Alt-S&lt;/code&gt; - Clear scale&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Ctrl-~&lt;/code&gt;  - Toggle show gizmo&lt;/li&gt;
&lt;li&gt;&lt;code&gt;W&lt;/code&gt; - Switch select tool&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Shift-TAB&lt;/code&gt; Toggle use snap&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Shift-S&lt;/code&gt; - Show snap pie&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Ctrl-M&lt;/code&gt; - Mirror&lt;/li&gt;
&lt;li&gt;&lt;code&gt;T&lt;/code&gt; - Toggle show region toolbar&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Alt-Shift-S&lt;/code&gt; - To sphere&lt;/li&gt;
&lt;li&gt;&lt;code&gt;B&lt;/code&gt; - Box select&lt;/li&gt;
&lt;li&gt;&lt;code&gt;F9&lt;/code&gt; - Redo last&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Ctrl-A&lt;/code&gt; - Skin resize&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;object-mode&#34;&gt;Object Mode
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;O&lt;/code&gt; - Toggle use proportional edit objects&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Ctrl-.&lt;/code&gt; - Toggle use transform data origin&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Ctrl-J&lt;/code&gt; - Join&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Shift-~&lt;/code&gt; - view navigation (walk/fly)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;H&lt;/code&gt; - Hide objects&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Shift-H&lt;/code&gt; - Hide unselected objects&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Alt-H&lt;/code&gt; - Show hidden objects&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Ctrl-P&lt;/code&gt; - Make parent&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Ctrl-L&lt;/code&gt; - Link/transfer data&lt;/li&gt;
&lt;li&gt;&lt;code&gt;M&lt;/code&gt; - Move to collection&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Ctrl-A&lt;/code&gt; - Apply&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Shift-G&lt;/code&gt; - Select grouped&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Shift-D&lt;/code&gt; - Duplicate objects&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Alt-D&lt;/code&gt; - Duplicate linked&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;mesh&#34;&gt;Mesh
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;P&lt;/code&gt; - Separate&lt;/li&gt;
&lt;li&gt;&lt;code&gt;L&lt;/code&gt; - Select linked&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Ctrl-L&lt;/code&gt; - Select linked all&lt;/li&gt;
&lt;li&gt;&lt;code&gt;E&lt;/code&gt; - Extrude and move on normals&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Alt-E&lt;/code&gt; - Extrude&lt;/li&gt;
&lt;li&gt;&lt;code&gt;M&lt;/code&gt; - Merge&lt;/li&gt;
&lt;li&gt;&lt;code&gt;I&lt;/code&gt; - Inset faces&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Ctrl-B&lt;/code&gt; - Bevel edges&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Ctrl-Shift-B&lt;/code&gt; - Bevel vertices&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Ctrl-R&lt;/code&gt; - Loop cut and slide&lt;/li&gt;
&lt;li&gt;&lt;code&gt;K&lt;/code&gt; - Knife topology tool&lt;/li&gt;
&lt;li&gt;&lt;code&gt;G-G&lt;/code&gt; - Slide&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Shift-V&lt;/code&gt; - Vertex slide&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Alt-S&lt;/code&gt; - Shrink/flatten&lt;/li&gt;
&lt;li&gt;&lt;code&gt;V&lt;/code&gt; - Rip&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Alt-V&lt;/code&gt; - Rip and fill&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Y&lt;/code&gt; - Split&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Alt-M&lt;/code&gt; - Show split menu&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Alt-D&lt;/code&gt; - Extend vertices&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Shift-E&lt;/code&gt; - Edge crease&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Ctrl-Numpad+&lt;/code&gt; - Select more&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Ctrl-Numpad-&lt;/code&gt; - Select less&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Alt-LMB&lt;/code&gt; - Loop select&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Ctrl-Alt-LMB&lt;/code&gt; - Edge ring select&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Ctrl-V&lt;/code&gt; - Show vertex menu&lt;/li&gt;
&lt;li&gt;&lt;code&gt;F&lt;/code&gt; - Show&lt;/li&gt;
&lt;li&gt;&lt;code&gt;J&lt;/code&gt; - Vertex connect path&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Shift-D&lt;/code&gt; - Add duplicate&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Ctrl-G&lt;/code&gt; - Vertex groups&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Ctrl-E&lt;/code&gt; - Show edge menu&lt;/li&gt;
&lt;li&gt;&lt;code&gt;U&lt;/code&gt; - UV mapping&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Ctrl-F&lt;/code&gt; - Show face menu&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Ctrl-T&lt;/code&gt; - Triangulate faces&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Alt-J&lt;/code&gt; - Tris to quads&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Alt-N&lt;/code&gt; - Show normals menu&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;screen&#34;&gt;Screen
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Shift-R&lt;/code&gt; - Repeat last&lt;/li&gt;
&lt;li&gt;&lt;code&gt;F12&lt;/code&gt; - Render&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>Blender 使用前配置</title>
        <link>https://beargod.cool/posts/blender/configs/</link>
        <pubDate>Thu, 02 Feb 2023 09:40:41 +0800</pubDate>
        
        <guid>https://beargod.cool/posts/blender/configs/</guid>
        <description>&lt;img src="https://beargod.cool/posts/blender/configs/cover.jpg" alt="Featured image of post Blender 使用前配置" /&gt;&lt;p&gt;为了更好地使用 Blender， 我们需要对它进行一些基础配置。但是记住，过多地对其个性化不利于对工作流进行迁移。&lt;/p&gt;
&lt;h2 id=&#34;在状态栏上显示更多的信息&#34;&gt;在状态栏上显示更多的信息
&lt;/h2&gt;&lt;p&gt;&lt;em&gt;Interface&lt;/em&gt; &amp;gt; &lt;em&gt;Editors&lt;/em&gt; &amp;gt; &lt;em&gt;Status Bar&lt;/em&gt; &amp;gt; 勾选 &lt;em&gt;Scene Statistics&lt;/em&gt;, &lt;em&gt;System Memory&lt;/em&gt;, &lt;em&gt;Video Memory&lt;/em&gt;&lt;/p&gt;
&lt;h2 id=&#34;围绕选择对象进行旋转&#34;&gt;围绕选择对象进行旋转
&lt;/h2&gt;&lt;p&gt;&lt;em&gt;Navigation&lt;/em&gt; &amp;gt; &lt;em&gt;Orbit &amp;amp; Pan&lt;/em&gt; &amp;gt; 勾选 &lt;em&gt;Orbit Around Selection&lt;/em&gt;&lt;/p&gt;
&lt;h2 id=&#34;自动深度&#34;&gt;自动深度
&lt;/h2&gt;&lt;p&gt;&lt;em&gt;Navigation&lt;/em&gt; &amp;gt; &lt;em&gt;Orbit &amp;amp; Pan&lt;/em&gt; &amp;gt; 勾选 &lt;em&gt;Auto Depth&lt;/em&gt;&lt;/p&gt;
&lt;h2 id=&#34;启用一些插件&#34;&gt;启用一些插件
&lt;/h2&gt;&lt;p&gt;Blender 自带了一些好用的插件，启用这些插件可以极大地提升我们的工作效率。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Node: Node Wrangler&lt;/li&gt;
&lt;li&gt;Rigging: Rigify&lt;/li&gt;
&lt;li&gt;Import-Export: Import Images as Planes&lt;/li&gt;
&lt;li&gt;Import-Export: Import AutoCAD DXF Format(.dxf)&lt;/li&gt;
&lt;li&gt;Import-Export: Export AutoCAD DXF Format(.dxf)&lt;/li&gt;
&lt;li&gt;Add Curve: Extra Objects&lt;/li&gt;
&lt;li&gt;Add Mesh: A.N.T.Landscape&lt;/li&gt;
&lt;li&gt;Add Mesh: BoltFactory&lt;/li&gt;
&lt;li&gt;Add Mesh: Extra Objects&lt;/li&gt;
&lt;li&gt;Interface: Copy Attributes Menu&lt;/li&gt;
&lt;li&gt;Interface: Modifier Tools&lt;/li&gt;
&lt;li&gt;Mesh: LoopTools&lt;/li&gt;
&lt;li&gt;Object: Bool Tool&lt;/li&gt;
&lt;li&gt;UV: Magic UV&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>Archives</title>
        <link>https://beargod.cool/archives/</link>
        <pubDate>Sun, 06 Mar 2022 00:00:00 +0000</pubDate>
        
        <guid>https://beargod.cool/archives/</guid>
        <description></description>
        </item>
        <item>
        <title>Search</title>
        <link>https://beargod.cool/search/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://beargod.cool/search/</guid>
        <description></description>
        </item>
        <item>
        <title>链接</title>
        <link>https://beargod.cool/%E9%93%BE%E6%8E%A5/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://beargod.cool/%E9%93%BE%E6%8E%A5/</guid>
        <description></description>
        </item>
        
    </channel>
</rss>
