diff --git a/docs/tools/editor/atom.md b/docs/tools/editor/atom.md
index 01623951..51240ceb 100644
--- a/docs/tools/editor/atom.md
+++ b/docs/tools/editor/atom.md
@@ -1,11 +1,11 @@
author: ouuan, ChungZH, partychicken, Xeonacid
-Atom,GitHub 家的编辑器。
+Atom, editor from Github.
-## 简介
+## Introduction
-Atom 是一个免费、开源、跨平台的文本编辑器,由 GitHub 开发。它是用 JavaScript 编写的,并且采用 Electron 架构。它的一个较大缺点就是性能差。
+Atom is a free and open-source cross-platform text editor developed by Github. It is written in Javascript and based on Electron. A relatively serious disadvantage is bad performance.
-## 外部链接
+## External Links
-- [Atom 官网](https://atom.io)
+- [Homepage of Atom](https://atom.io)
diff --git a/docs/tools/editor/devcpp.md b/docs/tools/editor/devcpp.md
index 560b7d1b..eb155f98 100644
--- a/docs/tools/editor/devcpp.md
+++ b/docs/tools/editor/devcpp.md
@@ -1,163 +1,143 @@
-author: ksyx, ouuan, Doveqise, hsfzLZH1, wangqingshiyu, sshwy, NanoApe, DawnMagnet
+author: ksyx, ouuan, Doveqise, hsfzLZH1, wangqingshiyu, sshwy, NanoApe, DawnMagnet, CamberLoid
-## 介绍
+## Introduction
-> Dev-C++ 是一套用于开发 C/C++(C++11)的自由的集成开发环境(IDE),并以 GPL 作为散布许可。使用 MinGW 及 GDB 作为编译系统与调试系统。Dev-C++ 的 IDE 是利用 Delphi 开发的。
->
-> Dev-C++ 是一个 SourceForge 的项目,是由 Colin Laplace 这位程序员及其公司 Bloodshed Software 所开始的。当前 Dev-C++ 一般用于撰写运行于 Microsoft Windows 的程序。Dev-C++ 一度有移植到 Linux 的项目但当前被暂停了。
->
-> Bloodshed Dev-C++ 是一款全功能的 C 和 C++ 编程语言的集成开发环境(IDE)。它使用的 GCC MinGW 或 TDM-GCC 的 64 位版本作为它的编译器。Dev-C++ 也可以使用 Cygwin 或任何其他基于 GCC 编译器组合使用。
->
-> 此外,Dev-C++ 较旧的版本无法在 win8 环境下编译。
->
-> 该项目已不再明显活跃,从 2005 年 2 月 22 日开始至 2011 年 6 月,Dev-C++ 的官方网站一直没有再发出新消息或是释放新版本,说明 Dev-C++ 的开发已经进入了迟滞状态。2006 年,Dev-C++ 主要开发者 Colin Laplace 曾经对此作出了解释:“因忙于现实生活的事务,没有时间继续 Dev-C++ 的开发。”
+Dev-C++ is a free full-featured integrated development environment (IDE) distributed under the GNU General Public License for programming in C and C++ (including C++11). It is bundled with, and uses, MinGW and GDB as its compiler and debugger. Dev-C++ runs in Microsoft Windows.
-以上摘自 Wikipedia[^1]。
+The advantage of Dev-C++ is friendly user interface, simple installation and its support of single file compilation. Therefore, it becomes the first choice of many C++ beginners and competitive programming contestants. For NOIP, in provinces which use Windows as contest operation system, it generally comes with pre-installed Dev-C++.
-不过,你在使用的版本是不是我说的这个版本呢?
+The origin of Dev-C++ is Bloodshed Dev-C++ written by Colin Laplace. Since February 22, 2005, the project was stopped updating. In 2006, lead developer Colin Laplace stated the situation that he was busy with real-life issues and did not have time to continue development of Dev-C++.
-没错,Dev-C++ 其实还有一个全新版本:
+Orwell Dev-C++ is a variant of Bloodshed Dev-C++, developed and maintained by individual programmer Orwell (Johan Mes). The variant contains bug fixes and compiler updates. Generally speaking, all Dev-C++ 5.x are Orwell Dev-C++. This variant was last updated in 2015 with version 5.11.
-> Orwell Dev-C++ 是 Dev-C++ 的一个衍生版本。Orwell 鉴于 Dev-C++ 的长时间(从 2005 年 2 月 22 日起)不再更新,对 Dev-C++ 源代码进行错误修正,并更新编译器后发布的版本。
+Embarcadero Dev-C++[^ref1] is a successor of Bloodshed Dev-C++ and Orwell Dev-C++. In 2020, Embarcadero sponsored and continued the development of original Bloodshed Dev-C++. It contains support for high DPI, compiler updates and support new C++ standards, and dark mode.
-以上摘自 Wikipedia[^2]。
+The Dev-C++ distributions listed above are considered "official releases". Besides, after the stale development Orwell Dev-C++ in 2015, out of the need of teaching, an individual Chinese developer [royqh1979](https://github.com/royqh1979) decided to develop his personal fork of Dev-C++ named "Red Panda Dev-C++", integrating intelligent hint and updated version of MinGW64, which is convenient for personal use and studying. The project is hosted on [GitHub](https://github.com/royqh1979/Dev-Cpp).
-自 2011 年的 Dev-C++ 4.9.9.3 版本之后,你使用的版本均为 Orwell Dev-C++。
+## Getting Started to Use
-目前最新版本为 2015 年 4 月 27 日的 Dev-C++ 5.11 版本,可于 [SourceForge](https://sourceforge.net/projects/orwelldevcpp/files/latest/download) 下载。
+### Frequently-used Shortcut Keys
-该应用界面简洁友好,安装便捷,适合初学者使用。
+#### File
-2020 年,Embarcadero 赞助并接手了原有的 Bloodshed Dev-C++ 项目,继续开发。项目地址位于 [GitHub](https://github.com/Embarcadero/Dev-Cpp) 和 [SourceForge](https://sourceforge.net/projects/embarcadero-devcpp/).
+- `Ctrl + N`: Create a source file.
+- `Ctrl + O`: Open a source file.
+- `Ctrl + W`: Close a source file.
+- `Ctrl + P`: Print a source file.
-在 2015 年停止更新后,因为教学需要,一位来自中国的个人开发者 [royqh1979](https://github.com/royqh1979) 决定继续开发他的 Dev-C++ 个人分支,命名为小熊猫 Dev-C++,集成了智能提示和高版本的 MINGW64,非常便于国内的个人使用和学习,项目官网位于 [小熊猫 Dev-C++](https://royqh.net/devcpp/download),源码地址位于 [Github](https://github.com/royqh1979/Dev-Cpp).
+#### Formatting
-## 使用教程
+- `Ctrl + /`:Comment and uncomment.
+- `Tab`: Insert indent.
+- `Shift + Tab`: Undo indent.
-### 常用快捷键
+#### Line Operation
-#### 文件部分
+- `Ctrl + E`: Copy selected line.
+- `Ctrl + D`: Delete selected line.
+- `Ctrl + Shift + Up`: Move cursor upward.
+- `Ctrl + Shift + Down`: Move cursor downward.
-- `Ctrl + N`: 创建源代码
-- `Ctrl + O`: 打开文件
-- `Ctrl + W`: 关闭文件
-- `Ctrl + P`: 打印文件
+#### Jumping
-#### 格式部分
+- `Ctrl + F`: Search
+- `Ctrl + R`: Replace
+- `F3`: Search next
+- `Shift + F3`: Search previous
+- `Ctrl + G`: Jump to line
+- `Shift + Ctrl + G`: Jump to function
+- `Ctrl +[1 ~ 9]`: Add bookmark(s)
+- `Alt +[1 ~ 9]`: Jump to bookmark
-- `Ctrl + /`:注释和取消注释
-- `Tab`: 缩进
-- `Shift + Tab`: 取消缩进
+#### Display
-#### 行操作
+- `Ctrl + Mouse wheel`: Resize font
+- `Ctrl + F11`: Toggle fullscreen
-- `Ctrl + E`: 复制行
-- `Ctrl + D`: 删除行
-- `Ctrl + Shift + Up`: 向上移动
-- `Ctrl + Shift + Down`: 向下移动
+#### Executing
-#### 跳转部分
+- `F9`: Compile only
+- `F10`: Execute only
+- `F11`: Compile and execute
+- `F12`: Re-compile all
-- `Ctrl + F`: 搜索
-- `Ctrl + R`: 替换
-- `F3`: 搜索下一个
-- `Shift + F3`: 搜索上一个
-- `Ctrl + G`: 到指定行号
-- `Shift + Ctrl + G`: 到指定函数
-- `Ctrl +[1 ~ 9]`: 设置书签
-- `Alt +[1 ~ 9]`: 跳转书签
+#### Debugging
-#### 显示部分
+- `F2`: Jump to breakpoint
+- `F4`: Set breakpoint or delete
+- `F5`: Debugging execute
+- `F6`: Stop
+- `F7`: Debug step-by-step
-- `Ctrl + 滚轮`:字号放大或缩小
-- `Ctrl + F11`: 全屏或恢复
+### Process of Debugging
-#### 运行部分
+1. Switch compiler to `TDM-GCC (Version) 64-bit Debug`;
+2. Press `F4` to set or cancel debugging breakpoint;
+3. Put cursor to a variable and press `Alt + A` to add monitoring variables;
+4. Press `F5` to start debugging;
+5. Press `F7` or `Alt + N` to debug step-by-step;
+6. Press `Alt + S` to jump to next debugging breakpoint;
+7. Press `F6` to stop debugging.
-- `F9`: 只编译
-- `F10`: 只运行
-- `F11`: 编译并运行
-- `F12`: 全部重新编译
+## Advanced
-#### 调试部分
+### Add Compile Options
-- `F2`: 转到断点
-- `F4`: 设置断点或取消
-- `F5`: 调试运行
-- `F6`: 停止
-- `F7`: 逐步调试
+Click "Tools" -> "Compiler Options..." and select the "Settings" tab. Here introduces some options frequently used by the author:
-### 调试流程
+#### Enable Optimization from Compiler
-1. 将编译器配置设定为 "TDM-GCC 4.9.2 64-bit Debug"
-2. 按 `F4` 设置或取消调试断点
-3. 将光标放置在变量上,按 `Alt + A` 向调试窗口添加监控变量
-4. 按 `F5` 启动调试
-5. 按 `F7` 或 `Alt + N` 逐步调试
-6. 按 `Alt + S` 跳至下一个调试断点
-7. 按 `F6` 停止调试
+This option will optimize the time spent or space used by programs.
-## 扩展
-
-### 增加编译选项
-
-点击工具 -> 编译选项,然后选择 "代码生成/优化" 选项卡,下面介绍我自己常用的几个编译选项。
-
-#### 开启优化
-
-优化代码运行时间或占用空间。
-
-选择 "代码生成" 子选项卡中的 "优化级别(-Ox)" 选项标签。
+Select the "Optimization Level (-Ox)" option in the "Code Generation" sub-tab, and choose the level you wan to use.
![](./images/Dev-C++-11.png)
-#### 更换语言标准
+#### Choose Language Standard
-使用新语言特性或试图让代码在旧标准中运行使用。
+This option enables using new language features in updated standards, or trying to compile code in older standard.
-选择 "代码生成" 子选项卡中的 "语言标准(-std)" 选项标签。
+Select the "Language Standard (-std)" option in the "Code Generation" sub-tab, and choose the standard you wan to use.
-![](./images/Dev-C++-12.png)
+![](./images/Dev-C++-12.png)
-#### 显示最多警告信息
+#### Show All The Warnings
-查错小助手。
+This option assists user to debug.
-选择 "代码警告" 子选项卡中的 "显示最多警告信息(-Wall)" 选项标签。
+Toggle "Show most warnings (-Wall)" option in the "Warnings" sub-tab to enable the feature.
![](./images/Dev-C++-13.png)
-#### 生成调试信息
+#### Generate Debugging Informations
-当显示 "项目没有调试信息,您想打开项目调试选项并重新生成吗?" 点击后闪退或想使用调试功能时需开启此功能。
+This option is needed when the user clicks "Debug" and the editor pops up a window "You have not enabled debugging info (-g) and/or stripped it from the executable (-s) in Compiler Options" and it crashed after the user clicked "Yes", or the user wants the debugging feature to be always-on.
-选择 "连接器" 子选项卡中的 "产生调试信息" 选项标签。
+Toggle "Generate debugging information (-g3)" option in "Linker" sub-tab to yes to enable it.
![](./images/Dev-C++-14.png)
-### 编译小 trick
+### Tricks of Compiling
-点击工具 -> 编译选项,然后选择 "编译器" 选项卡,接下来介绍几个常用 trick。
+Click "Tools" -> "Compiler Options...", and select the tab "General". Below is some frequently used tricks.
-#### 开大栈
+#### Extend the Stack
-防止 DFS 爆系统栈之类的情况出现。
+This may prevent stack overflow caused by too many recursions (like depth-first search).
-在 "连接器命令行加入以下命令" 中加入 `-Wl,--stack=128000000` 命令。
+Add `-Wl,--stack=128000000` to "Add the following commands when calling the linker".
-此命令将栈开到了约 128MB 的大小,有需要可以自行增加。
+The example above resized the stack to about 128MB, and can be adjusted as needed.
![](./images/Dev-C++-15.png)
-#### 定义宏
-
-方便本地评测使用文件输入输出或作其他用途。
+#### Define Marco
-在 "连接器命令行加入以下命令" 中加入 `-D[String]` 命令。
+Macro is useful when testing locally with file I/O or other purposes.
-其中 `[String]` 改为你需要的宏名。
+Add `-D[string]` to "Add the following commands when calling the linker", where `[string]` is the macro needed to define.
-如图,当开启编译选项后便可将以下代码从 `test.in` 文件读入数据并在 `test.out` 文件中输出。
+In the following example, the argument `-DLOCAL` make the following code to read from the file `test.in` and output to file `test.out`, equivalent to `#define LOCAL`.
![](./images/Dev-C++-16.png)
@@ -168,28 +148,26 @@ freopen("test.out", "w", stdout);
#endif
```
-### 美化
+### Eye Candies
-#### 代码格式化
+#### Code Formatting
-点击 Astyle-> 格式化当前文件 或 按 Ctrl+Shift+A 进行代码格式化。
+To format the code, click "Astyle" -> "Format Current File" in toolbar or press Ctrl+Shift+A.
![](./images/Dev-C++-17.png)
-#### 字体
+#### Fonts
-点击工具 -> 编辑器选项,然后选择 "显示" 选项卡。
+To set fonts, click "Tools" -> "Editor Options..." and select "Fonts" tab.
![](./images/Dev-C++-9.png)
-#### 主题
+#### Color Scheme
-点击工具 -> 编辑器选项,然后选择 "语法" 选项卡,可以使用预设主题,也可以自行调整。
+To set color scheme, or theme, click "Tools" -> "Editor Options..." and select "Colors" tab. You can use the default theme, or adjust them yourself.
![](./images/Dev-C++-10.png)
-## 参考资料
-
-[^1]: [Dev-C++ - 维基百科](https://zh.wikipedia.org/wiki/Dev-C%2B%2B)
+## References
-[^2]: [Orwell Dev-C++ - 维基百科](https://zh.wikipedia.org/wiki/Orwell_Dev-C%2B%2B)
+[^ref1]: The project is hosted on [GitHub](https://github.com/Embarcadero/Dev-Cpp) and [SourceForge](https://sourceforge.net/projects/embarcadero-devcpp/).
\ No newline at end of file
diff --git a/docs/tools/editor/eclipse.md b/docs/tools/editor/eclipse.md
index ea1e3131..ae6a366e 100644
--- a/docs/tools/editor/eclipse.md
+++ b/docs/tools/editor/eclipse.md
@@ -1,24 +1,39 @@
-author: ouuan, Doveqise, partychicken, Xeonacid, StudyingFather
+author: ouuan, Doveqise, partychicken, Xeonacid, StudyingFather, CamberLoid (as translator)
-## 介绍
+Last translated on August 31st, 2021, with commit [663c0d0](https://github.com/OI-wiki/OI-wiki/commit/663c0d00574ae5528ecd8490403e0527672cd2ae)
-Eclipse 是著名的跨平台开源集成开发环境(IDE)。最初主要用来 Java 语言开发,当前亦有人通过插件使其作为 C++、Python、PHP 等其他语言的开发工具。
+This article will briefly introduce Eclipse.
-Eclipse 的本身只是一个框架平台,但是众多插件的支持,使得 Eclipse 拥有较佳的灵活性,所以许多软件开发商以 Eclipse 为框架开发自己的 IDE。
+## Introduction
-Eclipse 最初是由 IBM 公司开发的替代商业软件 Visual Age for Java 的下一代 IDE 开发环境,2001 年 11 月贡献给开源社区,现在它由非营利软件供应商联盟 Eclipse 基金会(Eclipse Foundation)管理。[^ref1]
+Eclipse is a famous cross-platform open-source integrated development environment. Eclipse is initially used to develop in Java, and currently it is also used to develop in other programming language like C++, Python and PHP with plug-in.
-缺点:实测这个 IDE 打开速度比 Visual Studio 慢,而且这个 IDE 更新速度玄学,插件更新速度跟不上 IDE 的更新速度,所以对于经常更新的同学很不友好。
+Eclipse itself is a framework platform. However, supports from various plug-ins provides Eclipse good scalability. Therefore, many software developers choose Eclipse as the framework to develop their own IDE.
-优点:使用体验较好,而且许多知名公司都在使用,能够快速上手,所以比较推荐 OIer 用这个 IDE。
+Eclipse is originally the next generation IDE developed by IBM as an alternative of commercial software Visual Age for Java. In November 2001, it was donated to open-source community, and is now being managed by Eclipse, a non-profit organization.
-## 安装 & 配置指南
+Advantages:
+- Better experience;
+- Easy to get started.
-### 前置
+Drawbacks:
+- Eclipse is slower in opening than Visual Studio;
+- Unpredictable updating frequency, which means updating of plug-ins may not be not able to follow up Eclipse's.
-您需要安装 Java 和 MinGW。
+## Installation and Configuration Guide
-#### 下载并安装 Java
+For major linux distributions, Eclipse is already in their package repositories. This instruction is based on Microsoft Windows.
+
+### Perquisites
+
+You will need Java Runtime and MinGW.
+
+#### Download & Install Java Runtime
+
+As for August 18th, 2021, the latest Eclipse has integrated a Java runtime environment. You can also download an independent JRE from if needed.
+
+???+warning "Warning"
+ Eclipse builds after version 2020-09 require Java runtime environment newer than 11. However, most Java runtime installers obtained from Java.com are Java 8, which requires for readers to pay more attentions.
![](./images/eclipse1-1.png)
@@ -26,41 +41,43 @@ Eclipse 最初是由 IBM 公司开发的替代商业软件 Visual Age for Java
![](./images/eclipse1-3.png)
-#### 下载并安装 MinGW
+#### Download & Install MinGW/TDM-GCC
+
+TDM-GCC is a compiler suite for Microsoft Windows, providing latest stable GCC compiler and patched MinGW/MinGW-w64 runtime API.
-开始安装。
+The installer of TDM-GCC can be obtained from GitHub Release or SourceForge. Here we uses
+
+Start installation.
![](./images/eclipse1-4.png)
-选择版本。
+Select the version of installation.
![](./images/eclipse1-5.png)
-选择安装目录。
+Select installation directory. The default is `C:\TDM-GCC-64`
![](./images/eclipse1-6.png)
-选择镜像下载加速源,此处可以直接用 SourceForge Default。
+Select components to install. Here we proceed with default settings.
-![](./images/eclipse1-7.png)
+![](./images/eclipse1-9.png)
-完成安装。
+Finish Installation.
![](./images/eclipse1-8.png)
-### 安装主体
-
-#### 下载 Eclipse
+### Install Eclipse
-进入 Eclipse 官网,
+Heading to the homepage of Eclipse
![](./images/eclipse2.png)
-点击右面相对应系统的下载链接以下载 C++ 版本,
+Download the C++ version installer of your operating system.
![](./images/eclipse3.png)
-安装,然后如图填写目录信息以建造项目。
+Extract the compressed file downloaded and create a new project by entering directory information.
![](./images/eclipse4.png)
@@ -70,13 +87,13 @@ Eclipse 最初是由 IBM 公司开发的替代商业软件 Visual Age for Java
![](./images/eclipse7.png)
-## 拓展
+## Advanced Readings
-这个软件的帮助手册很详细,建议刚接触的同学多看帮助手册,多百度,并且这个 IDE 的使用手感与 Visual Studio 相近。
+The manual of Eclipse is detailed, therefore we recommend newly users to read the manual or Google when encountering problems. And Eclipse's feel of use is similar to Visual Studio.
-和 [VS Code](./vscode.md) 类似,Eclipse 中也提供了很多插件,这些插件可以让 Eclipse 变得更加易用。[^ref2]
+Similar to [Visual Studio Code](./vscode.md), Eclipse provides many plug-ins, which may help Eclipse be even easy to use.
-## 参考资料与注释
+## References and Footnotes
[^ref1]: [Eclipse - 维基百科](https://zh.wikipedia.org/wiki/Eclipse)
diff --git a/docs/tools/editor/emacs.md b/docs/tools/editor/emacs.md
index 53bea568..a3b286b7 100644
--- a/docs/tools/editor/emacs.md
+++ b/docs/tools/editor/emacs.md
@@ -1,198 +1,198 @@
author: ouuan, akakw1, Ir1d, partychicken, Xeonacid
-本页面为 Emacs 的入门教程。
+This article is a tutorial of Emacs.
-> 15 分钟入门 Emacs。
+> Getting started to Emacs in 15 minutes.
-## 简介
+## Introduction
-Emacs 是一款非常容易上手的编辑器,只需要简短的几行配置就能使用,但是想要非常熟练地使用 Emacs 进行各项工作还是需要一定的时间。
+Emacs is a editor which is easy to get started with simple few lines of configuration. However, to proficiently perform various works with Emacs still takes some times to getting familiar with.
-作为入门教程,这里仅介绍 Emacs 的基本功能,以及较方便地用 Emacs 编写、调试代码的方法。
+As an introductory tutorial, this article only introduce basic functions of Emacs, and a more convenient way to write and debug codes.
-## 入门
+## Getting Started
-### 命令
+### Command
-命令在 Emacs 中有很大的作用。
+Commands play an important role in Emacs.
-使用 Application 键[^note1](Windows 系统下 Emacs 未指定这个键,需要手动设置)或者快捷键 M-x(Alt+x)可以打开命令输入,输入完按下回车可以执行命令。
+To enter a command, press application key[^note1] (note that Emacs doesn't assign this key in Windows and need manual configuration) or shortcut key M-x (in Emacs, the Meta key is bound to Alt). After inputting press enter to execute.
-通常使用 `es` 或者 `eshell` 命令来打开 Eshell(类似一个终端)。
+Usually we use `es` or `eshell` to open a built-in terminal Eshell (similar to a terminal).
-输入命令通常可以用快捷键代替。
+Inputting commands usually can be replaced with shortcut keys.
-### 缓冲 (buffer)
+### Buffer
-缓冲即打开的文件和进程,在不保存的情况下,在缓冲中修改并不会修改到文件。
+Buffer means opened files and processes. When not saved, modifying in buffer wont affect actual file.
-在缓冲区的底部点击缓冲的名字或者使用快捷键可以切换缓冲。
+Buffers can be switched by clicking the name of buffer or using shortcut key.
-### 编译、调试和运行
+### Compile, Debug and Execute
-编译和调试功能的入口在顶部菜单栏的 Tools 下拉栏。使用者也可以通过命令或者自定义快捷键使用编译和调试功能。
+The entries of compile and debug are in top menu bar's "Tools" dropdown menu. User can also access it by commands or customized shortcut keys.
-可以使用终端或 Eshell 运行程序。
+Besides, one can execute programs through terminal or built-in Eshell.
-按下 Tools 中的调试 (gud-gdb) 后,输入程序名(一般会自动输好,但如果中途将程序另存为或者打开了两个需要调试的程序,**自动输好的文件名可能会有误**)即可开始调试。
+Debugging can be started after clicking *Debugger (GDB)*(gud-gdb) and inputting the file name. (Generally the file name should be autofilled, **but it may contain error** if performed "save-as" to the program or opened two need-to-debug programs.)
-### 分屏
+### Splitting Windows
-这个功能能让使用者同时查看各个缓冲的内容,而不需要来回切换缓冲,方便测试、调试代码。
+This feature enables users to check separate buffers at the same time without switching it. It is convenient to test and debug code.
-分屏功能可以同时显示多个窗口,用鼠标拖动窗口的边缘可以缩放窗口。
+Splitting windows allows multiple windows to be displayed simultaneously, and it can be resized by dragging the edge of a window using mouse.
-几个快捷键:
+Here lists some shortcut keys:
-- 删除分屏 "C-x 0":将这个分屏删去
-- 横向分屏 "C-x 3":将这个分屏横向分成两半
-- 纵向分屏 "C-x 2":将这个分屏纵向分成两半
+- Delete Window "C-x 0": Delete the selected window;
+- Horizontally Splitting "C-x 3": Split the selected window into two windows, positioned side by side;
+- Vertically Splitting "C-x 2": Split the selected window into two windows, one above another;
-推荐的窗口布局为将窗口分为四块:先横向分,调整一块的宽度约为 3/4 屏,作为编辑窗口。将另一块横向分,一块作为调试和编译信息显示的窗口,另一块再纵向分,一块打开输入文件,一块打开输出文件。
+The recommended layout is to divide the window into four parts: horizontally split first, adjust its width to approximate 3/4 of the screen as editing window; Split another part horizontally, the left half as the window displaying information from debugger and compiler; Split the right part vertically, one opens the input file, the other opens the output file.
![](./images/emacs.png)
-### 快捷键
+### Shortcut Keys
-Emacs 拥有极为丰富的快捷键,可以大幅提高工作的效率。使用者可以在配置中自定义快捷键或者设置快捷键的映射。
+Emacs has various shortcut keys, which can improve working efficiency dramatically. User can customize shortcut keys or define mapping of shortcut keys.
-由于快捷键过多,所以 Emacs 快捷键的使用与操作系统不同。
+Due to too many shortcut keys used by Emacs, they are different from system's.
-为了方便描述,做如下约定:
+For the convenience of description, we have the following agreements for shortcut key `C/M-?`:
-| 字符 | 键位 |
+| Character | Key |
| -- | --------------- |
| C | Ctrl |
| M | Alt |
-| ? | 任意键位 |
+| ? | Certain keys |
-一般有以下三种:
+Generally there are three kinds of shortcut keys description:
-- `F?`、`ESC`:直接按下对应的功能键。
-- `M-?`、`C-?`、`C-M-?`:按下Alt或者Ctrl的同时按下 `?`。
-- `? ?`:先按下第一个 `?` 代表的键,松开再按下第二个 `?` 代表的键。
+- `F?`, `ESC`:Straightforwardly press the described keys;
+- `M-?`, `C-?`, `C-M-?`: Press Alt or Ctrl or both with the `?` key;
+- `? ?`: Press the first `?` firstly. After released press the second `?`.
-下面是一些常用的快捷键:
+Here are some commonly used shortcut keys in default:
-- `C-x h`:全选
-- `C-x left`、`C-x right`:切换到上/下一个缓冲
-- `C-x d`:打开一个目录
-- `C-x C-f`:打开一个文件(如果不存在文件则新建文件)
+- `C-x h`: Select all;
+- `C-x left`, `C-x right`: Switch to previous or next buffer;
+- `C-x d`: Open a directory;
+- `C-x C-f`: Open a file. If not exist, create a new file and open it.
-## 个性化
+## Customize
-刚安装好的 Emacs 外观难看且不好使用,因此需要对其进行个性化设置。
+Freshly installed Emacs is ugly and inconvenient to use. Therefore, it is needed for customization.
-由于配置不好记,所以部分可以直接设置的部分建议不要记配置。
+As it is hard to memorize the configuration, we recommend not to memorize configurations which can be directly set.
-### 直接设置
+### Direct Setting Entries
-- Options:`Highlight Matching Parentheses` 高亮匹配括号
-- Options:`Blink Cursor` 设置光标闪烁
-- Options Show/Hide:`Tool Bar` 显示/不显示工具栏(默认显示,建议不显示)
-- Options:`Use CUA Keys` 勾选后可以使用 Ctrl + C,Ctrl + V 等快捷键进行复制粘贴
-- Options Customize-Emacs:`Custom Theme` 选择配色方案,选择完后需要点击保存
-- Options:`Save Options` **保存配置**
+- Options: `Highlight Matching Parentheses` Toggle whether to highlight matching parentheses or not;
+- Options: `Blink Cursor` Toggle whether cursor blinks or not;
+- Options Show/Hide:`Tool Bar` Toggle whether to show toolbar. The default is show and we recommend not to;
+- Options: `Use CUA Keys` When toggled, it allows one to use `C-c`, `C-v` to copy and paste;
+- Options Customize-Emacs:`Custom Theme` Choose the color scheme. Option needs to be saved after chosen;
+- Options:`Save Options` **Save the configuration.**
-### 配置
+### Configuration
-在 home 目录下显示隐藏文件(Windows 系统在 **用户目录** 的 `AppData\Roaming` 目录下),".emacs" 就是配置文件(如果没有说明之前没保存),打开修改即可。如果 Emacs 已打开,则需要重启 Emacs,配置才能生效。
+The configuration file is `~/.emacs`, which is a hidden file under user's home directory (or, `$HOME\AppData\Roaming` if using Windows). If Emacs is started, it needs to be restarted to apply the configurations.
-考场推荐的配置如下。
+For offline programming competition, a recommended configuration is listed below.
```text
-;;设置一键编译 可以自行添加参数 难背考场不建议使用 不建议依赖一键编译
+;;Configuration of one-key compile. You can add your arguments as will. Not recommend to use in offline competition. Not recommend to rely on.
(defun compile-file ()(interactive)(compile (format "g++ -o %s %s -g -lm -Wall" (file-name-sans-extension (buffer-name))(buffer-name))))
(global-set-key [f9] 'compile-file)
-;;;;设置编译快捷键(如果设置了一键编译不要与一键编译冲突)
+;;;;Configuration of shortcut key to compile. Note that not be conflict with one-key compile if it was set before.
;;(global-set-key [f9] 'compile)
-(global-set-key (kbd "C-a") 'mark-whole-buffer) ;;全选快捷键
-(global-set-key (kbd "C-z") 'undo) ;;撤销快捷键
-(global-set-key [f10] 'gud-gdb) ;;GDB调试快捷键
-(global-set-key (kbd "RET") 'newline-and-indent) ;;换行自动缩进
-(global-set-key (kbd "C-s") 'save-buffer) ;;设置保存快捷键
-(setq-default kill-ring-max 65535) ;;扩大可撤销记录
-
-;;C++ 代码风格 一般控制缩进规则
-;;;"bsd" 所有大括号换行
-;;;"java" 所有大括号不换行。else 接在右大括号后面
-;;;"awk" 只有命名空间旁、定义类、定义函数时的大括号换行。else 接在右大括号后面
-;;;"linux" 只有命名空间旁、定义类、定义函数时的大括号换行。else 接在右大括号后面。一般来说,这个风格应该有 8 格的空格缩进
+(global-set-key (kbd "C-a") 'mark-whole-buffer) ;;Shortcut key to select all
+(global-set-key (kbd "C-z") 'undo) ;;Shortcut key to undo
+(global-set-key [f10] 'gud-gdb) ;;Shortcut key to debug with GDB
+(global-set-key (kbd "RET") 'newline-and-indent) ;;New line with auto indent
+(global-set-key (kbd "C-s") 'save-buffer) ;;Shortcut key to save buffer to file.
+(setq-default kill-ring-max 65535) ;;Extend records that is able to undo
+
+;;The following entry controls style of C++ code, which is generally rules of indents.
+;;;"bsd" New line for every curly bracket.
+;;;"java" No new line for all curly bracket. `else` is after the right curly bracket.
+;;;"awk" Only insert new line when defining class or function or along with namespace. `else` is after the right curly bracket.
+;;;"linux" Only insert new line when defining class or function or along with namespace. `else` is after the right curly bracket. Generally, this style should have an indent of 8 spaces.
(setq-default c-default-style "awk")
```
-??? "完整配置"
- ```text
- ;;设置一键编译
+??? "Full Configurations"
+ ```text
+ ;;Configuration of shortcut key to one-key compile.
(defun compile-file ()(interactive)(compile (format "g++ -o %s %s -g -lm -Wall" (file-name-sans-extension (buffer-name))(buffer-name))))
(global-set-key [f9] 'compile-file)
- ;;;;设置编译快捷键(如果设置了一键编译不要与一键编译冲突)
+ ;;;;Configuration of shortcut key to compile. Note that not be conflict with one-key compile if it was set before.
;;(global-set-key [f9] 'compile)
- ;;考场必备
- (global-set-key (kbd "C-a") 'mark-whole-buffer) ;;全选快捷键
- (global-set-key (kbd "C-z") 'undo) ;;撤销快捷键
- (global-set-key [f10] 'gud-gdb) ;;GDB调试快捷键
- (global-set-key (kbd "RET") 'newline-and-indent) ;;换行自动缩进
- (global-set-key (kbd "C-s") 'save-buffer) ;;设置保存快捷键
- (setq-default kill-ring-max 65535) ;;扩大可撤销记录
- ;;(define-key key-translation-map [apps] (kbd "M-x")) ;; windows 系统下设置命令快捷键
-
- ;;设置缩进
- ;;;C++ 代码缩进长度。
+ ;;Necessary for offline competition
+ (global-set-key (kbd "C-a") 'mark-whole-buffer) ;;Shortcut key to select all
+ (global-set-key (kbd "C-z") 'undo) ;;Shortcut key to undo
+ (global-set-key [f10] 'gud-gdb) ;;Shortcut key to debug with GDB
+ (global-set-key (kbd "RET") 'newline-and-indent) ;;New line with auto indent
+ (global-set-key (kbd "C-s") 'save-buffer) ;;Shortcut key to save buffer to file.
+ (setq-default kill-ring-max 65535) ;;Extend records that is able to undo
+ ;;(define-key key-translation-map [apps] (kbd "M-x")) ;; For Windows, assign shortcut key for command.
+
+ ;;Configurations for indents
+ ;;;Basic indent offset for C++.
(setq-default c-basic-offset 4)
- ;;;使用 tab 缩进
+ ;;;Use tab for indent.
(setq-default indent-tabs-mode t)
- ;;;tab 的长度。务必和缩进长度一致
+ ;;;Default width for a tab. Should be same to indent.
(setq-default default-tab-width 4)
(setq-default tab-width 4)
- ;;设置默认编码环境
+ ;;Configuration for default encoding environment.
(set-language-environment "UTF-8")
(set-default-coding-systems 'utf-8)
- ;;不显示欢迎页面
+ ;;Not to display welcome screen.
(setq-default inhibit-startup-screen t)
- ;;设置标题
+ ;;Set title
(setq-default frame-title-format "")
- ;;显示行号
+ ;;Display line number
(global-linum-mode t)
- ;;高亮
- (global-hl-line-mode 1);;高亮当前行
- (show-paren-mode t);;高亮匹配括号
- (global-font-lock-mode t);;语法高亮
+ ;;Highlight
+ (global-hl-line-mode 1);;Highlight current line
+ (show-paren-mode t);;Highlight brackets
+ (global-font-lock-mode t);;Syntax highlighting
- ;;允许emacs和外部其他程序的粘贴 好像默认允许
+ ;;Enable paste from and to external programs.
(setq-default x-select-enable-clipboard t)
- ;;设置字体是 Ubuntu Mono 的 16 号,如果字体不存在会报错
+ ;;Set font to Ubuntu Mono with size of 16
(set-default-font "Ubuntu Mono-16")
- ;(set-default-font "Consolas-16") ;; windows 系统请用这条
+ ;(set-default-font "Consolas-16") ;; For Windows, it is recommended to use Consolas.
- ;;鼠标滚轮支持
+ ;;Enable support for mouse wheel
(mouse-wheel-mode t)
- ;;设置光标形状为竖线(默认为方块)
+ ;;Set cursor type to bar. The default is a filled box.
(setq-default cursor-type 'bar)
- ;;回答 yes/no 改成回答 y/n
+ ;;Replace `yes/no` with `y/n`
(fset 'yes-or-no-p 'y-or-n-p)
- ;;透明度
+ ;;Opacity
(set-frame-parameter (selected-frame) 'alpha (list 85 60))
(add-to-list 'default-frame-alist (cons 'alpha (list 85 60)))
- ;;减少页面滚动的行数,防止整页地滚动
+ ;;Reduce the number of lines when scrolling the page to avoid scrolling through the entire page.
(setq-default scroll-margin 3 scroll-conservatively 10000)
- ;;优化文件树结构
+ ;;Optimize the structure of file tree
(ido-mode t)
- ;;配色方案
+ ;;Color scheme
(setq default-frame-alist
'((vertical-scroll-bars)
(top . 25)
@@ -220,26 +220,27 @@ Emacs 拥有极为丰富的快捷键,可以大幅提高工作的效率。使
(custom-set-variables
'(ansi-color-faces-vector
[default default default italic underline success warning error])
- ;;启动 Ctrl-x Ctrl-c Ctrl-v = 剪切 复制 粘贴
+ ;;Enable C-x, C-c, C-v for cut, copy and paste
'(cua-mode t nil (cua-base))
'(show-paren-mode t)
- ;;隐藏工具栏
+ ;;Hide toolbar
'(tool-bar-mode nil))
- ;;关闭光标闪烁
+ ;;Toggle cursor blink off
'(blink-cursor-mode nil)
(custom-set-faces)
- ```
+ ```
-### 拓展阅读
+### Advanced Reading
+
-要以终端模式启动 Emacs,在启动时添加参数 `-nw`。Emacs 有多种变体,如采用 native-comp 来减少延迟的 [GCC Emacs](http://akrl.sdf.org/gccemacs.html) 及其纯 GTK 版本变体、针对 macOS 优化的 Emacs Macport。
+To start Emacs in terminal, start it with arguments `-nw`. Emacs has many variants, e.g., [GCC Emacs]() which uses native-comp to reduce latency and its pure GTK variant, Emacs Macport which is optimized for macOS.
-Emacs 有中心化的软件仓库,配置后可通过 `M-x package-install` 来安装插件。使用 [镜像站](https://mirrors.bfsu.edu.cn/help/elpa/) 可以加快下载速度。
+Emacs has a centralized software repository. After configured one can install extensions by `M-x package-install`. Using a Mirror([Example](https://mirrors.bfsu.edu.cn/help/elpa/). Find your nearest!) is helpful to accelerate download speed.
-Emacs 可以使用语言服务器(Language Server Protocol)来提高编辑体验,目前推荐的 C++ 后端是 [Clangd](https://clangd.llvm.org/)。前端可以采用 [Eglot](https://github.com/joaotavora/eglot) 或 [Emacs LSP](https://emacs-lsp.github.io/lsp-mode/),参阅 [此条目](https://github.com/joaotavora/eglot#historical-differences-to-lsp-modeel) 可能对选择前端有所帮助。
+Emacs can work with Language server protocol to improve editing experience. Currently the recommended backend for C++ is [Clangd](https://clangd.llvm.org/). The frontend can be [Eglot](https://github.com/joaotavora/eglot) or [Emacs LSP](https://emacs-lsp.github.io/lsp-mode/). [This article](https://github.com/joaotavora/eglot#historical-differences-to-lsp-modeel) may be helpful when choosing frontend.
-拓展名为 `.org` 的 Org Mode 文档可以通过 [Pandoc](https://pandoc.org/) 转换为 Markdown 文档。
+Org Mode documents with extension of `.org` can be transformed to Markdown through [Pandoc](https://pandoc.org/)
-## 参考资料与注释
+## References and Footnotes
-[^note1]: 该键的作用是调出鼠标右键菜单,一般为右Ctrl左边的第一个键。
+[^note1]: Or the menu key. The key's primary function is to launch a context menu. Usually it is the first key left to Ctrl.
diff --git a/docs/tools/editor/geany.md b/docs/tools/editor/geany.md
index 2a778c43..76a6653d 100644
--- a/docs/tools/editor/geany.md
+++ b/docs/tools/editor/geany.md
@@ -2,49 +2,47 @@ author: xingjiapeng, MingqiHuang
# Geany
-Geany 是一个轻量、便捷的编辑器,对于 Linux 环境下的初学者较为友好。
+Geany is a lightweight, easy-to-use text editor. It is friendly for beginners in Linux environment.
-与 Dev-C++ 一样,它可以编译运行单个文件。
+Like Dev-C++, it supports single file compilation but is compatible in Linux, Windows and macOS.
-不过,它可以在 Linux/Windows/macOS 下运行。
+The homepage of Geany is
-其官网为:
+## Pros & Cons
-## 优缺点
+### Pros
-### 优点
+1. Lightweight;
+2. Support for single file compilation;
+3. No much need to configure;
+4. Cross-platform.
-1. 轻量;
-2. 可以编译运行单个文件;
-3. 不需要太多配置;
-4. 跨平台。
+### Cons
-### 缺点
+1. Not many users;
+2. An issue relating to permission was reported in macOS Catalina [^1].
+3. No syntax highlighting by default when creating a new document. You may need to manually choose filetype.
-1. 没有太多人使用;
-2. 在 macOS Catalina 下有一些权限问题[^1];
-3. 新建文件时,默认不会有语法高亮,需要手动切换文件类型。
-
-## 安装
+## Installation
### Windows/macOS
-在官网上下载安装包安装
+It is simple - just download installer from its official site and install it.
### Linux
-#### 方法一
+#### Using Package Manager
-使用包管理器进行安装,如在 Ubuntu 或 NOI Linux 中,运行
+Linux users can install Geany via package managers. For example, in debian-based distributions like Ubuntu or NOI Linux, run the following command and it will be automatically installed:
```bash
sudo apt install geany
```
-#### 方法二
+#### Build from Source
-1. 从官网下载源码
-2. 终端下运行:
+1. Obtain sources from its repository or homesite
+2. Run the following commands in terminal:
```bash
./configure
@@ -52,43 +50,43 @@ make
sudo make install
```
-如遇到 `No package 'gtk+-2.0' found` 可能需要安装 `libgtk2.0-dev`。
+Note: you may need install a dependency `libgtk2.0-dev` if it reports `No package 'gtk+-2.0' found`.
-## 使用技巧
+## Tricks
-### 切换文件类型
+### Switch filetype
-在*文档 -> 设置文件类型*中进行切换。
+Click `Document -> Set Filetype` to switch filetype.
-如 C++ 语言,点击*文档 -> 设置文件类型 -> 编程语言 -> C++ 源文件*,即可看到文件已被转换为 C++ 语言的语法高亮了。
+For example, click `Document -> Set Filetype -> Programming Source -> C++ Source`, and you will see its syntax highlighting has been converted to C++.
-### 设置文件模板
+### Set File Template
-在配置文件目录下建立 templates/files 文件夹,建立在其中的文件即为模板文件,再次打开 Geany,就可以在*文件 -> 从模板新建*中找到它了。
+Create a new folder `templates/files` under configuration directory, with template files inside. Restart Geany, and you will find `File -> New (With Template)` in menu bar.
-配置文件目录可以通过*帮助 -> 调试信息*的第二、三行找出。
+The current configuration file path can be found in the second and third line of `Help -> Debug Message`.
-这里给出 macOS 和 Linux 下的默认模板配置文件目录:
+The following is default configuration file path of templates for macOS and Linux:
-- 系统目录:`/usr/share/geany/templates/files/`
-- 用户目录:`~/.config/geany/templates/files/`[^2]
+- System-wide directory: `/usr/share/geany/templates/files/`
+- User directory: `~/.config/geany/templates/files/`[^2]
-## 常见问题
+## Troubleshoot
-### 兼容深度终端
+### Compatibility with Deepin Terminal
-在*首选项 -> 工具 -> 虚拟终端*,修改终端的命令为:
+In `Edit -> Preferences -> Tools -> Terminal`, replace it with the following command:
```bash
deepin-terminal -x "/bin/sh" %c
```
-点击“应用”按钮即可。[^3]
+And click `Apply` to apply changes.
-## 参考资料与注释
+## References & Footnotes
-[^1]: 详见:
+[^1]:
-[^2]: 来源:
+[^2]:
-[^3]: 来源:Deepin Wiki
+[^3]: Deepin Wiki
diff --git a/docs/tools/editor/images/Dev-C++-10.png b/docs/tools/editor/images/Dev-C++-10.png
index ca2bb922..e13d7c07 100644
Binary files a/docs/tools/editor/images/Dev-C++-10.png and b/docs/tools/editor/images/Dev-C++-10.png differ
diff --git a/docs/tools/editor/images/Dev-C++-11.png b/docs/tools/editor/images/Dev-C++-11.png
index c12b2114..e07c85c4 100644
Binary files a/docs/tools/editor/images/Dev-C++-11.png and b/docs/tools/editor/images/Dev-C++-11.png differ
diff --git a/docs/tools/editor/images/Dev-C++-12.png b/docs/tools/editor/images/Dev-C++-12.png
index 380a87d3..103bbe93 100644
Binary files a/docs/tools/editor/images/Dev-C++-12.png and b/docs/tools/editor/images/Dev-C++-12.png differ
diff --git a/docs/tools/editor/images/Dev-C++-13.png b/docs/tools/editor/images/Dev-C++-13.png
index 57d26c1d..5b1fee54 100644
Binary files a/docs/tools/editor/images/Dev-C++-13.png and b/docs/tools/editor/images/Dev-C++-13.png differ
diff --git a/docs/tools/editor/images/Dev-C++-14.png b/docs/tools/editor/images/Dev-C++-14.png
index 686cc873..f02bd355 100644
Binary files a/docs/tools/editor/images/Dev-C++-14.png and b/docs/tools/editor/images/Dev-C++-14.png differ
diff --git a/docs/tools/editor/images/Dev-C++-15.png b/docs/tools/editor/images/Dev-C++-15.png
index cc8936ec..d4671ab3 100644
Binary files a/docs/tools/editor/images/Dev-C++-15.png and b/docs/tools/editor/images/Dev-C++-15.png differ
diff --git a/docs/tools/editor/images/Dev-C++-16.png b/docs/tools/editor/images/Dev-C++-16.png
index b81ebdb1..2b80523d 100644
Binary files a/docs/tools/editor/images/Dev-C++-16.png and b/docs/tools/editor/images/Dev-C++-16.png differ
diff --git a/docs/tools/editor/images/Dev-C++-17.png b/docs/tools/editor/images/Dev-C++-17.png
index fd336a46..a15b9b4d 100644
Binary files a/docs/tools/editor/images/Dev-C++-17.png and b/docs/tools/editor/images/Dev-C++-17.png differ
diff --git a/docs/tools/editor/images/Dev-C++-9.png b/docs/tools/editor/images/Dev-C++-9.png
index f99c9b97..81b56c4f 100644
Binary files a/docs/tools/editor/images/Dev-C++-9.png and b/docs/tools/editor/images/Dev-C++-9.png differ
diff --git a/docs/tools/editor/images/vscode-4.png b/docs/tools/editor/images/vscode-4.png
index cc8a0645..0be17c11 100644
Binary files a/docs/tools/editor/images/vscode-4.png and b/docs/tools/editor/images/vscode-4.png differ
diff --git a/docs/tools/editor/images/vscode-5.apng b/docs/tools/editor/images/vscode-5.apng
new file mode 100644
index 00000000..4639f9f5
Binary files /dev/null and b/docs/tools/editor/images/vscode-5.apng differ
diff --git a/docs/tools/editor/images/vscode-5.gif b/docs/tools/editor/images/vscode-5.gif
deleted file mode 100644
index 5b817ea4..00000000
Binary files a/docs/tools/editor/images/vscode-5.gif and /dev/null differ
diff --git a/docs/tools/editor/images/vscode-8.png b/docs/tools/editor/images/vscode-8.png
new file mode 100644
index 00000000..954b1766
Binary files /dev/null and b/docs/tools/editor/images/vscode-8.png differ
diff --git a/docs/tools/editor/kate.md b/docs/tools/editor/kate.md
index c6020a93..729a56d0 100644
--- a/docs/tools/editor/kate.md
+++ b/docs/tools/editor/kate.md
@@ -1,62 +1,65 @@
-author: CoelacanthusHex
+author: CoelacanthusHex, CamberLoid (as translator)
-## 软件简介
+Last Translate: [622a787](https://github.com/OI-wiki/OI-wiki/commit/622a78786265bed1c5c09882072aca9003490534) on August 22, 2021.
-Kate 是一个具有众多功能的跨平台文本编辑器。Kate 还附带了多种插件,包括一个嵌入式终端,可以让你直接从 Kate 中启动控制台命令,强大的搜索和替换插件,以及一个预览插件,可以渲染 MD、HTML 甚至 SVG 文件。支持通过交换文件在系统崩溃时恢复数据,带参数提示的自动补全,同时支持 [LSP (Language Server Protocol)](https://microsoft.github.io/language-server-protocol/) 以获得更为强大的补全。
+## Introduction
-## 下载与安装
+Kate is a feature-packed cross-platform editor. It comes with a variety of plugins, including an embedded terminal that lets you launch console commands directly from Kate, powerful search and replace plugins, and a preview plugin that is able to show markdown, HTML and even SVG file. Kate supports swap files to recover data on system crash, auto complete with argument hints, and [LSP (Language Server Protocol)](https://microsoft.github.io/language-server-protocol/) for more powerful auto complete.
-可打开 [Kate 官网](https://kate-editor.org/),然后进入 [获取页面](https://kate-editor.org/zh-cn/get-it/)。随后,根据你使用的系统和喜欢的安装方式进行安装。接下来以 Windows 为例讲解安装。
+## Download and Installation Guide
-![Windows 上的安装方式](images/kate-1-windows-install-1.png)
+One can visit [the homepage and Kate](https://kate-editor.org) and enter [the get-it page](https://kate-editor.org/get-it/). For major GNU/Linux distributions, Kate is already included in their package repositories with out-of-the-box feature. In the following guide we take Microsoft Windows as an example to explain how to install.
-如图,从上到下依次为从 MS Store 安装,通过 Chocolatey 安装,下载 Kate 正式版安装包,下载 Kate 每夜构建版安装包和下载源码手动构建。从 MS Store 安装只需点击链接然后点击安装即可;通过 Chocolatey 安装则需要打开命令行输入 `choco install kate`;接下来两个则需首先点击链接,然后你将看到如下界面:
+![Installation method on Windows](images/kate-1-windows-install-1.png)
+
+As shown in the illustration, they are install via MS Store, install via Chocolatey, download a stable release installer, download a nightly build installer, and build it from source. To install via Microsoft Store, just follow the link and install it; To install it via Chocolatey (if chocolatey is installed), one need to open Powershell and type `choco install kate`; To install via other two installer options one needs to follow the link and then he/she may see a page similar to the following screenshot:
![](images/kate-2-windows-install-2.png)
-其中形如 `kate-21.04.0-1-1272-windows-msvc2019_64-cl-sideload.appx` 格式的是供手动安装的商店版本,`kate-21.04.0-1-1272-windows-msvc2019_64-cl.exe` 格式的则是安装包,下载双击即可。
+Where installer with `.appx` extension is the package of Microsoft Store version but requires manually installation, while installer with `.exe` is an executable installer. For both of them, just download and double-click to install.
+
+## Usages and Features
-## 用法与功能
+### Swap Files to Avoid Data Loss
-### 交换文件防止数据丢失
+Similar to Vim, Kate will write unsaved modified buffer to a swap file, generally named with `.kate-swp` extension after the original file name. If accident happens, like power failure or program crash, unsaved modifications won't be lost in the next start.
-与 Vim 类似,Kate 会将未保存的更改写入一个交换文件(一般是原文件名前面加点后面加 `.kate-swp`),如果遭遇断电或程序崩溃等意外,下次启动时不会丢失未保存的更改。
+### Syntax Highlighting
-### 代码高亮
+Kate supports syntax highlighting for over 300 languages. Generally, Kate will choose the correct language to apply syntax highlighting. However, when Kate makes mistake on syntax highlighting, one can select the correct language manually by clicking the button in the right bottom corner.
-Kate 支持三百余种语言的语法高亮。一般来说,Kate 可以自动地选择对应的语言进行语法高亮,不过偶尔也有错误的时候,这时候可以点击最右下角的按钮,选择正确的语言。
+#### Write Your Own Syntax Definition Files
-#### 自己编写语法高亮文件
+Despites the supports of syntax highlighting for over 300 languages, it is unable to avoid some language from being not covered. In this situation, users can write their syntax highlight definition files.
-尽管 Kate 支持超过三百种语言的语法高亮,但是仍不免有语言未被覆盖到,此时可以自己动手编写语法高亮文件。
-Kate 自身自带的文件位于 [Syntax Highlighting Powered By KSyntaxHighlighting Framework](https://kate-editor.org/syntax/),语法可参照 [Working with Syntax Highlighting](https://docs.kde.org/trunk5/en/kate/katepart/highlight.html),编写好的文件根据 [Syntax definition files](https://github.com/KDE/syntax-highlighting#syntax-definition-files) 放置。[CoelacanthusHex/dotfiles@80a913c/pam_env.xml](https://github.com/CoelacanthusHex/dotfiles/blob/80a913cc5b90d7878eb0ed77b8df2d9b97926272/kate/.local/share/katepart5/syntax/pam_env.xml) 有我编写的一个配置文件可供参考。
+A list of built-in definition files is here: [Syntax Highlighting - Kate](https://kate-editor.org/syntax/). For grammar, one can refer to [Working with Syntax Highlighting](https://docs.kde.org/trunk5/en/kate/katepart/highlight.html) when writing. To install or test a syntax definition file after finishing writing, place it according to [Syntax definition files](https://github.com/KDE/syntax-highlighting#syntax-definition-files). [CoelacanthusHex/dotfiles@80a913c/pam_env.xml](https://github.com/CoelacanthusHex/dotfiles/blob/80a913cc5b90d7878eb0ed77b8df2d9b97926272/kate/.local/share/katepart5/syntax/pam_env.xml) is a definition file written by the author for reference.
-### 切换语言
+### Switch Editor Language
-点击上方工具栏里的 `设置`/`Setting`,然后点击 `配置语言`/`Configure Language`,随后选择语言即可,注意可以选择备选语言。
+Click the `Setting` in the menu bar, and select `Configure Language`, then select the editor language. Note that one can select a fallback language.
-### 编码与行尾符
+### Encoding and EOL
-Kate 可以自动识别当前文件使用的是什么编码,如果识别错误,可以点击右下角倒数第二个按钮,选择正确的编码。
+Kate is able to detect the encoding of current editing file. In case of mistakenly detection, the user can select the correct encoding manually by clicking the fourth button in thr right bottom corner.
-同时,Kate 也可以自动识别当前文件使用的行尾符,如果识别错误,可以点击 `工具`→`行尾`/`Tool`→`End of line` 选择正确的行尾符。
+Besides, it is able to detect the end-of-line symbol of the current file. In case of mistakenly detection, the user can click `Tool` in the menu bar, and then select `End of line` to select the correct end-of-line symbol manually.
-### 查找与替换
+### Search and Replace
-依次单击 `编辑`→`查找`(快捷键Ctrl+F)即可打开“查找”页面。依次单击 `编辑`→`替换`(快捷键Ctrl+R)即可打开“查找与替换”页面。同时,点击左下角 `搜索与替换` 也可打开“查找与替换”页面。
+Click `Edit`→`Find` (Shortcut: Ctrl + F) to open the incremental search bar in the bottom. Click `Edit`→`Replace` (Shortcut: Ctrl + R) to open the power search and replace bar in the bottom. Besides, clicking the `Search and Replace` button in the left bottom will also open the Search in Files tool view.
-具体操作和其他编辑器并无太大差别,但是支持一些额外的特性,例如:
+The detailed usage is not much different from other editors. However, Kate supports some extra features, such as:
-1. 是否区分大小写
-2. 支持正则表达式(包括捕获组)
-3. 从当前文件到多文件再到当前工程不等的范围
-4. 对查找的结果进行选择替换
+1. Case sensitive;
+2. Support of Regular Expression, including capturing group feature;
+3. The rance from current file to multi files, and even the current project;
+4. Perform replacing the result of searching.
### Language Server Protocol
-Kate 自 19.12 起支持 LSP Client,最初仅支持 C/C++、D、Fortran、Go、Latex/BibTeX、OCaml、Python、Rust,现如今支持如下表中的语言:
+Kate supports LSP Client since version 19.12. In the beginning, it only supports C/C++, D, Fortran, Go, LaTeX/BibTeX, OCaml, Python, Rust. And now it supports languages lists below:
-| 语言 | LSP Server |
+| Language | LSP Server |
| :--------: | :------------------------------------------------------------------------------------: |
| Bash | [bash-language-server](https://github.com/bash-lsp/bash-language-server) |
| LaTeX | [texlab](https://texlab.netlify.com/) |
@@ -76,11 +79,11 @@ Kate 自 19.12 起支持 LSP Client,最初仅支持 C/C++、D、Fortran、Go
| R | [RLanguageServer](https://github.com/REditorSupport/languageserver) |
| zig | [zls](https://github.com/zigtools/zls) |
-当打开对应语言的文件时,Kate 会自动拉起对应的 LSP Server。
+To enable LSP and related features, the user need to visit `Settings` → `Configure Kate` in menu bar, the go to `Plugins` and toggle on `LSP Clients`. When open a file in a specific language, Kate will automatically call the appropriate LSP server.
-#### 增加配置
+#### Manually Add Configuration
-此外,用户还可以手动编写配置,具体格式为:
+Furthermore, users can also write their LSP configuration file manually. Here is an example:
```json
{
@@ -120,44 +123,64 @@ Kate 自 19.12 起支持 LSP Client,最初仅支持 C/C++、D、Fortran、Go
}
```
-其中 `server` 里的每一项代表一种语言,在这个语言里,`command` 代表启动 LSP Server 所使用的命令,`command` 是一个数组,是所需要执行的命令以空格分词的结果;`url` 是 LSP 的网址;`rootIndicationFileNames` 是用于确定项目根目录的文件;`highlightingModeRegex` 则匹配某种语法高亮的名字,以确定使用哪个 LSP;如果存在 `use` 项,则代表使用 `use` 项对应的语言的配置。
+In which, each item in `server` represents a language. For this language, the array `command` represents the command to spin up an LSP Server, the elements in which is a result of the actual command split by a space; The `url` represents the website of the LSP Server; `rootIndicationFileNames` represent the file used to determine the root directory of a project; `highlightingModeRegex` is used to determine which LSP to use by matching the name of specific syntax highlighting; If `use` exist then its value represents the syntax highlighting configuration with the name to use.
+
+The configuration is located in `Setting`→`Configure Kate`→`LSP Client`→`User Server Settings`, where `LSP Client` is available after enabling it in `Plugins`.
-该配置项位于 `设置`→`配置 Kate`→`LSP 客户端`→`用户服务器设置`。
+### Embedded Terminal
-### 内置终端
+???+note "For Windows Users"
+ The embedded terminal depends on Konsole of KDE, which is an exclusive package in *nix. In result, the feature is unavailable in Windows.
-按F4可打开或关闭内置终端,也可点击左下角 `终端` 按钮打开,内置终端的当前目录会自动与当前文件保持一致,并随着你选择的文件而改变。其余与一般终端并无太大不同。
+Pressing F4 or clicking `Terminal Panel` located in the left bottom corner can open or close the embedded terminal. The working directory will automatically be the same of the current editing file, and will follow the change of the file selected. The rest are not much different from general terminals.
-### 外部工具
+### External Tools
-点击 `工具`→`外部工具` 可执行。
+To execute an external tool, click `Tools`→`External Tools` in menu bar and pick the tool you want.
-点击 `工具`→`外部工具`→`配置` 可以配置外部工具。
+To configure external tools, click `Tools`→`External Tools`→`Configure` in menu bar.
-#### 添加外部工具
+#### Add External Tools
-##### 从预置配置中添加
+##### Add Tools from Defaults
-进入配置页面后,点击左下角 `添加`→`从默认工具添加`,然后点击对应工具即可。
+After entering settings, click `Add`→`Add Tool from Defaults`, and select the specific tool to add.
-##### 手写配置添加
+##### Add Tools manually
-进入配置页面后,点击左下角 `添加`→`添加工具`,然后按提示填写即可。注意可点击如下标志查看可使用的变量。
+After entering settings, click `Add`→`Add Tool`, and fill the blanks. One can refer to [this documentation](https://docs.kde.org/trunk5/en/kate/kate/kate-application-plugin-external-tools.html) when writing his/her own configurations. Note that one can click the icon to see available variables.
![](images/kate-3-var.png)
-#### 常用的外部工具
+#### Frequently Used External Tools
+
+##### Compile and Run CPP
+
+For \*nix operating system, open any C++ source file, find and click `Compile and Run cpp` in external tools.
-##### 编译并执行单个 C++ 文件
+???+note "For Windows Users"
+ By default, because of the executable is `sh`, it is unable to use this tool in Windows. However, user can modify the tool manually to make it available to Windows.
-打开任意 C++ 源文件,在外部工具里找到 `编译执行 cpp`,点击即可。
+ To apply modification, make sure your operating system has a C++ compiler. Then add `Compile and Run cpp` from default, replacing `sh` in executable with `powershell`, arguments with `-ExecutionPolicy Bypass -Command "g++ %{Document:FilePath} -o %{Document:FileBaseName}.exe;./%{Document:FileBaseName}.exe"`. [^note1][^note2]
##### Git Blame
-打开任意文件,在外部工具里找到 `git blame`,点击之后,会打开一个窗口,展示 git blame 的结果。
+Open any file, find `git blame` in external tools. After clicking, a window will show up to represent the result of `git gui blame (file)`
+
+##### Formatting
+
+The formatting features requires availability of specific package or executable, e.g., C/C++ requires the availability of `clang-format`. For other language, user can refer to the executables in default configuration of external tools.
+
+Open any source file, find and click `xxx Format Full File/Selected Text`. Note that for source files in C/C++, `clang-format` is able to format selected text.
+
+## See Also
+
+- [The Kate Handbook](https://docs.kde.org/stable5/en/kate/kate/kate.pdf)
+- [About How to Write Your Own Configuration of LSP Clients](https://docs.kde.org/trunk5/en/kate/kate/kate-application-plugin-lspclient.html#Configuration)
+- [About How to Write Your Own Configuration of External Tools](https://docs.kde.org/trunk5/en/kate/kate/kate-application-plugin-external-tools.html)
-##### 格式化
+## References and Footnotes
-打开任意源文件,在外部工具里找到 `用 xxx 格式化`,点击即可。
+[^note1]: If `g++` is not in the `PATH` environment variables, replace it with its absolute path.
-此处注意,`clang-format` 可格式化选中的文本。
+[^note2]: Or, if using Clang instead, replace `g++` with `clang++`.
\ No newline at end of file
diff --git a/docs/tools/editor/npp.md b/docs/tools/editor/npp.md
index 8cc92468..c702a07f 100644
--- a/docs/tools/editor/npp.md
+++ b/docs/tools/editor/npp.md
@@ -1,33 +1,37 @@
author: ouuan, CBW2007, partychicken, StudyingFather, Xeonacid, Henry-ZHR
-## 软件简介
+This article was last translated on August 31st, 2021, with commit []().
-Notepad++ 是 Windows 操作系统下的文本编辑器,支持多国语言、多种编码、多种编程语言的高亮和补全。它的 logo 也十分可爱,是一只变色龙(![npp-logo](./images/npp-logo.webp))
+## Introduction
-其功能比其他许多编辑软件强大许多,打开大文件时更加稳定,不断撤销不会出问题。关闭时也不需要保存,它会自动为你保存在缓冲区中。(可能需要配置)而且,它十分小巧,只有 10MB+,甚至可以放在 U 盘中随身携带。
+Notepad++ is a text editor running in Windows. It has support of a variety of languages, encodings, and also highlighting and autocomplete for various programming languages. Its logo is cute too. ![npp-logo](./images/npp-logo.webp)
-## 下载与安装
+Its features are more powerful than other editors=, such as, more stable when opening large files, and no problems when performing undo repeatedly. No need to manually save when closing a file because it automatically saves it into buffer. Besides, when correctly configured, its size will be as small as 10MB, even able to be portable in your USB flash device.
-**注意:该文章统一使用 7.7.1 版本做演示,但是最新版本与演示版本不会有太大差别,为了获得更好的使用体验,请尽量使用最新版。**
+## Download and Installation
-打开 [软件官网](https://notepad-plus-plus.org/) 或 [可靠的第三方网站](https://notepad-plus.en.softonic.com/),去到 [Download](https://notepad-plus-plus.org/downloads) 页面并选择版本(推荐最新版),然后进入软件下载页面。**注意选择处理器架构**(32 位或 64 位)。如果电脑是 64 位,强烈建议下载 64 位,因为大多数插件只支持 64 位;如果渴望兼容性,请下载 32 位。如果网络不好,可以选择各种软件园(有风险)。
+???+note "Attention"
+ This original guide uses version 7.7.1 as a demo, and the translated version uses 8.1.3. However, the latest build won't be much different from demo. For better experience, please use the latest build as much as possible.
-有 3 种安装方法:
+To download the software, visit the [home page](https://notepad-plus-plus.org/) or [some reliable third-party website], click [Download](https://notepad-plus-plus.org/downloads) page and choose the version to download (the latest is recommended). **Please pay attention to the processor architecture(32-bit x86, 64-bit x64 or ARM64).** We strongly recommend to download 64-bit x64 build if you processor's architecture is x86_64, as most plug-ins only support 64-bit build of Notepad++. In case of compatibility, you can also choose 32-bit build.
-1. installer——安装包模式,当你没有任何其他想法时的推荐模式。
-2. zip/7z package——压缩包模式,当你不想用安装包时可以直接下载 -> 解压 -> 使用。
-3. minimalist package——迷你模式,没有主题、插件和升级包,下载、安装更快捷。
+There is three ways to install:
-这里用安装包模式做演示:
+1. Installer: The traditional way to install;
+2. Compressed Package: All files are in a compressed package. Only requires decompress and ready-to-go. Helpful when you are not likely to use installer.
+3. Minimalist Compressed Package: No theme, no plug-ins and patches.
+
+Here uses installer as an example:
![npp-install-1](./images/npp-install-1.png)
-双击安装包,进入安装界面,选择语言,接受协议,选择安装位置不在赘述,接下来选择安装内容:
+
![npp-install-2](./images/npp-install-2.png)
-有一项是后期补的,不要在意(捂脸)。
-
+
+
![npp-install-3](./images/npp-install-3.png)
-最后一步,两个选项。第一个是创建桌面快捷方式,第二个是“不要用 %APPDATA%”,当你想要装在 U 盘里使用时务必勾选。
-
-最后点击“安装”开始安装。
-
-## 更改界面语言
+The second option, "Don't use %APPDATA%", is helpful when the user want to install it to a portable device.
-![npp-lang](./images/npp-lang.gif)
+## Getting Started
-语言改完了,就可以随心所欲地魔改编辑器啦!
+In this section, we mainly talk about fundamental and outstanding features.
-## 初级玩法
+### Find and Replace
-这里主要讲一些基础和特色功能。
-
-### 查找与替换
-
-依次单击“(菜单栏)搜索”->“查找”(快捷键 `CTRL`+`F`)即可打开“查找”页面(如下图)。
+To open a "Find" window, click `Search` -> `Find` in the menubar, or shortcut key Ctrl + F.
![npp-search](./images/npp-search.png)
-依次单击“(菜单栏)搜索”->“替换”(快捷键 `CTRL`+`H`)即可打开“替换”页面(如下图)。
+To open a `Replace` window, click `Search` -> `Replace` in the menubar, or press shortcut key Ctrl + H.
![npp-replace](./images/npp-replace.png)
-查找、替换之间其实是一个窗口,单击上面的标签页就可以完成切换。
+Actually, both of them are different tabs of the same window, and the user can switch between them by clicking the tabs.
-其功能与普通编辑器大同小异,但是支持更多,如:
+The search-and-replace feature of Notepad++ is not much different with other editors', but it has more supports, such as:
-1. 严格匹配或大小写匹配等
-2. 跨文档匹配
-3. 转义字符,如'\\r','\\n'。
-4. 正则表达式
-5. 计数
+1. Strict match, or case-sensitive match;
+2. Match in all opened documents;
+3. Escape characters, e.g., '\\r', '\\n';
+4. Regular expressions;
+5. Counting
-### 定期备份
+### Periodic Backup
![npp-settings-1](./images/npp-settings-1.png)
-有了这个功能,就可以不用费心地担心意外情况代码丢失啦!
+With this feature, the user may less worry about accidentally progression lost.
-但是,这个功能只是为你的文件拍了一个快照,并没有真正保存,所以还是建议要有良好的保存习惯。或者说可以去自带插件商店安装 "Auto Save" 插件(详见 [高级玩法 -> 插件](./#_14),下同)
+However, this feature only takes snapshot for your editing files but not actually save. So it is recommended to have a good habit of saving. The user can also enable `Auto Save` plugin from built-in plugins. To learn more please see [Advanced -> Plugins](./#_14)
-### 书签功能
+### Bookmark
-在你需要的行按 `Ctrl`+`F2` 即可设放置/取消书签,放置过书签的行前段有一个蓝色圆点。
+To place/cancel a bookmark, locate to the line needed and press Ctrl + F2. A blue dot will be placed in front of bookmarked line.
-按 `F2` 可以定位到下一个书签。
+Press F2 to locate to next bookmark.
-如果你抱怨不方便,可以去自带插件商店安装 "Bookmarks" 插件
+The user can also enable `Bookmarks` plugin from built-in plugins if complaining about inconveniences.
-### 代码高亮
+### Syntax Highlighting
-右击左下角的 "XXX file",可以选择许多种语言高亮,C、C++、PASCAL、Markdown 等任你挑选。你甚至可以自己定义高亮!
+To choose language applying to highlighting, right-click the left-bottom corner "XXX file" and select one language, such as C/C++, PASCAL and Markdown. You can even define your own syntax highlighting.
-如果你认为每一次打开文件都要更改高亮很麻烦,可以在“设置 -> 首选项 -> 新建 -> 默认语言”中修改默认高亮。
+You can change the default highlighting in `Settings—>Preferences`(menu bar) -> `New Document -> Default language`(new window) if you want to get rid of selecting language every time you open a file.
-需要渲染 Markdown 的,可以去插件商店安装 "Markdown Viewer",还有更多类似插件等着你!
+You can also enable `Markdown Viewer` in built-in plugins if you need to render markdown documents.
-### 显示所有字符
+### Show All Characters
![npp-settings-2](./images/npp-settings-2.png)
-点击红框所圈的按钮,就可以非(za)常(luan)清(wu)晰(zhang)地显示出“空格”、“TAB”、“换行”等原来不可见字符。
+To make invisible characters visible, like spaces, tabs and newlines, click the button tagged by red rectangle and those characters will be clearly appeared on the editor
-### 自动识别文件编码与换行符
+### Automatic Recognition of Encoding and End-of-line
-Notepad++ 可以自动识别当前文件编码是 `UTF-8` 还是 `GB2312` 甚至其他。再也不用担心被 `锟斤拷` 抡死或被 `烫烫烫` 烫死了。
+Notepad++ is able to automatically recognize the encoding of current file.
-如果要使用不同的编码浏览文章,请依次单击“(菜单顶栏)编码”->“使用 XXX 编码”。如果想给文件换一个字符编码,请依次单击“(菜单顶栏)编码”->“转为 XXX 编码”。
+To view a file in a different encoding, click `Encoding -> [the encoding you want to use]` in menu bar. To convert file into another with different encoding, click `Encoding -> Convert to [the encoding]`
-它还可以自动识别换行符是 `CR`、`LF` 或 `CRLF`。不用担心下载下来的数据被吞换行。
+Notepad++ is also able to automatically recognize which end-of-line character is used, `CR`, `LF` or `CRLF`. You won't worry about line endings' disappearance of download file.
-在底部信息栏,你可以看到 "Windows(CR LF)" 等字样,这就是当前文件的换行符。右击它,可以改变当前文件换行符。此操作配合“显示所有字符”更直观哟!
+From the information bar in the bottom, you can check the end-of-line character of current file, where something like "Windows(CR LF)" appears. To change the end-of-line character of current file, right-click it and choose one. This will be more intuitively with "Show all characters"
-## 高级玩法
+## Advanced
-这个就适用于需求较高的用户。
+This section is for users with advanced requirements.
-### 宏
+### Macro
-宏可以帮助你完成许多重复的工作,例如,我要将奇数行的“abcde”改为“afce”,需要两步。
+Macro is helpful when there are repeated tasks to be done. In the following example, we are going to replace "abcde" with "afce" in odd lines using macros with two steps
-#### 录制宏
+#### Recording Macro
![npp-macro-rec](./images/npp-macro-rec.gif)
-#### 使用宏
+Translation:
+1. Click `Macro` in menu bar, and click `Start Recording`;
+2. Operate **using keyboard**;
+3. When finishing, click `Macro -> Stop Recording`.
-![npp-macro-use](./images/npp-macro-use.gif)
-#### 大量处理,重复使用
+#### Applying Macro
-如果是更多行呢?操作就需要一点改变。
+![npp-macro-use](./images/npp-macro-use.gif)
-首先是录制,一定要先按键盘上的 `HOME` 或 `END` 键将光标移动到行首或行尾,然后用方向键调整横向位置,再进行更改。最后一定要用方向键将光标移动到下一个要处理的行。
+Translated version:
+1. Move cursor to next place:
+2. Click `Macro -> Playback`;
+3. You will see it is modified;
+4. Repeat until complete.
-比如刚刚的例子,可以先按 `END` 键,然后依次按 `←`,`Backspace`,`←`,`Backspace`,`F`,最后按两下 `↓`,最后停止录制。
+#### Massive Task Automation with Macro
-然后是重播,先定位到第一个要处理的行(第 3 行),然后点击“宏”->“重复运行宏”。在弹出窗口设置要运行的宏(刚录制的一般是第一个),设置运行次数(或者直接运行到文件尾),点确定即可。
+For more tasks, we need to slightly change the way we operate with macro.
-#### 保存宏
+Firstly is for recording. You must locate the cursor to the beginning or ending by pressing Home or End first, then adjust location with arrow key horizontally and apply modification. Finally you must move cursor to next line to process using arrow key.
-点击“宏”->“保存录制宏”,并设置名称和快捷键,即可保存,方便后续使用。
+In previous example, another approach is pressing End first, and then ←, Backspace,←, Backspace, F. Finally press ↓ twice and stop recording
-### 插件
+Then, to replay macro, locate cursor to first line to process, and then click `Macro` -> `Run a Macro Multiple times`, set how many times to run and click `Run`.
-#### 插件管理
+#### Save Macro
-打开功能栏的“插件”按钮,列表中会显示所有你安装过的插件。
+To save a marco, click `Macro` -> `Save Current Recorded Macro` in menubar, and set the name and shortcut. This feature is convenient for further using.
-再选择“插件管理”选项,即可管理你的插件。
+### Plugins
-#### 安装插件(商店)
+#### Plugins Admin
-1. 打开“可用”选项卡,在列表中勾选你所要的插件
-2. 点击右上角的“安装”按钮,按照提示重启软件即可。
+Click `Plugins` in the menubar, and it will list all installed plugins. To manage plugins, click `Plugins Admin` then.
-#### 安装插件(手动)
+#### Enable Plugin from Plugin Admin
-1. 下载插件(由第三方托管的官方地址:)注意一定要选择 **与安装 Notepad++ 时处理器架构相同** 的插件。
-2. 找到一个名为 "XXX.dll" 的文件(通常以插件名命名)。
-3. 在 Notepad++ 中的功能栏点插件,并在列表中点“打开插件文件夹”。
-4. 将刚才找到的 DLL 文件放入文件夹中,重启 Notepad++。
-5. 【可选】删除刚才拷贝的文件,**但不要删除生成的文件夹!**
+1. In the tab `Available`, toggle on plugins needed.
+2. Click `Install` in upper right corner. After confirmation Notepad++ will restart and download selected plugin.
-Tips: 如果多次不成功,可以尝试新建一个与插件名相同的文件夹在将 ".dll" 文件放入创建的文件夹中
+#### Manually Install Plugins
-#### 更新插件
+1. Download the plugin file first.[^note1] Please download plugins **in the correct architecture**.
+2. Find a file named `XXX.dll`, which is usually named after the name of plugin.
+3. Open plugin folder by clicking `Plugin` -> `Open Plugin Folder` in menubar.
+4. Place downloaded file to the folder, and restart Notepad++.
+5. (Optional) Delete copied `.dll` file, **but not the generated directories**.
-在插件管理中,选择“更新”选项卡,并勾选要更新的插件,然后点右上角的“更新”按钮。
+Tips: If unsuccessful for many times, you can try create a new folder with the plugin's name and place downloaded `.dll` file to newly created directory.
-#### 移除插件
+#### Update Plugins
-同样在插件管理中,选择“已安装”选项卡,并勾选要移除的插件,然后点右上角的“移除”按钮。
+In plugin admins, select `Update` tab and toggle plugins that require an update, and click `Update` in the upper right corner.
-### 搭建开发环境
+#### Remove Plugins
-不只是编辑器!"Notepad++" 可谓神一样的存在,它可以通过傻瓜式地编译代码,甚至代替 IDE!这里以 C++ 为例
+In plugin admins, select `Remove` tab and toggle plugins that need to be removed, and click `Remove` in the upper right corner.
-1. 安装编译器并将其必要的文件目录添加到 PATH 环境变量中。(C++ 需要添加 %APPPATH%\\bin)当你在 cmd 中输入 g++ 时不再提示'g++'不是内部或外部命令……即可(中间可能需要重启电脑)。推荐 [下载 ConsolePauser](https://sourceforge.net/projects/orwelldevcpp/files/Tools/ConsolePauser.exe/download) 然后随便放并将其目录添加到环境变量(此为 Dev-C++ 的插件,在 Dev-C++ 软件根目录也有)。
+### Build Development Environment with Notepad++
-2. 在菜单栏中选择“运行”->“运行……”,打开“运行”窗口。
+Notepad++ is not only an editor. It is godlike. With correctly configuration it can even work as an IDE by compile code in one click. In the following example, we are going to configure an environment for C++.
-3. 分别输入以下命令
+1. Make sure a C++ compiler has been installed and executables are added to `$(PATH)` environment variables. We also recommend to download ConsolePauser, a plugin for Dev-C++[^2], and add it to `$(PATH)` too.
- ```shell
- #编译命令:
+2. Click `Run` -> `Run` in menubar and a `Run...` dialog will show up.
+
+3. Type the following commands separately as your need, click `Save`, and set up the name and shortcut key, like `Compile` or `Run`.
+ ```shell
+ #Compile
cmd /c g++.exe -o $(CURRENT_DIRECTORY)\$(NAME_PART).exe $(FULL_CURRENT_PATH)
- #运行命令:
+ #Run
cmd /c $(CURRENT_DIRECTORY)\$(NAME_PART).exe $(FULL_CURRENT_PATH) & pause
- #调试命令:
+ #Debug with gdb
cmd /c gdb $(CURRENT_DIRECTORY)\$(NAME_PART).exe
- #如果下载了ConsolePauser可以使用下列代码获得更好的程序运行体验!(注意添加环境变量!)
+ #If ConsolePauser is available, you can use the following commands instead for better experience. Remember to add it environment variables.
- #编译命令:
+ #Compile
cmd /c (start ConsolePauser "g++.exe -o $(CURRENT_DIRECTORY)\$(NAME_PART).exe $(FULL_CURRENT_PATH)")
- #运行命令:
+ #Run
cmd /c (start ConsolePauser "$(CURRENT_DIRECTORY)\$(NAME_PART).exe")
- #调试命令:
+ #Debug with gdb
cmd /c (start ConsolePauser "gdb $(CURRENT_DIRECTORY)\$(NAME_PART).exe")
- ```
-
-
-4. 单击“保存”,名字可以自己取,如 "Compile","Run" 等,然后设定好你想要的快捷键(捡好记的来,如 Dev-C++ 就分别是 `F9` 和 `F10`)。
-
-5. Enjoy it!
-
-## 小彩蛋
-
-1. 在运行安装程序时你会在下方看到这样一句话:
-
- > "The best things in life are free. Notepad++ is free. So Notepad++ is the best(.)"
- >
- > (生活中最好的事情都是免费的。Notepad++ 是免费的。所以 Notepad++ 是最好的。)
+ ```
- 这牛吹的,不得不说,很有底气。
+4. Enjoy it!
-2. 在一个新开的页面中输入 "random" 并选中,再按 `F1` 就会得到一句很有意思的话。
+
\ No newline at end of file
diff --git a/docs/tools/editor/vscode.md b/docs/tools/editor/vscode.md
index 1da77c47..46e09b9f 100644
--- a/docs/tools/editor/vscode.md
+++ b/docs/tools/editor/vscode.md
@@ -1,79 +1,128 @@
-author: NachtgeistW, Ir1d, ouuan, Enter-tainer, Xeonacid, ChungZH, keepthethink, abc1763613206, partychicken, Chrogeek, xkww3n
+author: NachtgeistW, Ir1d, ouuan, Enter-tainer, Xeonacid, ChungZH, keepthethink, abc1763613206, partychicken, Chrogeek, xkww3n,
-## 简介
+Last translated on September 16th, 2021, with commit [353b1f6](https://github.com/OI-wiki/OI-wiki/commit/353b1f64c8a2c756695bb5e99f036d1e80819dbe)
-Visual Studio Code(以下简称 VS Code) 是一个由微软开发,同时支持 Windows、Linux 和 macOS 等操作系统且开放源代码的代码编辑器。它是用 TypeScript 编写的,并且采用 Electron 架构。它带有对 JavaScript、TypeScript 和 Node.js 的内置支持,并为其他语言(如 C、C++、Java、Python、PHP、Go)提供了丰富的扩展生态系统。
+## Introduction
-官网:[Visual Studio Code - Code Editing. Redefined](https://code.visualstudio.com/)
+Visual Studio Code, or VS Code, is an open-source code editor developed by Microsoft, supporting Windows, Linux and macOS. VS Code is written in TypeScript, and based on Electron framework. It bundled with built-in support for JavaScript, TypeScript and Node.js, and provides a rich ecosystem of extensions for other language like C, C++, Java, Python, PHP and Go.
-## 使用 Code Runner 插件运行代码
+Official site: [Visual Studio Code - Code Editing. Redefined](https://code.visualstudio.com/)
-VS Code 安装并配置插件后可实现对 C/C++ 的支持,但配置过程比较复杂。一个简单的编译与运行 C++ 程序的方案是安装 Code Runner 插件。
+## Execute Code Using Code Runner
-Code Runner 是一个可以一键运行代码的插件,在工程上一般用来验证代码片段,支持 Node.js、Python、C、C++、Java、PHP、Perl、Ruby、Go 等 40 多种语言。
+After installing and configuring extensions, VS Code will have support for C/C++. However the process is complicated. A simple solution to compile and run C++ programs is to install Code Runner extension.
-安装的方式是在插件商店搜索 Code Runner 并点击 Install;或者前往 [Marketplace](https://marketplace.visualstudio.com/items?itemName=formulahendry.code-runner) 并点击 Install,浏览器会自动打开 VS Code 并进行安装。
+Code Runner is an extension that allows one to run code in one click. In projects it is often used to verify code segments. It supports over 40 programming languages including Node.js, Python, C, C++, Java, PHP, Perl, Ruby and Go.
+
+One way to install is to search Code Runner in extension marketplace and click Install; Another is go to [Marketplace](https://marketplace.visualstudio.com/items?itemName=formulahendry.code-runner) and click Install, then the browser will call VS Code automatically and start installation.
![](./images/vscode-1.jpg)
-安装完成后,打开需要运行的文件,点击右上角的小三角图标即可运行代码;按下快捷键Ctrl+Alt+N(在 macOS 下是Control+Option+N)也可以得到同样的效果。
+After finishing installation, open file to run, and click the little triangle icon at upper-right to run code. Pressing shortcut key Ctrl+Alt+N(or, for macOS, Control+Option+N) will do the same.
???+ warning
- 如果安装了 VS Code 与 Code Runner 后,代码仍然无法运行,很有可能是因为系统尚未安装 C/C++ 的运行环境,参考 [Hello, World! 页面](../../lang/helloworld.md) 以安装。
-
- 记得勾选设置中的 Run In Terminal 选项,如图:![](./images/vscode-7.png)
+ If code is still unable to run after installing VS Code and Code Runner, it it probably because of the lack of C/C++ running environment in the operating system. For installation of environment please refer to [Hello, World!](../../lang/helloworld.md).
+
+ Remember to toggle on Run In Terminal in preferences as in the following image: ![](./images/vscode-7.png)
-## 使用 C/C++ 插件编译并调试
+## Compile and Debug using C/C++ extensions
-### 安装插件
+### Installation
-在 VS Code 中打开插件商店,在搜索栏中输入 `C++` 或者 `@category:"programming languages"`,然后找到 C/C++,点击 Install 安装插件。
+Open extension store in VS Code, type `C++` or `@category:"programming languages"`, and find C/C++, and press Install to install it.
![](./images/vscode-2.png)
???+ warning
- 在配置前,请确保系统已经安装了 G++ 或 Clang,并已添加到了 `PATH` 中。请使用 CMD 或者 PowerShell,而不是 Git Bash 作为集成终端。
+ Before continue to config, please make sure the that G++ or Clang has been installed, and has added them to `$PATH`. Please use CMD or Powershell instead of Git Bash.
-### 配置编译
+### Configuring Compilation
-首先用 VS Code 打开一个文件夹,然后按下F1,输入 `C/C++: Edit configurations (UI)`,进入 C/C++ 插件的设置界面。
+First, open a folder in VS Code, and then press F1, type `C/C++: Edit configurations (UI)` and enter the configuration page of C/C++ extension.
![vscode-3](images/vscode-3.png)
-在“编译器路径”中选择 G++ 或 Clang 的所在路径。如果没有可选项,请检查编译器所在路径是否添加到了操作系统的 `PATH` 变量中。
+Choose the path where G++ or Clang located in Compiler Path. Check again whether the path of compiler has been added to `PATH` environment variable if there is nothing to choose from.
-### 配置 IntelliSense
+### Configuring IntelliSense
-用于调整 VS Code 的智能补全。
+This section is talking about adjusting smart auto-completion of VS Code.
-如果你使用 Clang 编译器,在“IntelliSense 模式”中选择 `clang-x64` 而非默认的 `msvc-x64`;如果你使用 G++ 编译器,选择 `gcc-x64` 以使用自动补全等功能。否则会得到“IntelliSense 模式 msvc-x64 与编译器路径不兼容。”的错误。
+If you are using Clang or G++ as compiler, remember to choose `clang-x64` (`gcc-x64` for G++) instead of default `msvc-x64` to enable features like auto-completion. Otherwise you will encounter an error saying "Intellisense mode msvc-x64 is incompatible with compiler path".
![](images/vscode-4.png)
-### 配置 GDB/LLDB 调试器
+### Configure GDB/LLDB Debuggers
-在 VS Code 中新建一份 C++ 代码文件,按照 C++ 语法写入一些内容(如 `int main(){}`),保存并按下F5,进入调试模式。
-如果出现了“选择环境”的提示,选择“C++ (GDB/LLDB)”。在“选择配置”中,G++ 用户选择 `g++.exe - 生成和调试活动文件`;Clang 用户选择 `clang++ - 生成和调试活动文件`。
+To enter debugging mode, create a new C++ file in VS Code and write something in C++ grammar, press F5 after saving file. If a **choose environment** dialog pops up, select **C++ (GDB/LLDB)** and choose **g++ - Build and debug active file** for G++ users, or **clang++ - Build and debug active file** for Clang users.
???+ warning
- 配置名称并非固定,而是可以自定义的。不同的操作系统可能具有不同的配置名称。
+ The configuration name is customizable. It may differ in different operating systems.
-完成后,VS Code 将自动完成初始化操作并弹出一个 `launch.json` 配置文件。关闭它。
+Then, VS Code will finish initialization automatically and open a `launch.json` configuration file. Ignore and close it.
-至此,所有的配置流程已经完毕。再次按下F5即可看到软件下方的调试信息。
+At this point, all configuration processes have been completed. Press F5 again and you will see debugging informations.
-若要在以后使用 VS Code 编译并调试代码,所有的源代码都需要保存至这个文件夹内。若要编译并调试其他文件夹中存放的代码,需要重新执行上述步骤(或将旧文件夹内的 `.vscode` 子文件夹复制到新文件夹内)。
+All files needed to be compiled and debugged are required to be saved in this folder in the future. If you need to compile and debug codes in other folders, you need to perform above steps again, or copy `.vscode` sub-folder in original folder to the new one.
-### 开始调试代码
+### Debugging Code
-使用 VS Code 打开一份代码,将鼠标悬停在行数左侧的空白区域,并单击出现的红点即可为该行代码设置断点。再次单击可取消设置断点。
+To set a breakpoint on a certain line, open a code in VS Code, hover the cursor over the blank space to the left of the row number, and click the appeared red point. Re-click it will cancel the breakpoint.
-![](images/vscode-5.gif)
+![](images/vscode-5.apng)
-按下F5进入调试模式,编辑器上方会出现一个调试工具栏,四个蓝色按钮从左至右分别代表 GDB 中的 `continue`,`next`,`step` 和 `until`:
+Press F5 to enter debug mode, where a debug toolbar will appear on the upper of editor. The four blue buttons represent `continue`, `next`, `step` and `until` in GDB from left to right.
![](images/vscode-6.png)
-如果编辑器未自动跳转,点击左侧工具栏中的“调试”图标进入调试窗口,即可在左侧看到变量的值。
+In case that the editor did not jump automatically, you can enter debugging window by clicking `Run and Debug` in the left toolbar. Then the values of variables will appear.
+
+
+In debugging mode, the code editor will display codes that will be executed next in yellow background.
+
+## Configure clangd
+
+???+ warning
+ Because of conflict, IntelliSense from C/C++ extension will be automatically disabled after installing clangd extension, while some features like debugging still use C/C++ extension. If encountered problems of clangd's features, you may want to check whether IntelliSense from C/C++ is disabled.
+
+### Introduction
+
+From LLVM official site
+
+> Clangd is an implementation of the Language Server Protocol leveraging Clang. Clangd’s goal is to provide language“smartness”features like code completion, find references, etc. for clients such as C/C++ Editors.
+
+In short, clangd provides some smart features like project-wide indexing, cross-references, variable renaming, faster auto-completion, errors and warnings and formatting. Though is is officially described as an implementation of LSP protocol, its functions are rather more similar to a language server than a protocol itself.
+
+VS Code's C/C++ extension also has features like auto-completion. However, comparing with clangd, it is inferior in accuracy of the legibility of the prompt information, etc. Therefore, we may sometimes use clangd instead of the C/C++ plugin to implement features such as code auto-completion.
+
+### Installation
+
+Linux users can use package manager to install clangd. Detailed operations are similar.
+
+```bash
+# Ubuntu/Debian
+sudo apt install clangd
+```
+
+For some distribution, it only requires clang as it is included.
+
+```bash
+# Arch/Manjaro
+sudo pacman -S clang
+```
+
+MacOS users are required to install LLVM via Homebrew, as LLVM from built-in XcodeCommandLineTools doesn't include clangd.
+
+```bash
+brew install llvm
+```
+
+Windows users can obtain binary installer from [LLVM Download Page](https://releases.llvm.org/download.html).
+
+### VS Code Extension
+
+Open VS Code extension market, type `clang` in search bar and install it.
+
+![](images/vscode-8.png)
-在调试模式中,编辑器将以黄色底色显示下一步将要执行的代码。
+Now, enjoy coding with features like auto-completion from clangd!
diff --git a/docs/tools/index.md b/docs/tools/index.md
index 300dbdcd..c3fccf06 100644
--- a/docs/tools/index.md
+++ b/docs/tools/index.md
@@ -1,5 +1,5 @@
-本章主要介绍与竞赛有关的工具软件,包括一些代码编辑器的介绍和 OJ 相关工具。
+This chapter will introduce tools and softwares related to competitive programming, including some introductions of code editor and tools for OJ's.
-程序是解决 OI 问题的工具,熟练运用代码编辑器是学习 OI 的前提。
+Programming is a tool to solve problems in competitive programming, and proficiency with code editors is a prerequisite for learning knowledge of competitive programming.
-了解 OJ 相关的工具能让 OI 之旅更为方便。
+Knowing tools for OJ's will make your journey of competitive programming easier.
\ No newline at end of file