diff --git a/README.md b/README.md index 1424f52..958d615 100644 --- a/README.md +++ b/README.md @@ -61,8 +61,8 @@ symbols such as the current line)_ > [!NOTE] > > If you already have your own `.vimrc` file (refer to -> [Chapter 4](en/chapter04.md)) and have changed some of the defaults in it, it may -> cause some operations to not match the tutorial. In this case, you can run +> [Chapter 4](en/chapter04.md)) and have changed some of the defaults in it, it +> may cause some operations to not match the tutorial. In this case, you can run > `Vim` with the following command: > > ```bash @@ -76,17 +76,17 @@ symbols such as the current line)_ ### Basic operations -1. [Cursor movement](en/chapter01.md) -1. [Opening Files, Finding Content](en/chapter02.md) -1. [Modify and save documents](en/chapter03.md) -1. [Some tips](en/chapter04.md) -1. [Split screen and tabs](en/chapter05.md) -1. [Block operations](en/chapter06.md) -1. [Macros in Vim](en/chapter07.md) -1. [Vim Modes](en/vim-modes.md) +1. [Chapter 1: Cursor Movement](chapter01.md) +1. [Chapter 2: Opening Files, Finding Content](chapter02.md) +1. [Chapter 3: Modify and Save Documents](chapter03.md) +1. [Chapter 4: Some Tips](chapter04.md) +1. [Chapter 5: Split Screen and Tabs](chapter05.md) +1. [Chapter 6: Block Operations](chapter06.md) +1. [Chapter 7: Macros in Vim](chapter07.md) ### Additional content +1. [Vim Modes](en/vim-modes.md) 1. [Vim plugins](en/plugin.md) 1. [Plugin Recommendations](en/plugins/index.md) 1. [NERDTree](en/plugins/nerdtree.md) diff --git a/en/README.md b/en/README.md index eaf1d3d..fa6a05f 100644 --- a/en/README.md +++ b/en/README.md @@ -76,18 +76,18 @@ symbols such as the current line)_ ### Basic operations -1. [Cursor Movement](chapter01.md) -1. [Opening Files, Finding Content](chapter02.md) -1. [Modify and Save Documents](chapter03.md) -1. [Some Tips](chapter04.md) -1. [Split Screen and Tabs](chapter05.md) -1. [Block Operations](chapter06.md) -1. [Macros in Vim](chapter07.md) -1. [Vim Modes](vim-modes.md) +1. [Chapter 1: Cursor Movement](chapter01.md) +1. [Chapter 2: Opening Files, Finding Content](chapter02.md) +1. [Chapter 3: Modify and Save Documents](chapter03.md) +1. [Chapter 4: Some Tips](chapter04.md) +1. [Chapter 5: Split Screen and Tabs](chapter05.md) +1. [Chapter 6: Block Operations](chapter06.md) +1. [Chapter 7: Macros in Vim](chapter07.md) ### Additional content -1. [Vim plugins](plugin.md) +1. [Vim Modes](en/vim-modes.md) +1. [Vim plugins](en/plugin.md) 1. [Plugin Recommendations](plugins/index.md) 1. [NERDTree](plugins/nerdtree.md) 1. [EasyAlign](plugins/easyalign.md) diff --git a/en/chapter01.md b/en/chapter01.md index a561e42..cdfef13 100644 --- a/en/chapter01.md +++ b/en/chapter01.md @@ -1,4 +1,4 @@ -# Cursor Movement +# Chapter 1: Cursor Movement Welcome to Chapter 1, this chapter will learn simple cursor movement operations. diff --git a/en/chapter02.md b/en/chapter02.md index 0f1657f..80625cc 100644 --- a/en/chapter02.md +++ b/en/chapter02.md @@ -1,4 +1,4 @@ -# Opening Files, Finding Content +# Chapter 2: Opening Files, Finding Content ## Open Files @@ -76,7 +76,7 @@ the buffer is the file history of the current Vim session. > Now you should have two files in your buffer, you can use `:buffers` or `:ls` > command to view, see the buffer list, probably like this: -``` +```vim :ls 1 #h "chapter01.md" line 47 2 %a "chapter02.md" line 1 diff --git a/en/chapter03.md b/en/chapter03.md index 264dec6..e57953f 100644 --- a/en/chapter03.md +++ b/en/chapter03.md @@ -1,9 +1,10 @@ -# 文档的修改与保存 +# Chapter 3: Modifying and Saving Files ## 修改文档 -你现在已经学会了控制光标、打开文件、切换文件、并在文件中查找内容,这些操作都是在 Vim 的 normal -模式下进行的。现在,是时候进入 Vim 的另外一种模式 —— insert 模式,学习一下如何修改文件了。 +你现在已经学会了控制光标、打开文件、切换文件、并在文件中查找内容,这些操作都是在 +Vim 的 normal 模式下进行的。现在,是时候进入 Vim 的另外一种模式 —— insert 模式, +学习一下如何修改文件了。 ### 插入 @@ -14,8 +15,9 @@ - `o` 在下一行插入 - `O` 在上一行插入 -_注意:以上任何一个命令都会使 Vim 进入 insert 模式,进入该模式后光标会发生变化,这时输入的 -文字会直接出现在文档中,按 `Esc` 键或 `Ctrl-[` 或 `Ctrl-C` 退出 insert 模式。_ +_注意:以上任何一个命令都会使 Vim 进入 insert 模式,进入该模式后光标会发生变化, +这时输入的文字会直接出现在文档中,按 `Esc` 键或 `Ctrl-[` 或 `Ctrl-C` 退出 insert +模式。_ ### 删除(并保存到 Vim 剪贴板) @@ -28,8 +30,9 @@ _注意:以上任何一个命令都会使 Vim 进入 insert 模式,进入该 - `cc` 删除当前行并保存到 Vim 剪贴板,同时进入 `INSERT` 模式 - `c` 删除指定内容并保存到 Vim 剪贴板,同时进入 `INSERT` 模式 -_说明: `` 部分是对操作内容的描述,如果要删除一个单词,就输入 `dw` 或者 `de`,要复制当前 -位置到行尾的内容,就输入 `y$`,要删除后面 3 个字符并插入,就输入 `c3l` 诸如此类。_ +_说明: `` 部分是对操作内容的描述,如果要删除一个单词,就输入 `dw` 或者 +`de`,要复制当前位置到行尾的内容,就输入 `y$`,要删除后面 3 个字符并插入,就输入 +`c3l` 诸如此类。_ ### 复制 @@ -67,7 +70,8 @@ _说明: `` 部分是对操作内容的描述,如果要删除一个单词 Change this line to UPPERCASE, THEN TO lowercase. ``` -> 还有个更好玩的命令 `g~`,先将光标定位到上面那行文本,执行 `0g~$` 看看发生了什么。 +> 还有个更好玩的命令 `g~`,先将光标定位到上面那行文本,执行 `0g~$` 看看发生了 +> 什么。 ### 撤销、重做 @@ -83,4 +87,5 @@ Change this line to UPPERCASE, THEN TO lowercase. - `:saveas ` 文件另存为 - `:w ` 文件另存一份名为 `` 的副本并继续编辑原文件 -> 你可以试着把当前(也许已经改得面目全非的)文件另存一份,然后继续[下一章](chapter04.md)的学习。 +> 你可以试着把当前(也许已经改得面目全非的)文件另存一份,然后继 +> 续[下一章](chapter04.md)的学习。 diff --git a/en/chapter04.md b/en/chapter04.md index c93491b..b9a9c34 100644 --- a/en/chapter04.md +++ b/en/chapter04.md @@ -1,4 +1,4 @@ -# 一些小技巧 +# Chapter 4: Some Tips ## 简单设置 Vim diff --git a/en/chapter05.md b/en/chapter05.md index 274c431..6ffb60d 100644 --- a/en/chapter05.md +++ b/en/chapter05.md @@ -1,4 +1,4 @@ -# 分屏与标签页 +# Chapter 5: Splitting Windows and Tabs ## 窗口分屏 diff --git a/en/chapter06.md b/en/chapter06.md index 68f4fd0..673a578 100644 --- a/en/chapter06.md +++ b/en/chapter06.md @@ -1,11 +1,11 @@ -# 块操作 +# Chapter 6: Block Operations -我们经常会遇到这种情况:某处有一个多行文本,我们要把他复制到代码中用来初始化一个数组。 大部分 -时候我们会这么做: +我们经常会遇到这种情况:某处有一个多行文本,我们要把他复制到代码中用来初始化一个 +数组。 大部分时候我们会这么做: - 写好数组声明; - 把内容复制到中括号内(大概长成下面那段文本的样子) -- 然后行首加 `'` 行尾加 `',`,重复直到最后一行(想象一下这段文本有50行) +- 然后行首加 `'` 行尾加 `',`,重复直到最后一行(想象一下这段文本有 50 行) > 有了 Vim 块操作就不用这么麻烦了,按 `014gg`,然后跟着选中那一行的指示操作。 @@ -21,17 +21,19 @@ https://www.yahaha.net ]; ``` -> 现在已经完成了第一步,还需要补前面的 `'`,按 `14gg` 回到那一行,再操作一次,但是这次有三个 -> 地方要变化一下: +> 现在已经完成了第一步,还需要补前面的 `'`,按 `14gg` 回到那一行,再操作一次,但 +> 是这次有三个地方要变化一下: > > 1. 第一行按 `$` 时改按 `0`,因为这次要在行首插入; > 1. 末行按 `A` 时改按 `I`,块操作中 `A` 是字符后插入, `I` 是字符前插入; > 1. 最后按 `<单引号>`。 > -> 最后再做些收尾工作,`19gg$x` 删掉最后一行结尾处的 `,`,然后 `14gg7==` 把代码缩进一下。 +> 最后再做些收尾工作,`19gg$x` 删掉最后一行结尾处的 `,`,然后 `14gg7==` 把代码缩 +> 进一下。 > > Done! -_注意:选择行首行尾的操作也可以在选择完要处理的内容之后执行,即 `Ctrl-v jjj$A',`_ +_注意:选择行首行尾的操作也可以在选择完要处理的内容之后执行,即 +`Ctrl-v jjj$A',`_ 接下来我们说说 [Vim 中的宏](chapter07.md)。 diff --git a/en/chapter07.md b/en/chapter07.md index 15d5cba..016e2f5 100644 --- a/en/chapter07.md +++ b/en/chapter07.md @@ -1,42 +1,55 @@ -# Vim 中的宏 +# Chapter 7: Vim Macros -宏操作在 Vim 中(甚至任何编辑器中)属于比较复杂的操作了,如果前面的内容都已经掌握了,那么你 -已经可以算是一个 Vim 高手了,所以,这位高手,我们不妨再来进阶一下吧。 +Macros are a more advanced topic in Vim (and any other editor). If you've +mastered the previous chapters, you're already a Vim master. So, let's take it +to the next level. -还记得[上一章](chapter06.md)中把文本转成数组的例子吧,我们还做同样的事,不过这次是用宏来操作。 +Do you remember the example of converting text to an array in the +[previous chapter](chapter06.md)? We'll do the same thing, but this time with +macros. -> `12gg` 跳转到准备开始处理的起始行,按指示进行操作,先看效果后解释。 +> `16gg` Jump to the start line where you're ready to start processing, follow +> the instructions, see the effect first and then explain. ```javascript var myArray = [ -按 qa 开启宏录制,前方高能,连续按 I<单引号>A<单引号><逗号>jq7@a -我也要 -我也要 -我也要 -我也要 -我也要 -我也要 -我也要 +Press qa to start recording the macro, and then press IAjq7@a +Me too +Me too +Me too +Me too +Me too +Me too +Me too ]; ``` -OMG! 发生了什么,有没有惊出一身冷汗,之前两次块操作的结果瞬间就完成了,最后再简单做些收尾工作, -去掉最后一行的逗号,集体缩进一下,搞定! +OMG! What happened, did you get a cold sweat? The results of the previous two +block operations were completed in an instant, and finally a little finishing +work, remove the comma at the end of the last line, indent the collective, done! -下面来解释一下刚才的操作: +Next, let's explain the operation just now: -- `q` 是开启录制宏,`a` 是给这次宏的录制过程一个存储位置,可以是 0-9 或 a-z; -- 然后 `I<单引号>A<单引号><逗号>j` 是你这次录制的整个宏的操作过程,意思就是行首 -插入单引号,行尾插入单引号和逗号,跳到下一行; -- 接下来的 `q` 是结束本次宏的录制; -- `@` 是唤起宏,`a` 是要唤起的宏的名字(存储位置),前面的 `7` 你应该明白吧,就是执行 7 次。 +- `q` is to start recording the macro, `a` is to give the macro recording + process a storage location, which can be 0-9 or a-z; +- Then `IAj` is the operation + process of the entire macro you recorded this time, which means inserting a + single quote at the beginning of the line, inserting a single quote and a + comma at the end of the line, and jumping to the next line; +- Pressing `q` next ends this macro recording; +- `@` is to call up the macro, `a` is the name (storage location) of the macro + to be called up, and the `7` in front of it should be clear, that is, to + execute 7 times. -_Tips:`@@` 再次唤起最后一次执行的宏。_ +_Tips: `@@` calls up the last macro executed again._ --- -日常工作中频繁用到的和不怎么用得上的在这七章中应该都已经涉及到了,如果 Vim 中遇到了什么问题, -或者教程中遗漏了什么常规操作,欢迎在 [issues](../../issues) 中提出来,我会尽我所能给予回答 -或完善到教程中。 +All the frequently used and not so frequently used in these seven chapters +should have been covered. If you encounter any problems in Vim, or if you miss +any regular operations in the tutorial, please feel free to raise them in +[issues](../../issues), and I will do my best to answer them or improve them in +the tutorial. -**再次感谢您的关注!如果爱,请分享。爱极客公园,爱 VIM!** +**Thanks again for your interest! If you love, please share. Love life, love +VIM!** diff --git a/zh-CN/README.md b/zh-CN/README.md index 6db14a8..b466cd1 100644 --- a/zh-CN/README.md +++ b/zh-CN/README.md @@ -68,17 +68,17 @@ _注意:命令区分大小写(需要注意的事项会出现在当前行这 ### 基础操作 -1. [光标的移动](chapter01.md) -1. [打开文件、查找内容](chapter02.md) -1. [文档的修改与保存](chapter03.md) -1. [一些小技巧](chapter04.md) -1. [分屏与标签页](chapter05.md) -1. [块操作](chapter06.md) -1. [Vim 中的宏](chapter07.md) -1. [Vim 的模式](file-modes.md) +1. [第一章:光标的移动](chapter01.md) +1. [第二章:打开文件、查找内容](chapter02.md) +1. [第三章:文档的修改与保存](chapter03.md) +1. [第四章:一些小技巧](chapter04.md) +1. [第五章:分屏与标签页](chapter05.md) +1. [第六章:块操作](chapter06.md) +1. [第七章:Vim 中的宏](chapter07.md) ### 附加内容 +1. [Vim 的模式](file-modes.md) 1. [Vim 插件](plugin.md) 1. [插件推荐](plugins/index.md) 1. [NERDTree](plugins/nerdtree.md) diff --git a/zh-CN/chapter01.md b/zh-CN/chapter01.md index ef485ee..7b5b9c2 100644 --- a/zh-CN/chapter01.md +++ b/zh-CN/chapter01.md @@ -1,4 +1,4 @@ -# 光标的移动 +# 第一章:光标移动 欢迎进入第一章,这一章将学习简单的光标移动操作。 @@ -7,12 +7,14 @@ ## 移动光标 ### 单位级 + - `h` 向左一字符 - `j` 下一行 - `k` 上一行 - `l` 向右一字符 ### 单词级 + - `w` or `W` 向右移动到下一单词开头 - `e` or `E` 向右移动到单词结尾 - `b` or `B` 向左移动到单词开头 @@ -29,6 +31,7 @@ and welcome to https://yahaha.net :) ``` ### 块级 + - `gg` 到文档第一行 - `G` 到文档最后一行 - `0` 到行首(第 1 列) @@ -45,12 +48,13 @@ and welcome to https://yahaha.net :) - `:+` or `j` 向下跳 N 行 - `:-` or `k` 向上跳 N 行 -_注意:所有命令前都可以加一个数字 N,表示对后面的命令执行 N 次,例如你想向下移动 3 行,除了 -可以用 `:+3` 之外,还可以用 `3j` 来实现同样的效果。另外,上面实际上有两种命令:一种是键入后 -立即执行的,比如 `gg`;还有一种是先输入 `:` 的(后面还会出现先按 `/` 的),这类命令需要在 -输入完成后按回车执行,后面的教程中也是一样。_ +_注意:所有命令前都可以加一个数字 N,表示对后面的命令执行 N 次,例如你想向下移动 +3 行,除了可以用 `:+3` 之外,还可以用 `3j` 来实现同样的效果。另外,上面实际上有 +两种命令:一种是键入后立即执行的,比如 `gg`;还有一种是先输入 `:` 的(后面还会出 +现先按 `/` 的),这类命令需要在输入完成后按回车执行,后面的教程中也是一样。_ -> 现在你可以在当前文件中畅游了,当你熟悉了各种移动操作后就可以通过 `G` 定位到当前文档到最后 -> 一行,按照提示进入下一章了。 +> 现在你可以在当前文件中畅游了,当你熟悉了各种移动操作后就可以通过 `G` 定位到当 +> 前文档到最后一行,按照提示进入下一章了。 > -> 将光标定位到后面文件名的任意位置上,直接敲键盘 `gf` 进入[第二章](chapter02.md)。 +> 将光标定位到后面文件名的任意位置上,直接敲键盘 `gf` 进 +> 入[第二章](chapter02.md)。 diff --git a/zh-CN/chapter02.md b/zh-CN/chapter02.md index 4b2393d..bfede00 100644 --- a/zh-CN/chapter02.md +++ b/zh-CN/chapter02.md @@ -1,14 +1,16 @@ -# 打开文件、查找内容 +# 第二章:打开文件、查找内容 ## 打开文件 -哈,现在你已经在无意间学会了一种在 Vim 中打开文件的方式,虽然这种方式并不是最常用的,但却是最 -直接的,尤其是当你的代码中 include 了某文件时,下面介绍另外两种常用的打开方式。 +哈,现在你已经在无意间学会了一种在 Vim 中打开文件的方式,虽然这种方式并不是最常 +用的,但却是最直接的,尤其是当你的代码中 include 了某文件时,下面介绍另外两种常 +用的打开方式。 ### 在 Vim 中打开文件 - `:e ` 打开名为 filename 的文件,若文件不存在则创建之 -- `:Ex` 在 Vim 中打开目录树,光标选中后回车打开对应文件(提示:`-` 进入上级目录) +- `:Ex` 在 Vim 中打开目录树,光标选中后回车打开对应文件(提示:`-` 进入上级目录 + ) ## 查找 @@ -21,8 +23,9 @@ - `n` 继续查找下一个 - `N` 继续查找上一个 -_注意: `n` 和 `N` 是有方向性的,若你之前通过 `*` 查找,则 `n` 会继续向文档尾方向查找,`N` -向文档首方向;反之,若你通过 `#` 查找,则 `n` 指向文档首,`N` 指向文档尾_ +_注意: `n` 和 `N` 是有方向性的,若你之前通过 `*` 查找,则 `n` 会继续向文档尾方 +向查找,`N` 向文档首方向;反之,若你通过 `#` 查找,则 `n` 指向文档首,`N` 指向文 +档尾_ ### 行内查找 @@ -33,14 +36,16 @@ _注意: `n` 和 `N` 是有方向性的,若你之前通过 `*` 查找,则 - `;` 继续向当前方向查找下一个字符 - `,` 向当前相反方向查找下一个字符 -> 当前文档中有几个 “Vim” 单词,你可以尝试用 `*` 和 `#` 进行查找并感受 `n` 和 `N` 的方向性。 +> 当前文档中有几个 “Vim” 单词,你可以尝试用 `*` 和 `#` 进行查找并感受 `n` 和 `N` +> 的方向性。 > -> 上面的 “注意” 中有几个字符 "n",你可以在那试试行内查找并感受下 `;` 和 `,` 的方向性。 +> 上面的 “注意” 中有几个字符 "n",你可以在那试试行内查找并感受下 `;` 和 `,` 的方 +> 向性。 ### 匹配查找 -Vim 中可以使用 `%` 对 `(` 和 `)`,`[` 和 `]`,`{` 和 `}` 进行匹配查找,当光标位于其中一个 -符号上时,按下 `%`,光标会跳到与之匹配的另外一个符号上。 +Vim 中可以使用 `%` 对 `(` 和 `)`,`[` 和 `]`,`{` 和 `}` 进行匹配查找,当光标位 +于其中一个符号上时,按下 `%`,光标会跳到与之匹配的另外一个符号上。 > 在下列文本中的 `()[]{}` 字符上按 `%` 看看效果,连续多按几次。 @@ -53,16 +58,16 @@ const func = (win, doc) => { } else { return YU; } -} +}; ``` -[下一章](chapter03.md)将介绍文档的修改,在这之前先简单介绍一下 Vim 的 buffer,简单理解 -buffer 就是当前 Vim session 的文件历史记录。 +[下一章](chapter03.md)将介绍文档的修改,在这之前先简单介绍一下 Vim 的 buffer,简 +单理解 buffer 就是当前 Vim session 的文件历史记录。 -> 现在你的 buffer 中应该已经有两个文件了,你可以用 `:buffers` 或 `:ls` 命令查看,看到 -> buffer 列表了吧,大概是这个样子的: +> 现在你的 buffer 中应该已经有两个文件了,你可以用 `:buffers` 或 `:ls` 命令查看 +> ,看到 buffer 列表了吧,大概是这个样子的: -``` +```vim :ls 1 #h "chapter01.md" line 47 2 %a "chapter02.md" line 1 @@ -76,5 +81,6 @@ Press ENTER or type command to continue > - `:b` 打开缓存中第 N 个文件 > > 你也可以使用 `:bdelete` 来删除所要关闭的缓冲区,缩写 `:bd`。 -> -> 当然你也可以使用 `:Ex` 命令,选择 chapter03.md 并打开,进入[第三章](chapter03.md)。 +> +> 当然你也可以使用 `:Ex` 命令,选择 chapter03.md 并打开,进 +> 入[第三章](chapter03.md)。 diff --git a/zh-CN/chapter03.md b/zh-CN/chapter03.md index 264dec6..de91ca2 100644 --- a/zh-CN/chapter03.md +++ b/zh-CN/chapter03.md @@ -1,9 +1,10 @@ -# 文档的修改与保存 +# 第三章:文档的修改与保存 ## 修改文档 -你现在已经学会了控制光标、打开文件、切换文件、并在文件中查找内容,这些操作都是在 Vim 的 normal -模式下进行的。现在,是时候进入 Vim 的另外一种模式 —— insert 模式,学习一下如何修改文件了。 +你现在已经学会了控制光标、打开文件、切换文件、并在文件中查找内容,这些操作都是在 +Vim 的 normal 模式下进行的。现在,是时候进入 Vim 的另外一种模式 —— insert 模式, +学习一下如何修改文件了。 ### 插入 @@ -14,8 +15,9 @@ - `o` 在下一行插入 - `O` 在上一行插入 -_注意:以上任何一个命令都会使 Vim 进入 insert 模式,进入该模式后光标会发生变化,这时输入的 -文字会直接出现在文档中,按 `Esc` 键或 `Ctrl-[` 或 `Ctrl-C` 退出 insert 模式。_ +_注意:以上任何一个命令都会使 Vim 进入 insert 模式,进入该模式后光标会发生变化, +这时输入的文字会直接出现在文档中,按 `Esc` 键或 `Ctrl-[` 或 `Ctrl-C` 退出 insert +模式。_ ### 删除(并保存到 Vim 剪贴板) @@ -28,8 +30,9 @@ _注意:以上任何一个命令都会使 Vim 进入 insert 模式,进入该 - `cc` 删除当前行并保存到 Vim 剪贴板,同时进入 `INSERT` 模式 - `c` 删除指定内容并保存到 Vim 剪贴板,同时进入 `INSERT` 模式 -_说明: `` 部分是对操作内容的描述,如果要删除一个单词,就输入 `dw` 或者 `de`,要复制当前 -位置到行尾的内容,就输入 `y$`,要删除后面 3 个字符并插入,就输入 `c3l` 诸如此类。_ +_说明: `` 部分是对操作内容的描述,如果要删除一个单词,就输入 `dw` 或者 +`de`,要复制当前位置到行尾的内容,就输入 `y$`,要删除后面 3 个字符并插入,就输入 +`c3l` 诸如此类。_ ### 复制 @@ -67,7 +70,8 @@ _说明: `` 部分是对操作内容的描述,如果要删除一个单词 Change this line to UPPERCASE, THEN TO lowercase. ``` -> 还有个更好玩的命令 `g~`,先将光标定位到上面那行文本,执行 `0g~$` 看看发生了什么。 +> 还有个更好玩的命令 `g~`,先将光标定位到上面那行文本,执行 `0g~$` 看看发生了 +> 什么。 ### 撤销、重做 @@ -83,4 +87,5 @@ Change this line to UPPERCASE, THEN TO lowercase. - `:saveas ` 文件另存为 - `:w ` 文件另存一份名为 `` 的副本并继续编辑原文件 -> 你可以试着把当前(也许已经改得面目全非的)文件另存一份,然后继续[下一章](chapter04.md)的学习。 +> 你可以试着把当前(也许已经改得面目全非的)文件另存一份,然后继 +> 续[下一章](chapter04.md)的学习。 diff --git a/zh-CN/chapter04.md b/zh-CN/chapter04.md index c93491b..87ee511 100644 --- a/zh-CN/chapter04.md +++ b/zh-CN/chapter04.md @@ -1,9 +1,9 @@ -# 一些小技巧 +# 第四章:一些小技巧 ## 简单设置 Vim -“工欲善其事,必先利其器”。尽管 Vim 非常强大,但默认配置的 Vim 看起来还是比较朴素的,为了适合 -我们的开发需求,要对 Vim 进行一些简单的配置。 +“工欲善其事,必先利其器”。尽管 Vim 非常强大,但默认配置的 Vim 看起来还是比较朴素 +的,为了适合我们的开发需求,要对 Vim 进行一些简单的配置。 - `:set number` 显示行号 - `:set relativenumber` 显示相对行号(这个非常重要,慢慢体会) @@ -17,11 +17,11 @@ - `:filetype on` 开启文件类型检测 - `:syntax on` 开启语法高亮 -这里列出的是命令,你可以通过在 Vim 中输入进行设置,但这种方式设置的参数只在本次关闭 Vim 前生效, -如果你退出 Vim 再打开,之前的设置就失效了。 +这里列出的是命令,你可以通过在 Vim 中输入进行设置,但这种方式设置的参数只在本次 +关闭 Vim 前生效,如果你退出 Vim 再打开,之前的设置就失效了。 -若要永久生效,需要修改 Vim 的一个自动配置文件,一般文件路径是 `/home//.vimrc`(Linux -系统)或 `/Users//.vimrc`(Mac OS 系统) +若要永久生效,需要修改 Vim 的一个自动配置文件,一般文件路径是 +`/home//.vimrc`(Linux 系统)或 `/Users//.vimrc`(Mac OS 系统) 如果没有就新建一个,以 Mac OS 系统为例: @@ -32,16 +32,18 @@ cd ~ vim .vimrc ``` -> 现在你已经在 Vim 中打开了你的 Vim 专属配置文件,将上面提到的配置复制到你的文件中,记得要删除 -> 每行开头的 `:` +> 现在你已经在 Vim 中打开了你的 Vim 专属配置文件,将上面提到的配置复制到你的文件 +> 中,记得要删除每行开头的 `:` > -> 修改完成执行 `:wq` 或者 `ZZ` 保存退出,再次进入 Vim 时,你的这些配置就已经生效了 +> 修改完成执行 `:wq` 或者 `ZZ` 保存退出,再次进入 Vim 时,你的这些配置就已经生效 +> 了 > -> 当然,机智如我也为你准备好了一份 [vimrc](vimrc.vim) 样本文件,你可以在控制台执行 -> `cp vimrc.vim ~/.vimrc` 直接使用,再次启动 Vim 或在 Vim 中执行 `:source ~/.vimrc`你的配置就 -> 应该生效了。 +> 当然,机智如我也为你准备好了一份 [vimrc](vimrc.vim) 样本文件,你可以在控制台执 +> 行 `cp vimrc.vim ~/.vimrc` 直接使用,再次启动 Vim 或在 Vim 中执行 +> `:source ~/.vimrc`你的配置就应该生效了。 -_**[ AD ]** 当然你也可以在我维护的另外一个项目 [The 7th Vim](https://github.com/dofy/7th-vim) 中找到一个更为完整的配置方案。_ +_**[ AD ]** 当然你也可以在我维护的另外一个项目 +[The 7th Vim](https://github.com/dofy/7th-vim) 中找到一个更为完整的配置方案。_ ## 清除搜索高亮 @@ -50,15 +52,18 @@ _**[ AD ]** 当然你也可以在我维护的另外一个项目 [The 7th Vim](ht > 如果你已经设置了这个选项,尝试执行 `/set` -看到效果了吧,搜索结果一目了然,但这有时候也是一种困扰,因为知道搜索结果后高亮就没用了,但高亮 -本人并不这样认为,它会一直高亮下去,直到你用 `:set nohlsearch` 将其关闭。 +看到效果了吧,搜索结果一目了然,但这有时候也是一种困扰,因为知道搜索结果后高亮就 +没用了,但高亮本人并不这样认为,它会一直高亮下去,直到你用 `:set nohlsearch` 将 +其关闭。 -但这样需要就打开,不需要就关闭也不是个办法,有没有更好的解决方案呢?当然!请看下面的终极答案: +但这样需要就打开,不需要就关闭也不是个办法,有没有更好的解决方案呢?当然!请看下 +面的终极答案: > **再搜一个不存在的字符串** -通常我用来清除搜索高亮的命令是 `/lfw`,一是因为 `lfw` 这个组合一般不会出现(不适用于 -本文档...),二是这三个字母的组合按起来比较舒服,手指基本不需要怎么移动(你感受一下)。 +通常我用来清除搜索高亮的命令是 `/lfw`,一是因为 `lfw` 这个组合一般不会出现(不适 +用于本文档...),二是这三个字母的组合按起来比较舒服,手指基本不需要怎么移动(你 +感受一下)。 ## 重复上一次命令 @@ -92,8 +97,9 @@ p 把刚才删掉的粘回来 - `=j` 对当前行以及向下 N 行进行自动排版 - `=k` 对当前行以及向上 N 行进行自动排版 -> 另外,还可以利用[第二章](chapter02.md)中提到的匹配搜索对代码块进行批量排版,尝试用 -> `gf` 命令打开 [chapter04-demo.js](chapter04-demo.js) 按照里面的说明进行操作 +> 另外,还可以利用[第二章](chapter02.md)中提到的匹配搜索对代码块进行批量排版,尝 +> 试用 `gf` 命令打开 [chapter04-demo.js](chapter04-demo.js) 按照里面的说明进行操 +> 作 如果智能缩进设置生效了,执行后会看到如[第二章](chapter02.md)中一样的排版效果。 diff --git a/zh-CN/chapter05.md b/zh-CN/chapter05.md index 274c431..bf5f5ed 100644 --- a/zh-CN/chapter05.md +++ b/zh-CN/chapter05.md @@ -1,9 +1,10 @@ -# 分屏与标签页 +# 第五章:分屏与标签页 ## 窗口分屏 -工作中经常会遇到这种情况,就是需要参照其他文档编辑当前文档(场景:翻译),或者从另外一个文档 -copy 代码到当前文档(场景:复制 html 元素类名到 css 文档),这时候就是你最需要分屏的时候。 +工作中经常会遇到这种情况,就是需要参照其他文档编辑当前文档(场景:翻译),或者从 +另外一个文档 copy 代码到当前文档(场景:复制 html 元素类名到 css 文档),这时候 +就是你最需要分屏的时候。 ### 分屏方式 @@ -26,7 +27,8 @@ copy 代码到当前文档(场景:复制 html 元素类名到 css 文档) - `Ctrl-w K` 移动到顶部 - `Ctrl-w J` 移动到底部 -_注意:区分大小写。另外,可以将底部的屏幕移动到右侧,实现上下分屏到左右分屏的转换。_ +_注意:区分大小写。另外,可以将底部的屏幕移动到右侧,实现上下分屏到左右分屏的转 +换。_ ### 屏幕缩放 @@ -42,8 +44,8 @@ _注意:区分大小写。另外,可以将底部的屏幕移动到右侧, ## 标签页 -[第二章](chapter02.md)中提到过的 buffer 和刚刚讲到的分屏操作都很适合在少量文件之间进行切换, -文件超过 3 个我觉得就不方便了,而标签页则更适合多文件之间的切换。 +[第二章](chapter02.md)中提到过的 buffer 和刚刚讲到的分屏操作都很适合在少量文件之 +间进行切换,文件超过 3 个我觉得就不方便了,而标签页则更适合多文件之间的切换。 ### 创建标签页 @@ -51,7 +53,8 @@ _注意:区分大小写。另外,可以将底部的屏幕移动到右侧, - `Ctrl-w gf` 在新标签页中打开当前光标所在位置的文件名 _注意:`:tabnew` 和 `:tabedit` 后面都可以跟一个 <空格><文件名> 用以在新标签页中 -打开指定文件,还可以在 `:` 后面加一个数字,指出新标签页在列表中的位置(从 0 开始)。_ +打开指定文件,还可以在 `:` 后面加一个数字,指出新标签页在列表中的位置(从 0 开始 +)。_ ### 切换标签页 diff --git a/zh-CN/chapter06.md b/zh-CN/chapter06.md index 68f4fd0..d140768 100644 --- a/zh-CN/chapter06.md +++ b/zh-CN/chapter06.md @@ -1,11 +1,11 @@ -# 块操作 +# 第六章:块操作 -我们经常会遇到这种情况:某处有一个多行文本,我们要把他复制到代码中用来初始化一个数组。 大部分 -时候我们会这么做: +我们经常会遇到这种情况:某处有一个多行文本,我们要把他复制到代码中用来初始化一个 +数组。 大部分时候我们会这么做: - 写好数组声明; - 把内容复制到中括号内(大概长成下面那段文本的样子) -- 然后行首加 `'` 行尾加 `',`,重复直到最后一行(想象一下这段文本有50行) +- 然后行首加 `'` 行尾加 `',`,重复直到最后一行(想象一下这段文本有 50 行) > 有了 Vim 块操作就不用这么麻烦了,按 `014gg`,然后跟着选中那一行的指示操作。 @@ -21,17 +21,19 @@ https://www.yahaha.net ]; ``` -> 现在已经完成了第一步,还需要补前面的 `'`,按 `14gg` 回到那一行,再操作一次,但是这次有三个 -> 地方要变化一下: +> 现在已经完成了第一步,还需要补前面的 `'`,按 `14gg` 回到那一行,再操作一次,但 +> 是这次有三个地方要变化一下: > > 1. 第一行按 `$` 时改按 `0`,因为这次要在行首插入; > 1. 末行按 `A` 时改按 `I`,块操作中 `A` 是字符后插入, `I` 是字符前插入; > 1. 最后按 `<单引号>`。 > -> 最后再做些收尾工作,`19gg$x` 删掉最后一行结尾处的 `,`,然后 `14gg7==` 把代码缩进一下。 +> 最后再做些收尾工作,`19gg$x` 删掉最后一行结尾处的 `,`,然后 `14gg7==` 把代码缩 +> 进一下。 > > Done! -_注意:选择行首行尾的操作也可以在选择完要处理的内容之后执行,即 `Ctrl-v jjj$A',`_ +_注意:选择行首行尾的操作也可以在选择完要处理的内容之后执行,即 +`Ctrl-v jjj$A',`_ 接下来我们说说 [Vim 中的宏](chapter07.md)。 diff --git a/zh-CN/chapter07.md b/zh-CN/chapter07.md index 15d5cba..cb464fe 100644 --- a/zh-CN/chapter07.md +++ b/zh-CN/chapter07.md @@ -1,11 +1,13 @@ -# Vim 中的宏 +# 第七章:Vim 中的宏 -宏操作在 Vim 中(甚至任何编辑器中)属于比较复杂的操作了,如果前面的内容都已经掌握了,那么你 -已经可以算是一个 Vim 高手了,所以,这位高手,我们不妨再来进阶一下吧。 +宏操作在 Vim 中(甚至任何编辑器中)属于比较复杂的操作了,如果前面的内容都已经掌 +握了,那么你已经可以算是一个 Vim 高手了,所以,这位高手,我们不妨再来进阶一下吧 +。 -还记得[上一章](chapter06.md)中把文本转成数组的例子吧,我们还做同样的事,不过这次是用宏来操作。 +还记得[上一章](chapter06.md)中把文本转成数组的例子吧,我们还做同样的事,不过这次 +是用宏来操作。 -> `12gg` 跳转到准备开始处理的起始行,按指示进行操作,先看效果后解释。 +> `14gg` 跳转到准备开始处理的起始行,按指示进行操作,先看效果后解释。 ```javascript var myArray = [ @@ -20,23 +22,24 @@ var myArray = [ ]; ``` -OMG! 发生了什么,有没有惊出一身冷汗,之前两次块操作的结果瞬间就完成了,最后再简单做些收尾工作, -去掉最后一行的逗号,集体缩进一下,搞定! +OMG! 发生了什么,有没有惊出一身冷汗,之前两次块操作的结果瞬间就完成了,最后再简 +单做些收尾工作,去掉最后一行的逗号,集体缩进一下,搞定! 下面来解释一下刚才的操作: - `q` 是开启录制宏,`a` 是给这次宏的录制过程一个存储位置,可以是 0-9 或 a-z; -- 然后 `I<单引号>A<单引号><逗号>j` 是你这次录制的整个宏的操作过程,意思就是行首 -插入单引号,行尾插入单引号和逗号,跳到下一行; +- 然后 `I<单引号>A<单引号><逗号>j` 是你这次录制的整个宏的操作过程,意 + 思就是行首插入单引号,行尾插入单引号和逗号,跳到下一行; - 接下来的 `q` 是结束本次宏的录制; -- `@` 是唤起宏,`a` 是要唤起的宏的名字(存储位置),前面的 `7` 你应该明白吧,就是执行 7 次。 +- `@` 是唤起宏,`a` 是要唤起的宏的名字(存储位置),前面的 `7` 你应该明白吧,就 + 是执行 7 次。 _Tips:`@@` 再次唤起最后一次执行的宏。_ --- -日常工作中频繁用到的和不怎么用得上的在这七章中应该都已经涉及到了,如果 Vim 中遇到了什么问题, -或者教程中遗漏了什么常规操作,欢迎在 [issues](../../issues) 中提出来,我会尽我所能给予回答 -或完善到教程中。 +日常工作中频繁用到的和不怎么用得上的在这七章中应该都已经涉及到了,如果 Vim 中遇 +到了什么问题,或者教程中遗漏了什么常规操作,欢迎在 [issues](../../issues) 中提出 +来,我会尽我所能给予回答或完善到教程中。 -**再次感谢您的关注!如果爱,请分享。爱极客公园,爱 VIM!** +**再次感谢您的关注!如果爱,请分享。爱生活,爱 VIM!**