mirror of
https://github.com/Dichgrem/Blog.git
synced 2025-07-31 17:09:30 -04:00
update:all
This commit is contained in:
@ -1,9 +1,9 @@
|
||||
+++
|
||||
title = "电子邮件是如何工作的:SPF/DKIM/DMARC"
|
||||
title = "网络艺术:电子邮件的工作原理"
|
||||
date = 2024-02-20
|
||||
|
||||
[taxonomies]
|
||||
tags = ["网络艺术"]
|
||||
tags = ["Network"]
|
||||
+++
|
||||
|
||||
前言 在互联网的日常使用中,电子邮件作为一项基础服务扮演着重要的角色。尽管在过去几十年里出现了各种新型的通讯方式,但电子邮件仍然保持着其不可替代的地位。了解电子邮件的工作原理,有助于更好地理解这一基础服务是如何运作的。
|
||||
@ -167,5 +167,111 @@ SPF 解决了接收方验证发件人域名 SPF 记录内 IP 地址从而验证
|
||||
当邮件服务器接收到邮件时,先验证 DKIM,SPF,然后再根据 DMARC 的配置检查。这样就能确保最终用户看到的 `From` 字段和 SPF、DKIM 认证的发件人一致了。
|
||||
|
||||
|
||||
## 四.其他协议
|
||||
|
||||
POP3、IMAP 和 SMTP 是用于电子邮件传输的常见协议和服务,这些协议共同构成了电子邮件系统的基础,允许用户接收、发送和管理电子邮件。
|
||||
|
||||
1. **POP3(邮局协议版本3)**:POP3 是一种用于接收电子邮件的协议。当你使用 POP3 时,电子邮件会从服务器下载到你的设备上,并且通常会从服务器上删除。这意味着邮件只存在于你的设备上,而不再保留在服务器上。POP3 通常用于单一设备或者设备上少量的邮件存储需求。
|
||||
2. **IMAP(互联网邮件访问协议)**:IMAP 也是一种用于接收电子邮件的协议,但它与 POP3 不同的是,IMAP 允许邮件保留在服务器上,并且同步到多个设备上。这意味着无论你使用哪个设备访问邮件,都能看到同样的邮件状态,包括已读、未读、已删除等。IMAP 适用于需要在多个设备之间同步邮件的情况,例如在手机、平板电脑和台式电脑之间。
|
||||
3. **SMTP(简单邮件传输协议)**:SMTP 是用于发送电子邮件的协议。当你发送一封电子邮件时,你的邮件客户端会使用 SMTP 协议将邮件发送到电子邮件服务器。SMTP 负责将邮件从发送者的电子邮件客户端传送到接收者的邮件服务器。SMTP 是一个推送协议,它将邮件推送给服务器,而不是拉取邮件。
|
||||
|
||||
这是每个协议的简要技术原理:
|
||||
|
||||
### **POP3(邮局协议版本3)**
|
||||
|
||||
- 客户端连接到邮件服务器上的 POP3 端口(通常是 110 端口)。
|
||||
- 客户端发送身份验证信息(通常是用户名和密码)以登录到邮箱。
|
||||
- 一旦登录成功,客户端可以请求收件箱中的邮件列表。
|
||||
- 客户端可以选择下载邮件到本地设备。
|
||||
- 下载的邮件通常从服务器上删除,但可以根据设置保留一份副本。
|
||||
- 客户端可以选择在下载后删除邮件,或者在稍后删除它们。
|
||||
|
||||
### **IMAP(互联网邮件访问协议)**:
|
||||
|
||||
- 客户端连接到邮件服务器上的 IMAP 端口(通常是 143 端口)。
|
||||
- 客户端发送身份验证信息(通常是用户名和密码)以登录到邮箱。
|
||||
- 一旦登录成功,客户端可以请求收件箱中的邮件列表,以及邮件的状态信息(如已读、未读、已删除等)。
|
||||
- 客户端可以选择下载完整的邮件或邮件的部分内容到本地设备,同时保留邮件在服务器上的副本。
|
||||
- 客户端对邮件的操作(如标记为已读、移动到文件夹等)将反映在服务器上,从而在其他设备上同步。
|
||||
|
||||
### **SMTP(简单邮件传输协议)**:
|
||||
|
||||
- 客户端连接到邮件服务器上的 SMTP 端口(通常是 25 端口)。
|
||||
- 客户端发送邮件内容和邮件头信息(如发件人、收件人、主题等)给服务器。
|
||||
- 服务器接受邮件,并将其转发到接收者的邮件服务器。
|
||||
- 接收者的邮件服务器接收邮件,并将其存储在相应的收件人邮箱中。
|
||||
- SMTP 是一个简单的推送协议,它负责将邮件从发送方传送到接收方,但不涉及接收方对邮件的确认或响应。
|
||||
|
||||
### **它们的区别和共同点:**
|
||||
|
||||
|
||||
**区别:**
|
||||
|
||||
**功能:**
|
||||
|
||||
- POP3 主要用于从邮件服务器上下载邮件到本地设备,通常会将邮件从服务器上删除。
|
||||
- IMAP 允许用户在多个设备之间同步邮件状态,并且邮件保留在服务器上。
|
||||
- SMTP 用于发送电子邮件。
|
||||
|
||||
**邮件管理:**
|
||||
|
||||
- POP3 在客户端下载邮件后通常会将邮件从服务器上删除,因此邮件只存在于本地设备上。
|
||||
- IMAP 允许邮件在多个设备之间同步,因为邮件保留在服务器上。
|
||||
- SMTP 不管理邮件存储,它只是负责将邮件从发送方传送到接收方。
|
||||
|
||||
**端口号:**
|
||||
|
||||
- POP3 默认端口号是 110。
|
||||
- IMAP 默认端口号是 143。
|
||||
- SMTP 默认端口号是 25。
|
||||
|
||||
**操作方式:**
|
||||
|
||||
- POP3 是拉取协议,客户端需要主动连接到服务器并拉取邮件。
|
||||
- IMAP 是双向同步协议,客户端与服务器之间进行交互,可以同步邮件状态。
|
||||
- SMTP 是推送协议,用于将邮件从发送方传送到接收方。
|
||||
|
||||
|
||||
**共同点:**
|
||||
|
||||
- **用途:**:它们都是用于电子邮件传输的标准协议。
|
||||
|
||||
- **与邮件服务器的通信:**:它们都涉及客户端与邮件服务器之间的通信。
|
||||
|
||||
- **身份验证:**:它们都需要用户身份验证来访问邮箱。
|
||||
|
||||
### **一次完整的邮件通信过程**
|
||||
|
||||
|
||||
**发送方(发件人):**
|
||||
|
||||
- **撰写邮件:** 发件人使用邮件客户端(如Outlook、Gmail等)撰写邮件,并填写收件人的电子邮件地址、主题和邮件内容。
|
||||
|
||||
- **SPF 检查:** 发送邮件服务器可能会执行 SPF(Sender Policy Framework)检查。它查询发件人域名的 DNS 记录,以确认发送邮件的服务器是否被授权发送邮件。
|
||||
|
||||
- **DKIM 签名:** 发送邮件服务器对邮件进行 DKIM(DomainKeys Identified Mail)签名。它使用发件人域名的私钥对邮件进行加密签名,以确保邮件内容在传输过程中不被篡改。
|
||||
|
||||
- **SMTP 发送邮件:** 发送邮件服务器使用 SMTP(简单邮件传输协议)将邮件发送到接收邮件服务器。SMTP 服务器与接收邮件服务器之间建立连接,并通过指定的端口(通常是 25 端口)传输邮件。
|
||||
|
||||
**接收方(收件人):**
|
||||
|
||||
- **SMTP 接收邮件:** 接收邮件服务器接收到发送方发送的邮件。SMTP 协议负责将邮件从发送方传输到接收方。
|
||||
|
||||
- **SPF 验证:** 接收邮件服务器执行 SPF 验证,检查发送方服务器的 IP 地址是否在发件人域名的 SPF 记录中被授权发送邮件。
|
||||
|
||||
- **DKIM 验证:** 接收邮件服务器对收到的邮件执行 DKIM 验证。它使用发件人域名的公钥来验证邮件的 DKIM 签名,以确保邮件内容的完整性和真实性。
|
||||
|
||||
- **DMARC 检查:** 如果接收邮件服务器支持 DMARC(Domain-based Message Authentication, Reporting, and Conformance),它会执行 DMARC 检查。DMARC 结合了 SPF 和 DKIM,允许域名所有者指定如何处理未通过验证的邮件。
|
||||
|
||||
- **投递邮件到邮箱:** 如果邮件通过了所有的验证步骤,并且没有被识别为垃圾邮件,接收邮件服务器将把邮件投递到收件人的邮箱中。
|
||||
|
||||
**邮件获取(收件人):**
|
||||
|
||||
- **POP3 获取邮件(可选):** 收件人可以使用 POP3(邮局协议版本3)从邮件服务器上下载邮件到本地设备。POP3 客户端通过指定的端口(通常是 110 端口)连接到邮件服务器,并下载邮件到本地设备上。根据设置,邮件可能会从服务器上删除。
|
||||
|
||||
- **IMAP 获取邮件(可选):** 收件人可以使用 IMAP(互联网邮件访问协议)从邮件服务器上获取邮件。IMAP 允许邮件保留在服务器上,并且在多个设备之间同步邮件状态。IMAP 客户端通过指定的端口(通常是 143 端口)连接到邮件服务器,并获取邮件列表和邮件内容。
|
||||
|
||||
---
|
||||
**Done.**
|
||||
|
||||
|
||||
|
@ -1,114 +0,0 @@
|
||||
+++
|
||||
title = "电子邮件是如何工作的:POP3/IMAP/SMTP"
|
||||
date = 2024-02-21
|
||||
|
||||
[taxonomies]
|
||||
tags = ["网络艺术"]
|
||||
+++
|
||||
|
||||
前言 POP3、IMAP 和 SMTP 是用于电子邮件传输的常见协议和服务,这些协议共同构成了电子邮件系统的基础,允许用户接收、发送和管理电子邮件。
|
||||
|
||||
<!-- more -->
|
||||
|
||||
1. **POP3(邮局协议版本3)**:POP3 是一种用于接收电子邮件的协议。当你使用 POP3 时,电子邮件会从服务器下载到你的设备上,并且通常会从服务器上删除。这意味着邮件只存在于你的设备上,而不再保留在服务器上。POP3 通常用于单一设备或者设备上少量的邮件存储需求。
|
||||
2. **IMAP(互联网邮件访问协议)**:IMAP 也是一种用于接收电子邮件的协议,但它与 POP3 不同的是,IMAP 允许邮件保留在服务器上,并且同步到多个设备上。这意味着无论你使用哪个设备访问邮件,都能看到同样的邮件状态,包括已读、未读、已删除等。IMAP 适用于需要在多个设备之间同步邮件的情况,例如在手机、平板电脑和台式电脑之间。
|
||||
3. **SMTP(简单邮件传输协议)**:SMTP 是用于发送电子邮件的协议。当你发送一封电子邮件时,你的邮件客户端会使用 SMTP 协议将邮件发送到电子邮件服务器。SMTP 负责将邮件从发送者的电子邮件客户端传送到接收者的邮件服务器。SMTP 是一个推送协议,它将邮件推送给服务器,而不是拉取邮件。
|
||||
|
||||
这是每个协议的简要技术原理:
|
||||
|
||||
## **POP3(邮局协议版本3)**
|
||||
|
||||
- 客户端连接到邮件服务器上的 POP3 端口(通常是 110 端口)。
|
||||
- 客户端发送身份验证信息(通常是用户名和密码)以登录到邮箱。
|
||||
- 一旦登录成功,客户端可以请求收件箱中的邮件列表。
|
||||
- 客户端可以选择下载邮件到本地设备。
|
||||
- 下载的邮件通常从服务器上删除,但可以根据设置保留一份副本。
|
||||
- 客户端可以选择在下载后删除邮件,或者在稍后删除它们。
|
||||
|
||||
## **IMAP(互联网邮件访问协议)**:
|
||||
|
||||
- 客户端连接到邮件服务器上的 IMAP 端口(通常是 143 端口)。
|
||||
- 客户端发送身份验证信息(通常是用户名和密码)以登录到邮箱。
|
||||
- 一旦登录成功,客户端可以请求收件箱中的邮件列表,以及邮件的状态信息(如已读、未读、已删除等)。
|
||||
- 客户端可以选择下载完整的邮件或邮件的部分内容到本地设备,同时保留邮件在服务器上的副本。
|
||||
- 客户端对邮件的操作(如标记为已读、移动到文件夹等)将反映在服务器上,从而在其他设备上同步。
|
||||
|
||||
## **SMTP(简单邮件传输协议)**:
|
||||
|
||||
- 客户端连接到邮件服务器上的 SMTP 端口(通常是 25 端口)。
|
||||
- 客户端发送邮件内容和邮件头信息(如发件人、收件人、主题等)给服务器。
|
||||
- 服务器接受邮件,并将其转发到接收者的邮件服务器。
|
||||
- 接收者的邮件服务器接收邮件,并将其存储在相应的收件人邮箱中。
|
||||
- SMTP 是一个简单的推送协议,它负责将邮件从发送方传送到接收方,但不涉及接收方对邮件的确认或响应。
|
||||
|
||||
## **它们的区别和共同点:**
|
||||
|
||||
|
||||
**区别:**
|
||||
|
||||
**功能:**
|
||||
|
||||
- POP3 主要用于从邮件服务器上下载邮件到本地设备,通常会将邮件从服务器上删除。
|
||||
- IMAP 允许用户在多个设备之间同步邮件状态,并且邮件保留在服务器上。
|
||||
- SMTP 用于发送电子邮件。
|
||||
|
||||
**邮件管理:**
|
||||
|
||||
- POP3 在客户端下载邮件后通常会将邮件从服务器上删除,因此邮件只存在于本地设备上。
|
||||
- IMAP 允许邮件在多个设备之间同步,因为邮件保留在服务器上。
|
||||
- SMTP 不管理邮件存储,它只是负责将邮件从发送方传送到接收方。
|
||||
|
||||
**端口号:**
|
||||
|
||||
- POP3 默认端口号是 110。
|
||||
- IMAP 默认端口号是 143。
|
||||
- SMTP 默认端口号是 25。
|
||||
|
||||
**操作方式:**
|
||||
|
||||
- POP3 是拉取协议,客户端需要主动连接到服务器并拉取邮件。
|
||||
- IMAP 是双向同步协议,客户端与服务器之间进行交互,可以同步邮件状态。
|
||||
- SMTP 是推送协议,用于将邮件从发送方传送到接收方。
|
||||
|
||||
|
||||
**共同点:**
|
||||
|
||||
- **用途:**:它们都是用于电子邮件传输的标准协议。
|
||||
|
||||
- **与邮件服务器的通信:**:它们都涉及客户端与邮件服务器之间的通信。
|
||||
|
||||
- **身份验证:**:它们都需要用户身份验证来访问邮箱。
|
||||
|
||||
## **一次完整的邮件通信过程**
|
||||
|
||||
|
||||
**发送方(发件人):**
|
||||
|
||||
- **撰写邮件:** 发件人使用邮件客户端(如Outlook、Gmail等)撰写邮件,并填写收件人的电子邮件地址、主题和邮件内容。
|
||||
|
||||
- **SPF 检查:** 发送邮件服务器可能会执行 SPF(Sender Policy Framework)检查。它查询发件人域名的 DNS 记录,以确认发送邮件的服务器是否被授权发送邮件。
|
||||
|
||||
- **DKIM 签名:** 发送邮件服务器对邮件进行 DKIM(DomainKeys Identified Mail)签名。它使用发件人域名的私钥对邮件进行加密签名,以确保邮件内容在传输过程中不被篡改。
|
||||
|
||||
- **SMTP 发送邮件:** 发送邮件服务器使用 SMTP(简单邮件传输协议)将邮件发送到接收邮件服务器。SMTP 服务器与接收邮件服务器之间建立连接,并通过指定的端口(通常是 25 端口)传输邮件。
|
||||
|
||||
**接收方(收件人):**
|
||||
|
||||
- **SMTP 接收邮件:** 接收邮件服务器接收到发送方发送的邮件。SMTP 协议负责将邮件从发送方传输到接收方。
|
||||
|
||||
- **SPF 验证:** 接收邮件服务器执行 SPF 验证,检查发送方服务器的 IP 地址是否在发件人域名的 SPF 记录中被授权发送邮件。
|
||||
|
||||
- **DKIM 验证:** 接收邮件服务器对收到的邮件执行 DKIM 验证。它使用发件人域名的公钥来验证邮件的 DKIM 签名,以确保邮件内容的完整性和真实性。
|
||||
|
||||
- **DMARC 检查:** 如果接收邮件服务器支持 DMARC(Domain-based Message Authentication, Reporting, and Conformance),它会执行 DMARC 检查。DMARC 结合了 SPF 和 DKIM,允许域名所有者指定如何处理未通过验证的邮件。
|
||||
|
||||
- **投递邮件到邮箱:** 如果邮件通过了所有的验证步骤,并且没有被识别为垃圾邮件,接收邮件服务器将把邮件投递到收件人的邮箱中。
|
||||
|
||||
**邮件获取(收件人):**
|
||||
|
||||
- **POP3 获取邮件(可选):** 收件人可以使用 POP3(邮局协议版本3)从邮件服务器上下载邮件到本地设备。POP3 客户端通过指定的端口(通常是 110 端口)连接到邮件服务器,并下载邮件到本地设备上。根据设置,邮件可能会从服务器上删除。
|
||||
|
||||
- **IMAP 获取邮件(可选):** 收件人可以使用 IMAP(互联网邮件访问协议)从邮件服务器上获取邮件。IMAP 允许邮件保留在服务器上,并且在多个设备之间同步邮件状态。IMAP 客户端通过指定的端口(通常是 143 端口)连接到邮件服务器,并获取邮件列表和邮件内容。
|
||||
|
||||
这是一个完整的双向邮件通信过程,包括了 SPF、DKIM、DMARC,以及 POP3、IMAP、SMTP 协议的作用。这些技术和协议共同构成了电子邮件系统的基础架构,保障了邮件的传输安全性和可靠性。
|
||||
|
@ -1,9 +1,9 @@
|
||||
+++
|
||||
title = "电子邮件是如何工作的:自建域名邮箱"
|
||||
title = "网络艺术:自建域名邮箱"
|
||||
date = 2024-02-22
|
||||
|
||||
[taxonomies]
|
||||
tags = ["网络艺术"]
|
||||
tags = ["Network"]
|
||||
+++
|
||||
|
||||
前言 poste.io 邮件服务基于 Docker 搭建,用的是 Haraka + Dovecot + SQLite 邮件系统,占用资源较少,安装简单,适合个人使用。
|
||||
@ -97,4 +97,4 @@ services:
|
||||
| POP3 | mail.your-domain.com, pop.your-domain.com | 995, 110 | STARTTLS |
|
||||
|
||||
---
|
||||
Done.
|
||||
Done.
|
||||
|
@ -1,9 +1,9 @@
|
||||
+++
|
||||
title = "Network的艺术:国内至国际骨干ISP线路整理"
|
||||
title = "网络艺术:国内/国际骨干ISP线路整理"
|
||||
date = 2024-02-10
|
||||
|
||||
[taxonomies]
|
||||
tags = ["网络艺术"]
|
||||
tags = ["Network"]
|
||||
+++
|
||||
|
||||
前言 本文主要探讨的是IPv4网络,国际出口线路的质量分析以及各大ISP的介绍。
|
||||
@ -424,4 +424,4 @@ Telia在美国、欧洲都有和电信163互联,总体来说是很中规中矩
|
||||
需要注意的是,欧洲/北美的网络情况跟亚太差异比较大。欧美的中小ISP大部分依靠的是IX互联或者机房托管的混合网络接入。虽然商业网络的价格比亚洲地区便宜,但至少对中国用户来说,很少再回程路由中遇见欧美的Regional T1或者高质量T1 ISP。
|
||||
|
||||
---
|
||||
**Done.**
|
||||
**Done.**
|
||||
|
@ -1,9 +1,9 @@
|
||||
+++
|
||||
title = "Network的艺术:CDN技术与应用"
|
||||
title = "网络艺术:CDN技术与应用"
|
||||
date = 2024-02-16
|
||||
|
||||
[taxonomies]
|
||||
tags = ["网络艺术"]
|
||||
tags = ["Network"]
|
||||
+++
|
||||
|
||||
前言 内容分发网络(CDN)是一组分布在不同地理位置的服务器网络,使用户能够就近获取内容,从而降低延迟并缓解源站压力.
|
||||
@ -252,4 +252,4 @@ Akaima
|
||||
https://techdocs.akamai.com/origin-ip-acl/docs/update-your-origin-server
|
||||
```
|
||||
---
|
||||
**Done.**
|
||||
**Done.**
|
||||
|
@ -1,9 +1,9 @@
|
||||
+++
|
||||
title = "Network的艺术:下载技术的历史"
|
||||
title = "网络艺术:下载技术的历史"
|
||||
date = 2024-02-09
|
||||
|
||||
[taxonomies]
|
||||
tags = ["网络艺术"]
|
||||
tags = ["Network"]
|
||||
+++
|
||||
|
||||
前言 下载,就是将我们所需要的文件数据,通过网络从拥有该文件资源的计算机上传输过来并保存到我们的计算机上,供我们使用。本系列将详细讲述各种常见网络下载技术的原理,包括HTTP,FTP,BT等等。
|
||||
|
@ -1,9 +1,9 @@
|
||||
+++
|
||||
title = "乱七八糟:FRP使用指南"
|
||||
title = "网络艺术:FRP使用指南"
|
||||
date = 2025-03-01
|
||||
|
||||
[taxonomies]
|
||||
tags = ["乱七八糟"]
|
||||
tags = ["Network"]
|
||||
+++
|
||||
|
||||
前言 FRP (Fast Reverse Proxy) 是一个用Go语言开发的高性能反向代理应用,可以帮助您轻松地进行内网穿透,对外提供服务.
|
||||
@ -460,4 +460,4 @@ max_ports_per_client = 10
|
||||
- [FRP常见问题解答](https://github.com/fatedier/frp/issues)
|
||||
|
||||
---
|
||||
**Done.**
|
||||
**Done.**
|
@ -1,9 +1,9 @@
|
||||
+++
|
||||
title = "Network的艺术:Docker建站与反向代理"
|
||||
title = "网络艺术:Docker建站与反向代理"
|
||||
date = 2024-07-14
|
||||
|
||||
[taxonomies]
|
||||
tags = ["网络艺术"]
|
||||
tags = ["Network"]
|
||||
+++
|
||||
|
||||
前言 Docker的出现极大简化了建站流程,较过去的LAMP方式优雅了许多,配合Nginx反向代理可以快速上线HTTPS站点。
|
||||
@ -379,4 +379,4 @@ miniflux.dich.bid {
|
||||
- 每增加一个服务需要在nginx中更新volume;
|
||||
|
||||
---
|
||||
**Done.**
|
||||
**Done.**
|
||||
|
@ -1,9 +1,9 @@
|
||||
+++
|
||||
title = "Network的艺术:SSL/TLS证书"
|
||||
title = "网络艺术:SSL/TLS证书"
|
||||
date = 2024-02-15
|
||||
|
||||
[taxonomies]
|
||||
tags = ["网络艺术"]
|
||||
tags = ["Network"]
|
||||
+++
|
||||
|
||||
前言 什么是SSL/TLS证书?它有什么作用?如何部署?
|
||||
@ -100,4 +100,4 @@ Let's Encrypt)等颁布,CA证书的层级结构如下:
|
||||
|
||||
|
||||
---
|
||||
**Done.**
|
||||
**Done.**
|
||||
|
@ -1,9 +1,9 @@
|
||||
+++
|
||||
title = "Network的艺术:家庭组网方案与设备选购"
|
||||
title = "网络艺术:家庭组网方案与设备选购"
|
||||
date = 2025-01-21
|
||||
|
||||
[taxonomies]
|
||||
tags = ["网络艺术"]
|
||||
tags = ["Network"]
|
||||
+++
|
||||
|
||||
前言 本文介绍一些家庭组网方案和家庭网络升级方案。
|
||||
|
@ -1,5 +1,5 @@
|
||||
+++
|
||||
title = "搭建个人信息流:RSS阅读指南"
|
||||
title = "乱七八糟:RSS阅读指南"
|
||||
date = 2024-03-05
|
||||
|
||||
[taxonomies]
|
||||
|
@ -10,10 +10,11 @@ tags = ["乱七八糟"]
|
||||
|
||||
<!-- more -->
|
||||
## Lazy!
|
||||
> Vim 是从早期的 vi 编辑器发展而来的增强版,其名称代表“Vi IMproved”。由荷兰程序员 Bram Moolenaar 于 1991 年首次发布。Vim 是开源软件,支持多种操作系统,包括 Unix、Linux、Windows 和 macOS 等。
|
||||
|
||||
> LazyVim 是一个基于 Neovim 的现代化配置框架,旨在简化 Neovim 的配置过程。它通过集成的 lazy.nvim 插件管理器,提供了一种易于定制和扩展配置的方式,结合了从头开始配置的灵活性和预配置设置的便利性 。
|
||||
|
||||
> LazyVim 是在Neovim的基础上进行配置,Neovim又继承了vim的操作模式,对vim不熟悉的同学可以看[这里](https://vimsheet.com/)。
|
||||
> LazyVim 是在Neovim的基础上进行配置,Neovim又继承了vim的操作模式,对vim不熟悉的同学可以看[这里](https://vimsheet.com/)或者本文末尾的 Vim 速查表.
|
||||
|
||||
## 安装
|
||||
|
||||
@ -248,15 +249,15 @@ return {
|
||||
|
||||
## tips
|
||||
|
||||
- lazyvim中的行号是非自然序的,这是为了方便光标移动而设置的:你可以在正常模式中通过10k快速移动光标到10行前,10j,10h,10l同理。
|
||||
- lazyvim的字体是和终端相同的,不同单独设置;
|
||||
- lazyvim中在侧边栏选择文件按d删除,按y复制,按p粘贴,按a创建,按r重命名;
|
||||
- gcc:注释当前行;
|
||||
- g+ctrl+g:显示信息;
|
||||
- alt+h:显示隐藏文件;
|
||||
- space+c+f:将当前代码格式化;
|
||||
- 设置文件编码``:set fileencoding?``
|
||||
- 设置换行符``:set fileformat=unix``
|
||||
- lazyvim的字体是和终端相同的,不同单独设置;
|
||||
- lazyvim中在侧边栏选择文件按d删除,按y复制,按p粘贴,按a创建,按r重命名;
|
||||
- lazyvim中的行号是非自然序的,这是为了方便光标移动而设置的:你可以在正常模式中通过10k快速移动光标到10行前,10j,10h,10l同理。
|
||||
- LSP快捷操作:
|
||||
|
||||
| 快捷键 | 功能 |
|
||||
@ -295,6 +296,162 @@ return {
|
||||
- Git支持
|
||||
- 主题与显示效果
|
||||
|
||||
|
||||
## 一份优秀的 Vim 速查表
|
||||
|
||||
> 翻译自``https://vimsheet.com/``
|
||||
|
||||
我整理了一份我每天使用的 Vim 基本命令列表,并提供了一些配置建议,使 Vim 更加实用。因为没有配置的 Vim 使用起来会比较痛苦。
|
||||
|
||||
## 基础命令
|
||||
|
||||
### 光标移动(普通模式/可视模式)
|
||||
|
||||
* `h` `j` `k` `l`:左、下、上、右移动
|
||||
* `w` / `b`:下一个/上一个单词
|
||||
* `W` / `B`:下一个/上一个以空格分隔的单词
|
||||
* `e` / `ge`:下一个/上一个单词的结尾
|
||||
* `0` / `$`:行首/行尾
|
||||
* `^`:行首第一个非空白字符(等同于 `0w`)
|
||||
|
||||
### 编辑文本
|
||||
|
||||
* `i` / `a`:在光标处/之后进入插入模式
|
||||
* `I` / `A`:在行首/行尾进入插入模式
|
||||
* `o` / `O`:在当前行下方/上方插入空行
|
||||
* `Esc` 或 `Ctrl+[`:退出插入模式
|
||||
* `d`:删除
|
||||
* `dd`:删除整行
|
||||
* `c`:删除并进入插入模式
|
||||
* `cc`:删除整行并进入插入模式
|
||||
|
||||
### 操作符
|
||||
|
||||
* 操作符也适用于可视模式
|
||||
* `d`:从光标处删除到移动目标
|
||||
* `c`:从光标处删除到移动目标,并进入插入模式
|
||||
* `y`:从光标处复制到移动目标
|
||||
* `>`:缩进一级
|
||||
* `<`:取消缩进一级
|
||||
* 操作符可与移动命令组合使用,例如:`d$` 删除从光标到行尾的内容
|
||||
|
||||
### 标记文本(可视模式)
|
||||
|
||||
* `v`:进入可视模式
|
||||
* `V`:进入行可视模式
|
||||
* `Ctrl+v`:进入块可视模式
|
||||
* `Esc` 或 `Ctrl+[`:退出可视模式
|
||||
|
||||
### 剪贴板操作
|
||||
|
||||
* `yy`:复制整行
|
||||
* `p`:在光标后粘贴
|
||||
* `P`:在光标前粘贴
|
||||
* `dd`:剪切整行
|
||||
* `x`:删除当前字符
|
||||
* `X`:删除前一个字符
|
||||
* 默认情况下,`d` / `c` 会将删除的内容复制到剪贴板
|
||||
|
||||
### 退出
|
||||
|
||||
* `:w`:保存文件但不退出
|
||||
* `:wq`:保存并退出
|
||||
* `:q`:退出(如果有修改会失败)
|
||||
* `:q!`:强制退出并放弃修改
|
||||
|
||||
### 搜索/替换
|
||||
|
||||
* `/pattern`:搜索 pattern
|
||||
* `?pattern`:向上搜索 pattern
|
||||
* `n`:重复上一次搜索(同方向)
|
||||
* `N`:重复上一次搜索(反方向)
|
||||
* `:%s/old/new/g`:全文件替换 old 为 new
|
||||
* `:%s/old/new/gc`:全文件替换 old 为 new,并逐个确认
|
||||
|
||||
### 常规命令
|
||||
|
||||
* `u`:撤销
|
||||
* `Ctrl+r`:重做
|
||||
|
||||
## 高级命令
|
||||
|
||||
### 光标移动
|
||||
|
||||
* `Ctrl+d`:向下移动半页
|
||||
* `Ctrl+u`:向上移动半页
|
||||
* `}`:跳转到下一个段落(空行)
|
||||
* `{`:跳转到上一个段落(空行)
|
||||
* `gg`:跳转到文件顶部
|
||||
* `G`:跳转到文件底部
|
||||
* `:[num]`:跳转到指定行号
|
||||
* `Ctrl+e` / `Ctrl+y`:向下/向上滚动一行
|
||||
|
||||
### 字符搜索
|
||||
|
||||
* `f [char]`:向前移动到指定字符
|
||||
* `F [char]`:向后移动到指定字符
|
||||
* `t [char]`:向前移动到指定字符之前
|
||||
* `T [char]`:向后移动到指定字符之前
|
||||
* `;` / `,`:重复上一次字符搜索(正向/反向)
|
||||
|
||||
### 编辑文本
|
||||
|
||||
* `J`:将下一行合并到当前行
|
||||
* `r [char]`:用指定字符替换当前字符(不进入插入模式)
|
||||
|
||||
### 可视模式
|
||||
|
||||
* `O`:移动到块的另一个角
|
||||
* `o`:移动到标记区域的另一端
|
||||
|
||||
### 文件标签
|
||||
|
||||
* `:e filename`:编辑文件
|
||||
* `:tabe`:打开新标签页
|
||||
* `gt`:切换到下一个标签页
|
||||
* `gT`:切换到上一个标签页
|
||||
* `:vsp`:垂直分割窗口
|
||||
* `Ctrl+ws`:水平分割窗口
|
||||
* `Ctrl+wv`:垂直分割窗口
|
||||
* `Ctrl+ww`:在窗口间切换
|
||||
* `Ctrl+wq`:关闭当前窗口
|
||||
|
||||
### 标记
|
||||
|
||||
* 标记允许你跳转到代码中的指定位置
|
||||
* `m{a-z}`:在光标位置设置标记 {a-z}
|
||||
* 大写标记 {A-Z} 是全局标记,可跨文件使用
|
||||
* `'{a-z}`:跳转到设置标记的行首
|
||||
* `''`:返回上一个跳转位置
|
||||
|
||||
### 文本对象
|
||||
|
||||
* 例如:`def (arg1, arg2, arg3)`,光标在括号内
|
||||
* `di(`:删除括号内的内容,即“删除最近括号内的内容”
|
||||
* 如果没有文本对象,你需要使用 `T(dt)` 来实现相同的功能
|
||||
|
||||
### 常规命令
|
||||
|
||||
* `.`:重复上一次命令
|
||||
* 在插入模式下,`Ctrl+r 0`:插入最近复制的文本
|
||||
* `gv`:重新选择上一次选中的文本块
|
||||
* `%`:在匹配的 `()` 或 `{}` 之间跳转
|
||||
|
||||
---
|
||||
|
||||
如果你希望将此速查表保存为 PDF 或打印出来,可以使用 Markdown 编辑器(如 Typora)或在线工具(如 Dillinger)进行导出。
|
||||
|
||||
此外,Vim 的默认配置可能不够友好,建议你参考以下资源进行配置优化:
|
||||
|
||||
* [vim-sensible](https://github.com/tpope/vim-sensible):提供一套合理的默认配置
|
||||
* [vim-pathogen](https://github.com/tpope/vim-pathogen):插件管理工具
|
||||
* [ag.vim](https://github.com/rking/ag.vim):快速全局搜索插件
|
||||
* [ctrlp.vim](https://github.com/ctrlpvim/ctrlp.vim):文件和缓冲区快速切换插件
|
||||
* [nerdcommenter](https://github.com/preservim/nerdcommenter):代码注释插件
|
||||
|
||||
这些插件可以显著提升 Vim 的功能,使其更接近一个完整的 IDE。
|
||||
|
||||
---
|
||||
🔗
|
||||
|
||||
[用 neovim 写 markdown 是一种什么样的体验](https://yelog.org/2024/08/02/write-markdown-in-neovim-experience-and-tips/)
|
||||
|
@ -1,5 +1,5 @@
|
||||
+++
|
||||
title = "搭建个人信息流:播客收听指北"
|
||||
title = "乱七八糟:播客收听指北"
|
||||
date = 2024-03-06
|
||||
|
||||
[taxonomies]
|
||||
|
@ -1,72 +0,0 @@
|
||||
+++
|
||||
title = "乱七八糟:跑步笔记(一)"
|
||||
date = 2024-06-08
|
||||
|
||||
[taxonomies]
|
||||
tags = ["乱七八糟"]
|
||||
+++
|
||||
|
||||
前言 最近读得<<亮哥跑经>>一书,遂迷上跑步;奈何体重偏高,略微有些吃力.以下是一些笔记:
|
||||
|
||||
|
||||
<!-- more -->
|
||||
|
||||
> 为啥有人跑两步就喘?
|
||||
|
||||
- 运动基础薄弱
|
||||
|
||||
再慢的跑步,它也比快走的强度要大。跑步虽然很简单,但它并不是低强度的运动。
|
||||
|
||||
- 呼吸方法错误
|
||||
|
||||
跑步时需要更多的氧气,如果呼和吸的量不均等,吐气比吸的要多,身体没有充分地进行气体交换,就会气喘吁吁。
|
||||
|
||||
- 呼吸肌能力较弱
|
||||
|
||||
大基数体重的人,腹部往往很胖,身体的呼吸系统较弱。内脏脂肪多,呼吸肌就像吹大的气球一样,被撑薄了,相应的,它收缩和扩张的能力就会下降,所以大体重的人跑步更容易喘。而且除了容易喘之外,他们跑步也更容易岔气。
|
||||
|
||||
> 正确的呼吸方法是什么?
|
||||
|
||||
- 建议初学者采用两步一吸两步一呼的方式。
|
||||
|
||||
- 等跑了一段时间,心肺功能和整体体能加强之后,可以改为三步一吸三步一呼。
|
||||
|
||||
- 需要注意的是,最好口鼻同时呼吸,才能使充足氧气吸入
|
||||
|
||||
> 冬天跑步注意事项
|
||||
|
||||
- 冬天户外跑时,因为天气比较冷,为了防止冷空气进入我们的身体,可以带一个薄薄的口罩。
|
||||
|
||||
- 不要秋天的时候都没跑,到冬天最冷的时候突然出去跑步了。也不要顶风跑,这样你的呼吸系统是受不了的。
|
||||
|
||||
- 冬天跑步的时候,可以用舌尖顶住上牙膛,过滤加温一下冷空气,免得空气直灌入身体,造成肠胃不适。
|
||||
|
||||
|
||||
> 为什么会岔气?
|
||||
|
||||
- 岔气,简单来说,就是呼吸肌痉挛(抽筋)了。
|
||||
|
||||
- 当呼吸肌的能力不足以支撑你的身体这样强度运动时,就会通过痉挛的方式告诉你,你需要停下来或者减慢速度。
|
||||
|
||||
- 平时可以配合做一些腰腹部的核心训练,比如说卷腹、平板支撑等,多练习腹部呼吸法,这样在加强核心力量的同时,也加强了呼吸肌的能力。
|
||||
|
||||
- 跑步之前,要做好充分的热身,不要上来就加速跑,逐渐平缓地提升呼吸节奏,你得让呼吸肌有适应的过程。
|
||||
|
||||
- 如果跑步时出现了岔气情况,可以放慢跑步速度;严重的话,可以停下来调整呼吸,并且身体向相反方向伸展,右侧岔气的话,那就向上伸直右侧手臂,并向左侧伸展 15~30 秒.
|
||||
|
||||
|
||||
> 跑步前期很难坚持,怎么办?
|
||||
|
||||
- 刚开始跑,心肺体能都还跟不上,那可能跑起来不太有成就感,没有正反馈,也不好坚持。因此,需要制定合理的跑步计划(时间/距离)
|
||||
|
||||
- 从跑够 10 分钟开始的。之后每周的运动强度可以比前一周提高 5%。
|
||||
|
||||
- 无论是跑步还是健身,训练时长最好控制在 1 个小时之内,因为 1 个小时的运动会让我们身心都得到满足.
|
||||
|
||||
- 在前期跑步的时候,不要跑上坡路,上坡路非常累.
|
||||
|
||||
- 另外可以通过听音乐、给跑步赋予意义和仪式感、装备奖励等方式,帮助自己度过刚开始跑时的枯燥期。
|
||||
|
||||
---
|
||||
**Done**
|
||||
|
@ -1,63 +0,0 @@
|
||||
+++
|
||||
title = "乱七八糟:跑步笔记(二)"
|
||||
date = 2024-06-11
|
||||
|
||||
[taxonomies]
|
||||
tags = ["乱七八糟"]
|
||||
+++
|
||||
|
||||
前言 最近读得<<亮哥跑经>>一书,遂迷上跑步;奈何体重偏高,略微有些吃力.以下是一些笔记:
|
||||
|
||||
|
||||
<!-- more -->
|
||||
## 关于跑姿:
|
||||
|
||||
> 摆臂
|
||||
|
||||
- 摆臂的主要目的,是对抗腿的阻力,来保持我们的身体平衡,让身体向正前方笔直前行。
|
||||
|
||||
- 摆臂和步频是紧密相关的。所以你看那些短跑运动员,他们上肢力量也很发达,因为他们短跑时速度很快,步频很大,如果没有相应的摆臂,他们身体会不平衡.
|
||||
|
||||
- 正确的摆臂应该是什么样的呢?既然我们是向前跑,那么摆臂也应该是垂直向前的,而不是在胸口前左右交叉的,因为你左右摆臂的时候,等于给身体一个左右旋转的力,实际上这消耗了多余的能量,对于腰腹肌肉及腰椎压力也比较大,跑的也不快也不长久。
|
||||
|
||||
- 正确的摆臂应该是肩膀放松状态下,以肩关节为轴的,大臂和小臂成 90 度角,大臂带动小臂前后垂直摆动。 抬起时,大拇指不要超过眉毛,回来时,大拇指不要越过躯干。
|
||||
|
||||
|
||||
> 常见的错误摆臂方式
|
||||
|
||||
- 双臂在身前交叉,我称之为“戳鼻孔跑”。当你的双臂不是垂直向前用力,而是左右旋转的时候,身体会消耗多余能量。
|
||||
|
||||
- 只摆小臂,不摆大臂。跑步时把大臂夹得特别紧,而且摆臂是以肘关节为轴了,这是不对的。
|
||||
|
||||
- 不摆手臂,摆动躯干。完全只是靠摆动躯干的方式在维持平衡,这样会造成能量过度损失,而且对腰椎压力也比较大。
|
||||
|
||||
- 摆臂高度不对,比如说摆臂过大,或是一面高一面低。摆臂过大是短跑的摆臂方式,长跑的摆臂,向前手指不超过眉梢、向后不超过躯干。
|
||||
|
||||
- 摆臂一面高一面低,一般我们戴臂包、手中握手机或水瓶等容易出现这个问题。摆臂是帮我们平衡的,如果你的左右摆臂高度不一样,那跑姿一定是变形的,也就是说身体左右受力是不均匀的,这时很容易导致身体的一侧肌肉紧张,出现像跑步膝等身体损伤.
|
||||
|
||||
> 摆腿
|
||||
|
||||
- 看一个人摆腿对不对,就看他是用髋关节跑还是膝关节跑。
|
||||
|
||||
- 正确的长跑姿势,应该是核心收紧,臀大肌和大腿后侧肌肉发力,以髋关节为轴,带动膝关节和踝关节向前跑动,小腿只是辅助性肌肉,它发力不多。所以长跑运动员基本上臀部都是很翘的,而小腿纤细。
|
||||
|
||||
- 如果一直屈髋“坐着跑”,跑步时就会经常出现重心不稳的情况,而且地面给你带来的冲击力,你不能很好地将它传导到臀部,也就是说,这些冲击力都消耗在了膝关节这里。这样的话,一是你很难跑得长久,二是容易把小腿跑粗,三是全身的压力都集中在膝关节,容易带来一些慢性损伤。
|
||||
|
||||
> 着地
|
||||
|
||||
- 跑步的着地方式主要有三种:前脚掌、中脚掌和后脚掌。如果我们是长跑的话,主要采用的是后脚跟着地和中足着地的方式。
|
||||
|
||||
- 前脚掌着地会帮助我们跑步提速,但是大众跑者跑长跑,不是比谁跑的快,而是看谁跑得更健康、更安全、更节能。
|
||||
|
||||
> 前倾跑 & 低头族
|
||||
|
||||
- 跑步时腰疼或者下背部疼痛,其实这主要和你跑步时身体前倾了有关。因为当你身体前倾时,你的屈髋肌群,也就是胯骨部位会过度紧张,你的下背部肌肉会被反向拉长,它的压力就会增加。这就好比你背个书包去跑步,背部肌肉很容易疲劳的。
|
||||
|
||||
- 而且当你身体前倾的时候,你的髋关节不能很好的帮你做功,身体容易左右扭动,时间长了也容易引起腰部肌肉酸疼。
|
||||
|
||||
- 还有的人是低头跑,如果有这个情况,可以在跑步之前做一些颈部伸展;跑步时,不要探头,稍微收下巴,眼睛可以平视前方 50 米左右地方,这样就可以很好地解决这个问题了。
|
||||
|
||||
---
|
||||
**Done**
|
||||
|
||||
|
@ -1,174 +0,0 @@
|
||||
+++
|
||||
title = "乱七八糟:Vim编辑器速查"
|
||||
date = 2024-08-15
|
||||
|
||||
[taxonomies]
|
||||
tags = ["乱七八糟"]
|
||||
+++
|
||||
|
||||
前言 Vim 是从早期的 vi 编辑器发展而来的增强版,其名称代表“Vi IMproved”。由荷兰程序员 Bram Moolenaar 于 1991 年首次发布。Vim 是开源软件,支持多种操作系统,包括 Unix、Linux、Windows 和 macOS 等。
|
||||
|
||||
<!-- more -->
|
||||
|
||||
---
|
||||
|
||||
## 一份优秀的 Vim 速查表
|
||||
|
||||
> 翻译自``https://vimsheet.com/``
|
||||
|
||||
我整理了一份我每天使用的 Vim 基本命令列表,并提供了一些配置建议,使 Vim 更加实用。因为没有配置的 Vim 使用起来会比较痛苦。
|
||||
|
||||
## 基础命令
|
||||
|
||||
### 光标移动(普通模式/可视模式)
|
||||
|
||||
* `h` `j` `k` `l`:左、下、上、右移动
|
||||
* `w` / `b`:下一个/上一个单词
|
||||
* `W` / `B`:下一个/上一个以空格分隔的单词
|
||||
* `e` / `ge`:下一个/上一个单词的结尾
|
||||
* `0` / `$`:行首/行尾
|
||||
* `^`:行首第一个非空白字符(等同于 `0w`)
|
||||
|
||||
### 编辑文本
|
||||
|
||||
* `i` / `a`:在光标处/之后进入插入模式
|
||||
* `I` / `A`:在行首/行尾进入插入模式
|
||||
* `o` / `O`:在当前行下方/上方插入空行
|
||||
* `Esc` 或 `Ctrl+[`:退出插入模式
|
||||
* `d`:删除
|
||||
* `dd`:删除整行
|
||||
* `c`:删除并进入插入模式
|
||||
* `cc`:删除整行并进入插入模式
|
||||
|
||||
### 操作符
|
||||
|
||||
* 操作符也适用于可视模式
|
||||
* `d`:从光标处删除到移动目标
|
||||
* `c`:从光标处删除到移动目标,并进入插入模式
|
||||
* `y`:从光标处复制到移动目标
|
||||
* `>`:缩进一级
|
||||
* `<`:取消缩进一级
|
||||
* 操作符可与移动命令组合使用,例如:`d$` 删除从光标到行尾的内容
|
||||
|
||||
### 标记文本(可视模式)
|
||||
|
||||
* `v`:进入可视模式
|
||||
* `V`:进入行可视模式
|
||||
* `Ctrl+v`:进入块可视模式
|
||||
* `Esc` 或 `Ctrl+[`:退出可视模式
|
||||
|
||||
### 剪贴板操作
|
||||
|
||||
* `yy`:复制整行
|
||||
* `p`:在光标后粘贴
|
||||
* `P`:在光标前粘贴
|
||||
* `dd`:剪切整行
|
||||
* `x`:删除当前字符
|
||||
* `X`:删除前一个字符
|
||||
* 默认情况下,`d` / `c` 会将删除的内容复制到剪贴板
|
||||
|
||||
### 退出
|
||||
|
||||
* `:w`:保存文件但不退出
|
||||
* `:wq`:保存并退出
|
||||
* `:q`:退出(如果有修改会失败)
|
||||
* `:q!`:强制退出并放弃修改
|
||||
|
||||
### 搜索/替换
|
||||
|
||||
* `/pattern`:搜索 pattern
|
||||
* `?pattern`:向上搜索 pattern
|
||||
* `n`:重复上一次搜索(同方向)
|
||||
* `N`:重复上一次搜索(反方向)
|
||||
* `:%s/old/new/g`:全文件替换 old 为 new
|
||||
* `:%s/old/new/gc`:全文件替换 old 为 new,并逐个确认
|
||||
|
||||
### 常规命令
|
||||
|
||||
* `u`:撤销
|
||||
* `Ctrl+r`:重做
|
||||
|
||||
## 高级命令
|
||||
|
||||
### 光标移动
|
||||
|
||||
* `Ctrl+d`:向下移动半页
|
||||
* `Ctrl+u`:向上移动半页
|
||||
* `}`:跳转到下一个段落(空行)
|
||||
* `{`:跳转到上一个段落(空行)
|
||||
* `gg`:跳转到文件顶部
|
||||
* `G`:跳转到文件底部
|
||||
* `:[num]`:跳转到指定行号
|
||||
* `Ctrl+e` / `Ctrl+y`:向下/向上滚动一行
|
||||
|
||||
### 字符搜索
|
||||
|
||||
* `f [char]`:向前移动到指定字符
|
||||
* `F [char]`:向后移动到指定字符
|
||||
* `t [char]`:向前移动到指定字符之前
|
||||
* `T [char]`:向后移动到指定字符之前
|
||||
* `;` / `,`:重复上一次字符搜索(正向/反向)
|
||||
|
||||
### 编辑文本
|
||||
|
||||
* `J`:将下一行合并到当前行
|
||||
* `r [char]`:用指定字符替换当前字符(不进入插入模式)
|
||||
|
||||
### 可视模式
|
||||
|
||||
* `O`:移动到块的另一个角
|
||||
* `o`:移动到标记区域的另一端
|
||||
|
||||
### 文件标签
|
||||
|
||||
* `:e filename`:编辑文件
|
||||
* `:tabe`:打开新标签页
|
||||
* `gt`:切换到下一个标签页
|
||||
* `gT`:切换到上一个标签页
|
||||
* `:vsp`:垂直分割窗口
|
||||
* `Ctrl+ws`:水平分割窗口
|
||||
* `Ctrl+wv`:垂直分割窗口
|
||||
* `Ctrl+ww`:在窗口间切换
|
||||
* `Ctrl+wq`:关闭当前窗口
|
||||
|
||||
### 标记
|
||||
|
||||
* 标记允许你跳转到代码中的指定位置
|
||||
* `m{a-z}`:在光标位置设置标记 {a-z}
|
||||
* 大写标记 {A-Z} 是全局标记,可跨文件使用
|
||||
* `'{a-z}`:跳转到设置标记的行首
|
||||
* `''`:返回上一个跳转位置
|
||||
|
||||
### 文本对象
|
||||
|
||||
* 例如:`def (arg1, arg2, arg3)`,光标在括号内
|
||||
* `di(`:删除括号内的内容,即“删除最近括号内的内容”
|
||||
* 如果没有文本对象,你需要使用 `T(dt)` 来实现相同的功能
|
||||
|
||||
### 常规命令
|
||||
|
||||
* `.`:重复上一次命令
|
||||
* 在插入模式下,`Ctrl+r 0`:插入最近复制的文本
|
||||
* `gv`:重新选择上一次选中的文本块
|
||||
* `%`:在匹配的 `()` 或 `{}` 之间跳转
|
||||
|
||||
---
|
||||
|
||||
如果你希望将此速查表保存为 PDF 或打印出来,可以使用 Markdown 编辑器(如 Typora)或在线工具(如 Dillinger)进行导出。
|
||||
|
||||
此外,Vim 的默认配置可能不够友好,建议你参考以下资源进行配置优化:
|
||||
|
||||
* [vim-sensible](https://github.com/tpope/vim-sensible):提供一套合理的默认配置
|
||||
* [vim-pathogen](https://github.com/tpope/vim-pathogen):插件管理工具
|
||||
* [ag.vim](https://github.com/rking/ag.vim):快速全局搜索插件
|
||||
* [ctrlp.vim](https://github.com/ctrlpvim/ctrlp.vim):文件和缓冲区快速切换插件
|
||||
* [nerdcommenter](https://github.com/preservim/nerdcommenter):代码注释插件
|
||||
|
||||
这些插件可以显著提升 Vim 的功能,使其更接近一个完整的 IDE。
|
||||
|
||||
---
|
||||
**Done.**
|
||||
|
||||
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
+++
|
||||
title = "Linux之旅(一):构成与发行版"
|
||||
title = "Linux之旅(1):构成与发行版"
|
||||
date = 2023-07-20
|
||||
|
||||
[taxonomies]
|
||||
|
@ -1,5 +1,5 @@
|
||||
+++
|
||||
title = "Linux之旅(二):FHS与目录结构"
|
||||
title = "Linux之旅(2):FHS与目录结构"
|
||||
date = 2023-07-21
|
||||
|
||||
[taxonomies]
|
||||
@ -124,4 +124,4 @@ Swap的优先级:如果同时存在多个Swap分区/文件,可以通过设
|
||||
xdg-user-dirs-update
|
||||
```
|
||||
|
||||
这样,`home` 目录下的文件夹就会改为英文,并且系统也会正确识别这些新的目录路径。
|
||||
这样,`home` 目录下的文件夹就会改为英文,并且系统也会正确识别这些新的目录路径。
|
||||
|
@ -1,5 +1,5 @@
|
||||
+++
|
||||
title = "Linux之旅(三):内核/shell/包管理/文件系统/桌面环境"
|
||||
title = "Linux之旅(3):内核/shell/包管理/文件系统/桌面环境"
|
||||
date = 2023-07-22
|
||||
|
||||
[taxonomies]
|
||||
@ -173,4 +173,4 @@ Wayland是一个由Red Hat主导开发的新一代图形显示协议,旨在取
|
||||
|
||||
## **六.后记**
|
||||
|
||||
个人使用推荐Zen+Zsh+Pacman+Btrfs+Hyprland,并使用 paru xxx 来搜索软件包,使用paru -S xxx 安装软件。
|
||||
个人使用推荐Zen+Zsh+Pacman+Btrfs+Hyprland,并使用 paru xxx 来搜索软件包,使用paru -S xxx 安装软件。
|
||||
|
@ -1,5 +1,5 @@
|
||||
+++
|
||||
title = "Linux之旅(四):Terminal,Console and Shell"
|
||||
title = "Linux之旅(4):Terminal,Console and Shell"
|
||||
date = 2023-07-23
|
||||
|
||||
[taxonomies]
|
||||
|
@ -1,5 +1,5 @@
|
||||
+++
|
||||
title = "Linux之旅(五):BIOS-UEFI-MBR-GPT-GRUB"
|
||||
title = "Linux之旅(5):BIOS-UEFI-MBR-GPT-GRUB"
|
||||
date = 2023-07-24
|
||||
|
||||
[taxonomies]
|
||||
|
@ -1,5 +1,5 @@
|
||||
+++
|
||||
title = "Linux之旅(六):常用命令与性能分析"
|
||||
title = "Linux之旅(6):常用命令与性能分析"
|
||||
date = 2023-07-25
|
||||
|
||||
[taxonomies]
|
||||
@ -228,4 +228,4 @@ KiB Swap: 0 total, 0 used, 0 free. 554208 cached Mem
|
||||
```
|
||||
top命令包括我们之前检查的许多指标。运行它可以很方便地查看是否有任何东西与以前的命令有很大不同,这表明负载是可变的。
|
||||
|
||||
top命令不太好的地方是,随着时间的推移很难看到指标变化的模式,这在提供滚动输出的vmstat和pidstat之类的工具中可能更清楚一点。如果您没有足够快地暂停输出(Ctrl-S暂停,Ctrl-Q继续),在屏幕输出被top命令清除后,间歇性问题的证据也可能被丢失了。
|
||||
top命令不太好的地方是,随着时间的推移很难看到指标变化的模式,这在提供滚动输出的vmstat和pidstat之类的工具中可能更清楚一点。如果您没有足够快地暂停输出(Ctrl-S暂停,Ctrl-Q继续),在屏幕输出被top命令清除后,间歇性问题的证据也可能被丢失了。
|
||||
|
@ -1,5 +1,5 @@
|
||||
+++
|
||||
title = "Linux之旅(七):系统与终端字体设置"
|
||||
title = "Linux之旅(7):系统与终端字体设置"
|
||||
date = 2023-08-01
|
||||
|
||||
[taxonomies]
|
||||
@ -45,4 +45,4 @@ LXGW WenKai
|
||||
└── Noto Serif CJK SC(思源宋体)
|
||||
```
|
||||
---
|
||||
**Done.**
|
||||
**Done.**
|
||||
|
@ -2,8 +2,7 @@
|
||||
title = "谈天说地:狄奇周刊(二十)"
|
||||
date = 2025-01-25
|
||||
|
||||
[taxonomies]
|
||||
tags = ["谈天说地"]
|
||||
|
||||
+++
|
||||
|
||||
前言 这里是Dich的周刊,通过博客的形式讲述每周互联网形势,以及分享一些文章。
|
||||
|
@ -2,8 +2,7 @@
|
||||
title = "谈天说地:狄奇周刊(二一)"
|
||||
date = 2025-02-04
|
||||
|
||||
[taxonomies]
|
||||
tags = ["谈天说地"]
|
||||
|
||||
+++
|
||||
|
||||
前言 这里是Dich的周刊,通过博客的形式讲述每周互联网形势,以及分享一些文章。
|
||||
@ -71,4 +70,4 @@ AI圈大V Yuchen Jin认为,DeepSeek-R1 论文中的这个“顿悟时刻”意
|
||||
[SamWaf开源轻量级网站防火墙,完全私有化部署](https://github.com/samwafgo/SamWaf)
|
||||
|
||||
|
||||
[在PDF里运行Linux,利用RISC-V模拟器,将Linux系统嵌入PDF文件,基于TinyEMU,支持32位和64位系统;](https://github.com/ading2210/linuxpdf)
|
||||
[在PDF里运行Linux,利用RISC-V模拟器,将Linux系统嵌入PDF文件,基于TinyEMU,支持32位和64位系统;](https://github.com/ading2210/linuxpdf)
|
||||
|
@ -1,9 +1,9 @@
|
||||
+++
|
||||
title = "乱七八糟:Windows激活那些事"
|
||||
date = 2024-05-25
|
||||
title = "Windows系列(3):分类与激活"
|
||||
date = 2024-05-26
|
||||
|
||||
[taxonomies]
|
||||
tags = ["乱七八糟","Windows"]
|
||||
tags = ["Windows"]
|
||||
+++
|
||||
|
||||
前言 Windows的正版售价十分昂贵,2025年的今天大部分人都使用着OEM厂商自带的windows系统或自己想办法激活,那么,激活到底是什么原理?
|
||||
|
@ -1,9 +1,9 @@
|
||||
+++
|
||||
title = "乱七八糟:Windows安装与环境配置"
|
||||
date = 2024-05-26
|
||||
title = "Windows系列(2):安装与环境配置"
|
||||
date = 2024-05-25
|
||||
|
||||
[taxonomies]
|
||||
tags = ["乱七八糟","Windows"]
|
||||
tags = ["Windows"]
|
||||
+++
|
||||
|
||||
前言 由于厂商默认安装windows家庭版导致各种问题频发,这里对 widnows 安装做一个总结,以及附上我个人的windows配置。
|
||||
@ -201,4 +201,4 @@ Host myserver
|
||||
```
|
||||
|
||||
---
|
||||
**Done.**
|
||||
**Done.**
|
||||
|
@ -1,9 +1,9 @@
|
||||
+++
|
||||
title = "乱七八糟:Windows-Jupyter开发Python"
|
||||
title = "Windows系列(5):Python开发配置"
|
||||
date = 2024-05-31
|
||||
|
||||
[taxonomies]
|
||||
tags = ["乱七八糟","Windows"]
|
||||
tags = ["Windows"]
|
||||
+++
|
||||
|
||||
前言 由于 Windows 中开发环境较 linux 复杂,这里总结 Windows 中使用 Jupyter 开发 Python 的环境配置。
|
||||
|
@ -1,9 +1,9 @@
|
||||
+++
|
||||
title = "乱七八糟:Windows封装与全自动安装"
|
||||
title = "Windows系列(4):封装与全自动安装"
|
||||
date = 2024-05-29
|
||||
|
||||
[taxonomies]
|
||||
tags = ["乱七八糟","Windows"]
|
||||
tags = ["Windows"]
|
||||
+++
|
||||
|
||||
前言 由于厂商默认安装windows家庭版导致各种问题频发,这里作者封装了一个开箱即用的,全自动安装,激活和优化的Windows11镜像。
|
||||
@ -55,4 +55,4 @@ tags = ["乱七八糟","Windows"]
|
||||
|
||||
**SHA-256:5920ca1b839c2823cad5223cdff39671784d98d18da03fa4377a362ad480ce54**
|
||||
|
||||
**下载链接:**[这里](https://drive.google.com/file/d/1CWXtHJRmDaGYVV7k9mRsn1cDxIwomavO/view?usp=drive_link)
|
||||
**下载链接:**[这里](https://drive.google.com/file/d/1CWXtHJRmDaGYVV7k9mRsn1cDxIwomavO/view?usp=drive_link)
|
||||
|
@ -1,9 +1,9 @@
|
||||
+++
|
||||
title = "乱七八糟:Windows常用操作"
|
||||
title = "Windows系列(1):常用操作"
|
||||
date = 2024-05-24
|
||||
|
||||
[taxonomies]
|
||||
tags = ["乱七八糟","Windows"]
|
||||
tags = ["Windows"]
|
||||
+++
|
||||
|
||||
前言 Windows操作系统作为全球最为普及的桌面操作系统之一,其用户界面的设计非常经典,但存在许多不足之处,本篇记录一些常用脚本。
|
||||
|
@ -1,9 +1,9 @@
|
||||
+++
|
||||
title = "乱七八糟:Windows-VScode开发C/C++"
|
||||
title = "Windows系列(6):C/C++开发配置"
|
||||
date = 2024-05-30
|
||||
|
||||
[taxonomies]
|
||||
tags = ["乱七八糟","Windows"]
|
||||
tags = ["Windows"]
|
||||
+++
|
||||
|
||||
前言 由于 Windows 中开发环境较 linux 复杂,这里总结 Windows 中使用 VScode 开发 C/C++ 的环境配置。
|
||||
|
Reference in New Issue
Block a user