Skip to content

Commit

Permalink
📝 Add directory
Browse files Browse the repository at this point in the history
  • Loading branch information
rainofsilence committed Oct 11, 2022
1 parent 1bcd002 commit 18ee3c3
Show file tree
Hide file tree
Showing 27 changed files with 159 additions and 1 deletion.
4 changes: 3 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,9 @@ _学习 Vim(智能方式)_ 是一本学习Vim中优秀部分知识的书。

本指南同时为初学者和高级Vim用户撰写。它从宽泛而简单的概念开始讲,最后落在特殊的、进阶的技巧上。如果您已经是一名进阶用户,我还是鼓励您从头到尾阅读本指南,因为您将了解到一些新的东西。

## 目录(进行中)
## 目录

[目录](./directory.md)

### 序言

Expand Down
3 changes: 3 additions & 0 deletions ch00_read_this_first.md
Original file line number Diff line number Diff line change
Expand Up @@ -93,3 +93,6 @@ Vimrc直到第21章才讲。为了保持清晰,我将在这里简要的介绍

谢谢,您们使得这件工作更加有趣。:)

## 链接
- [目录](./directory.md)
- 下一部分 [Ch 1 - 起步](./ch01_starting_vim.md)
5 changes: 5 additions & 0 deletions ch01_starting_vim.md
Original file line number Diff line number Diff line change
Expand Up @@ -161,3 +161,8 @@ vim -O5 hello1.txt hello2.txt
您可以向`vim`命令传递不同的选项(option)和标志(flag),就像其他终端命令一样。其中一个选项是命令行命令(`+{cmd}``-c cmd`)。当您读完本教程学到更多命令后,看看您是否能将相应命令应用到Vim的启动中。同样,作为一个终端命令,您可以将`vim`命令和其他终端命令联合起来。比如,您可以将`ls`命令的输出重定向到Vim中编辑,命令是`ls -l | vim -`

若要了解更多Vim终端命令,查看`man vim`。若要了解更多关于Vim编辑器的知识,继续阅读本教程,多使用`:help`命令。

## 链接
- [目录](./directory.md)
- 上一部分 [Ch 0 - 请先阅读](./ch00_read_this_first.md)
- 下一部分 [Ch 2 - 缓冲区,窗口和选项卡](./ch02_buffers_windows_tabs.md)
5 changes: 5 additions & 0 deletions ch02_buffers_windows_tabs.md
Original file line number Diff line number Diff line change
Expand Up @@ -190,3 +190,8 @@ vim -p file1.js file2.js file3.js
- 我使用[tmux](https://github.com/tmux/tmux/wiki)windows来代替tabs。通常一次使用多个tmux窗口。比如,一个tmux窗口用来写客户端代码,一个用来写后台代码。

由于编辑风格不同,我的工作流程可能和您的工作流程不同,这没关系。您可以在实践中去探索适合您自己工作流程的编码风格。

## 链接
- [目录](./directory.md)
- 上一部分 [Ch 1 - 起步](./ch01_starting_vim.md)
- 下一部分 [Ch 3 - 打开和搜索文件](./ch03_searching_files.md)
5 changes: 5 additions & 0 deletions ch03_searching_files.md
Original file line number Diff line number Diff line change
Expand Up @@ -341,3 +341,8 @@ set grepprg=rg\ --vimgrep\ --smart-case\ --follow
Fzf.vim插件就像一个游戏规则改变者。我无法想象使用Vim没有它的情景。当最开始使用Vim时,如果有一个好的搜索工具,我想是非常重要的。我看见很多人过渡到Vim时的艰难历程,就是因为Vim缺少了现代编辑器所拥有的一些关键功能特性,比如简单快捷且功能强大的搜索功能。我希望本章将帮助您更轻松地向Vim过渡。

您同时也看到了Vim的扩展性,即使用插件或外部程序扩展搜索功能的能力。将来,记住您想在Vim中拓展的功能。很有可能已经有人写好了相关插件,已经有现成的程序了。下一章,您将学习Vim中非常重要的主题:Vim语法。

## 链接
- [目录](./directory.md)
- 上一部分 [Ch 2 - 缓冲区,窗口和选项卡](./ch02_buffers_windows_tabs.md)
- 下一部分 [Ch 4 - Vim 语法](./ch04_vim_grammar.md)
5 changes: 5 additions & 0 deletions ch04_vim_grammar.md
Original file line number Diff line number Diff line change
Expand Up @@ -206,3 +206,8 @@ verb + noun
这一章的目标是向你展现Vim中的`verb+noun`模式,因此之后你就可以像学习一门新的语言一样渐进的学习Vim而不是死记每个命令的组合。

学习这种模式并且理解其中的含义,这是聪明的学习方式。

## 链接
- [目录](./directory.md)
- 上一部分 [Ch 3 - 打开和搜索文件](./ch03_searching_files.md)
- 下一部分 [Ch 5 - 移动文件](./ch05_moving_in_file.md)
5 changes: 5 additions & 0 deletions ch05_moving_in_file.md
Original file line number Diff line number Diff line change
Expand Up @@ -346,3 +346,8 @@ H 跳转到当前屏幕的第一行
最后,为了提高效率你不需要知道所有的Vim的命令,大多数Vim用户也都不知道,你只需要学习当下能够帮助你完成任务的命令。

慢慢来,导航技巧是Vim中很重要的技巧,每天学一点并且把它学好。

## 链接
- [目录](./directory.md)
- 上一部分 [Ch 4 - Vim 语法](./ch04_vim_grammar.md)
- 下一部分 [Ch 6 - 插入模式](./ch06_insert_mode.md)
5 changes: 5 additions & 0 deletions ch06_insert_mode.md
Original file line number Diff line number Diff line change
Expand Up @@ -162,3 +162,8 @@ Ctrl-o D 从当前位置开始删除文本,直到行末
如果你和我一样是从其他文本编辑器转到Vim的,你或许也会觉得一直待在输入模式下很有诱惑力,但是我强烈反对你在没有输入文本时,却仍然待在输入模式下。应该养成当你的双手没有在输入时,就退出到普通模式的好习惯。

当你需要进行输入时,先问问自己将要输入的文本是否已经存在。如果存在的话,试着复制或者移动这段文本而不是手动输入它。再问问自己是不是非得进入输入模式,试试能不能尽可能地使用自动补全来进行输入。尽量避免重复输入同一个单词。

## 链接
- [目录](./directory.md)
- 上一部分 [Ch 5 - 移动文件](./ch05_moving_in_file.md)
- 下一部分 [Ch 7 - 点命令](./ch07_the_dot_command.md)
5 changes: 5 additions & 0 deletions ch07_the_dot_command.md
Original file line number Diff line number Diff line change
Expand Up @@ -132,3 +132,8 @@ f
在进行编辑时,思考一下你正将进行的操作是否是可以重复的。举个例子,如果我需要删除接下来的三个单词,是使用`d3w`更划算,还是`dw`再使用`.`两次更划算?之后还会不会再进行删除操作?如果是这样的话,使用`dw`好几次确实比`d3w`更加合理,因为`dw`更加有复用性。在编辑时应该养成“修改操作驱动”的观念。

点命令非常简单但又功能强大,帮助你开始自动化处理简单的任务。在后续的章节中,你将会学习到如何使用Vim的宏命令来自动化处理更多复杂的操作。但是首先,还是让我们来学习一下如何使用寄存器来存取文本吧。

## 链接
- [目录](./directory.md)
- 上一部分 [Ch 6 - 插入模式](./ch06_insert_mode.md)
- 下一部分 [Ch 8 - 寄存器](./ch08_registers.md)
5 changes: 5 additions & 0 deletions ch08_registers.md
Original file line number Diff line number Diff line change
Expand Up @@ -260,3 +260,8 @@ set clipboard=unnamed
普通人的短期记忆都是有极限的,大概每次只能记住5-7个信息。这就是为什么在我的日常编辑中,我只用3到7个命名寄存器的原因,我没有办法记住整整26个寄存器的内容。我通常从寄存器"a"开始用,之后用寄存器"b",以字母表升序的顺序来使用。尝试一下各种方法,看看哪种最适合你。

Vim寄存器非常强大,合理使用的话能够避免你输入数不清的重复文本。但是现在,是时候学习一下宏命令了。

## 链接
- [目录](./directory.md)
- 上一部分 [Ch 7 - 点命令](./ch07_the_dot_command.md)
- 下一部分 [Ch 9 - 宏](./ch09_macros.md)
5 changes: 5 additions & 0 deletions ch09_macros.md
Original file line number Diff line number Diff line change
Expand Up @@ -268,3 +268,8 @@ import { FUNC5 } from "library5";
使用某种助记符去帮助你记住宏命令是很有帮助的。如果你有一个创建函数(function)的宏命令,你可以使用 “f” 寄存器去录制它(`qf`)。如果你有一个宏命令去操作数字,那么使用寄存器 “n” 去记住它是很好的(`qn`)。用你想执行的操作时想起的第一个字符给你的宏命令命名。另外,我发现 “q” 是一个很好的宏命令默认寄存器,因为执行 `qq` 去调用宏命令是很快速而简单的。最后,我喜欢按照字母表的顺序去添加我的宏命令,例如从 `qa``qb` 再到 `qc`

去寻找最适合你的方法吧。

## 链接
- [目录](./directory.md)
- 上一部分 [Ch 8 - 寄存器](./ch08_registers.md)
- 下一部分 [Ch 10 - 撤消](./ch10_undo.md)
5 changes: 5 additions & 0 deletions ch10_undo.md
Original file line number Diff line number Diff line change
Expand Up @@ -273,3 +273,8 @@ two
`u``Ctrl-R` 是两个不可缺少的 Vim 参数。请先学会它们。在我的工作流中,我并不使用 UNDO,然而我认为承认它存在是很好的。下一步,学会如何使用`:earlier``:later`,以及时间参数。在这之后,请花些时间理解 undo 树。 插件 [vim-mundo](https://github.com/simnalamburt/vim-mundo) 对我的帮助很大。单独输入本章中展示的文本,并且查看撤销树的每一次改变。一旦你掌握它,你看待撤销系统的眼光一定不同。

在本章之前,你学习了如何在项目内查找任何文本,配合撤销,你可以在时间维度上查找任何一个文本。你现在可以通过位置和写入时间找到任何一个你想找的文本。你已经对 Vim 无所不能了。

## 链接
- [目录](./directory.md)
- 上一部分 [Ch 9 - 宏](./ch09_macros.md)
- 下一部分 [Ch 11 - 可视模式](./ch11_visual_mode.md)
5 changes: 5 additions & 0 deletions ch11_visual_mode.md
Original file line number Diff line number Diff line change
Expand Up @@ -320,3 +320,8 @@ gCtrl-h 逐块选择模式
可视模式是Vim高亮显示文本的过程。

如果发现使用可视模式操作的频率比正常模式操作的频率高得多,请当心。我认为这是一种反模式。运行可视模式操作所需的击键次数要多于普通模式下的击键次数。假设您需要删除一个内部单词(inner word,请回顾前面的文本对象),如果可以只用三个按键(`diw`),为什么要使用四个按键`viwd`(先`v`进入可视模式,然后`iw`高亮一个内部单词,最后`d`删除)呢?前者更为直接和简洁。当然,有时使用可视模式是合适的,但总的来说,更倾向于直接的方法。

## 链接
- [目录](./directory.md)
- 上一部分 [Ch 10 - 撤消](./ch10_undo.md)
- 下一部分 [Ch 12 - 搜索和替换](./ch12_search_and_substitute.md)
5 changes: 5 additions & 0 deletions ch12_search_and_substitute.md
Original file line number Diff line number Diff line change
Expand Up @@ -717,3 +717,8 @@ q
一种提高模式匹配技能的好方法是,每当您需要搜索一个模式串时(例如"hello 123"),不要直接查询文字的字面值(`/hello 123`),去尝试使用模式串来搜索它(比如`/\v(\l+) (\d+)`)。这些正则表达式概念中的许多不仅在使用 Vim 时,也适用于常规编程。

既然您已经了解了 Vim 中的高级搜索和替换,现在让我们学习功能最丰富的命令之一,即全局命令。

## 链接
- [目录](./directory.md)
- 上一部分 [Ch 11 - 可视模式](./ch11_visual_mode.md)
- 下一部分 [Ch 13 - 全局命令](./ch13_the_global_command.md)
5 changes: 5 additions & 0 deletions ch13_the_global_command.md
Original file line number Diff line number Diff line change
Expand Up @@ -550,3 +550,8 @@ const arrayA = [
每当需要在多个位置应用命令时,请暂停并查看是否可以使用`g`命令。寻找最适合工作的命令,并编写一个模式串以同时定位多个目标。

既然您已经知道全局命令的功能强大,那么让我们学习如何使用外部命令来增加工具库。

## 链接
- [目录](./directory.md)
- 上一部分 [Ch 12 - 搜索和替换](./ch12_search_and_substitute.md)
- 下一部分 [Ch 14 - 外部命令](./ch14_external_commands.md)
5 changes: 5 additions & 0 deletions ch14_external_commands.md
Original file line number Diff line number Diff line change
Expand Up @@ -214,3 +214,8 @@ filter normal命令仅适用于至少一行以上的motion或至少一行以上
Vim不是IDE。它是一种轻量级的模式编辑器,通过设计可以高度扩展。由于这种可扩展性,您可以轻松访问系统中的任何外部命令。这样,Vim离成为IDE仅一步之遥。有人说Unix系统是有史以来的第一个IDE。

Bang 命令的有用程度与您知道多少个外部命令相关。如果您的外部命令知识有限,请不要担心。我还有很多东西要学。以此作为持续学习的动力。每当您需要过滤文本时,请查看是否存在可以解决问题的外部命令。不必担心掌握所有的命令。只需学习完成当前任务所需的内容即可。

## 链接
- [目录](./directory.md)
- 上一部分 [Ch 13 - 全局命令](./ch13_the_global_command.md)
- 下一部分 [Ch 15 - 命令行模式](./ch15_command-line_mode.md)
5 changes: 5 additions & 0 deletions ch15_command-line_mode.md
Original file line number Diff line number Diff line change
Expand Up @@ -94,3 +94,8 @@ Vim有几百个内置指令,要查看Vim的所有指令,执行 `:h ex-cmd-in
对比其他三种模式,命令行模式就像是文本编辑中的瑞士军刀。寥举几例,您可以编辑文本、修改文件和执行命令。本章是命令行模式的零碎知识的集合。同时,Vim 模式的介绍也走向尾声。现在,您已经知道如何使用普通、输入、可视以及命令行模式,您可以比以往更快地使用 Vim 来编辑文本了。

是时候离开 Vim 模式,来了解如何使用 Vim 标记进行更快的导航了。

## 链接
- [目录](./directory.md)
- 上一部分 [Ch 14 - 外部命令](./ch14_external_commands.md)
- 下一部分 [Ch 16 - 标签](./ch16_tags.md)
5 changes: 5 additions & 0 deletions ch16_tags.md
Original file line number Diff line number Diff line change
Expand Up @@ -368,3 +368,8 @@ functionFood -> functionBreakfast -> functionPancake
进一步可以知道,这段代码和早餐吃煎饼有关。

现在您已经知道如何使用标签,通过 `:h tags` 可以学习更多有关标签的知识。接下来让我们一起来探索另一个功能:折叠。

## 链接
- [目录](./directory.md)
- 上一部分 [Ch 15 - 命令行模式](./ch15_command-line_mode.md)
- 下一部分 [Ch 17 - 折叠](./ch17_fold.md)
5 changes: 5 additions & 0 deletions ch17_fold.md
Original file line number Diff line number Diff line change
Expand Up @@ -366,3 +366,8 @@ autocmd BufWinEnter *.txt silent loadview
当我刚开始使用 Vim 时, 我会跳过学习 Vim 折叠,因为我觉得它不太实用。然而,随着我码龄的增长,我越发觉得折叠功能大有用处。得当地使用折叠功能,文本结构可以更加清晰,犹如一本书籍的目录。

当您学习折叠时,请从手动折叠开始,因为它可以随学随用。然后逐渐学习不同的技巧来使用缩进和标志折叠。最后,学习如何使用语法和表达式折叠。您甚至可以使用后两个来编写您自己的 Vim 插件。

## 链接
- [目录](./directory.md)
- 上一部分 [Ch 16 - 标签](./ch16_tags.md)
- 下一部分 [Ch 18 - Git](./ch18_git.md)
5 changes: 5 additions & 0 deletions ch18_git.md
Original file line number Diff line number Diff line change
Expand Up @@ -339,3 +339,8 @@ vim-fugitive 插件允许您在不离开 Vim 编辑器的情况下运行 git 命
每个人都有不同的 git 工作流,可能 vim-fugitive 非常合适您的工作流(也可能不适合)。总之,我强烈建议您试试上面列出的所有插件。可能还有一些其他的我没有列出来,都可以去试一试。

要让Vim-git的集成工作得更好,一个显而易见的办法就是去深入了解git。Git 本身是一个很庞大的主题,我只向您展示了它其中很小的一部分。好了,接下来谈谈如何使用 Vim 编译您的代码。

## 链接
- [目录](./directory.md)
- 上一部分 [Ch 17 - 折叠](./ch17_fold.md)
- 下一部分 [Ch 19 - 编译](./ch19_compile.md)
5 changes: 5 additions & 0 deletions ch19_compile.md
Original file line number Diff line number Diff line change
Expand Up @@ -290,3 +290,8 @@ autocmd BufEnter *_spec.rb let b:dispatch = 'bundle exec rspec %'
## 聪明地学习编译

在本章中,您了解到可以使用 `make``compiler` 命令从Vim内部异步运行 *任何* 进程,以完善您的编程工作流程。Vim 拥有通过其他程序来扩展自身的能力,这使其变得强大。

## 链接
- [目录](./directory.md)
- 上一部分 [Ch 18 - Git](./ch18_git.md)
- 下一部分 [Ch 20 - 视图、会话和 Viminfo](./ch20_views_sessions_viminfo.md)
5 changes: 5 additions & 0 deletions ch20_views_sessions_viminfo.md
Original file line number Diff line number Diff line change
Expand Up @@ -395,3 +395,8 @@ set viminfo="NONE"
Vim 能使用视图、会话和 Viminfo 来保存不同级别的 Vim 环境快照。对于微型项目,可以使用视图;对于大型项目,可以使用会话。您应该花些时间来查阅视图、会话和 Viminfo 提供的所有选项。

为您的编辑风格创建属于您自己的视图、会话和 Viminfo。如果您要换台计算机使用 Vim,只需加载您的设置,立刻就会感到就像在家里的工作环境一样!

## 链接
- [目录](./directory.md)
- 上一部分 [Ch 19 - 编译](./ch19_compile.md)
- 下一部分 [Ch 21 - 多文件操作](./ch21_multiple_file_operations.md)
5 changes: 5 additions & 0 deletions ch21_multiple_file_operations.md
Original file line number Diff line number Diff line change
Expand Up @@ -185,3 +185,8 @@ Vim将为 `drinks.txt`所在 *窗口*再创建一个 *单独*的位置列表,
事实上,您可能并不会用到所有8种方法。您会慢慢倾向于其中1中或2种。当您刚开始时,选择其中1个(我个人建议从参数列表开始 `:argdo`)并掌握它。当您习惯了其中1个,然后再学下一个。您将会发现,学习第二个、第三个、第四个时要容易多了。记得要创造性的使用,即将它和其他各种不同命令组合起来使用。坚持练习直到您可以不经思考地高效的使用它。让它成为您的肌肉记忆。

就像前面已经说过的,您现在已经掌握了Vim的编辑功能。恭喜您!

## 链接
- [目录](./directory.md)
- 上一部分 [Ch 20 - 视图、会话和 Viminfo](./ch20_views_sessions_viminfo.md)
- 下一部分 [Ch 22 - Vimrc](./ch22_vimrc.md)
5 changes: 5 additions & 0 deletions ch22_vimrc.md
Original file line number Diff line number Diff line change
Expand Up @@ -398,3 +398,8 @@ vim -u ~/.vimrc-backup
## 聪明地配置Vimrc

Vimrc是定制Vim时的一个重要组件,学习构建您的Vimrc最好是首先阅读他人的vimrc文件,然后逐渐地建立自己的。最好的vimrc并不是谁谁谁使用的,而是最适合您的工作需要和编辑风格的。

## 链接
- [目录](./directory.md)
- 上一部分 [Ch 21 - 多文件操作](./ch21_multiple_file_operations.md)
- 下一部分 [Ch 23 - Vim软件包](./ch23_vim_packages.md)
4 changes: 4 additions & 0 deletions ch23_vim_packages.md
Original file line number Diff line number Diff line change
Expand Up @@ -131,3 +131,7 @@ endif

如果您是极简主义者,可以尝试一下Vim软件包。如果您是一名插件重度使用者,您可能需要一个插件管理器。

## 链接
- [目录](./directory.md)
- 上一部分 [Ch 22 - Vimrc](./ch22_vimrc.md)
- 下一部分 [Ch 24 - Vim Runtime](./ch24_vim_runtime.md)
4 changes: 4 additions & 0 deletions ch24_vim_runtime.md
Original file line number Diff line number Diff line change
Expand Up @@ -282,3 +282,7 @@ set rtp+=$HOME/box/of/donuts/
## 聪明地学习Runtime

花点时间阅读本章,还有认真研究一下这些runtime路径。看一下真实环境下runtime路径是如何使用的。浏览一下您最喜欢的Vim插件仓库,仔细研究一下它的目录结构,您应该能够理解它们中的绝大部分。试着领会重点并跟着做。现在您已经理解了Vim的目录结构,您可以准备学习Vimscript了。

## 链接
- [目录](./directory.md)
- 上一部分 [Ch 23 - Vim软件包](./ch23_vim_packages.md)
35 changes: 35 additions & 0 deletions directory.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
# 目录

### 序言

- [Ch 0 - 请先阅读](./ch00_read_this_first.md)

### 第一部分:聪明地学习Vim

- [Ch 1 - 起步](./ch01_starting_vim.md)
- [Ch 2 - 缓冲区,窗口和选项卡](./ch02_buffers_windows_tabs.md)
- [Ch 3 - 打开和搜索文件](./ch03_searching_files.md)
- [Ch 4 - Vim 语法](./ch04_vim_grammar.md)
- [Ch 5 - 移动文件](./ch05_moving_in_file.md)
- [Ch 6 - 插入模式](./ch06_insert_mode.md)
- [Ch 7 - 点命令](./ch07_the_dot_command.md)
- [Ch 8 - 寄存器](./ch08_registers.md)
- [Ch 9 - 宏](./ch09_macros.md)
- [Ch 10 - 撤消](./ch10_undo.md)
- [Ch 11 - 可视模式](./ch11_visual_mode.md)
- [Ch 12 - 搜索和替换](./ch12_search_and_substitute.md)
- [Ch 13 - 全局命令](./ch13_the_global_command.md)
- [Ch 14 - 外部命令](./ch14_external_commands.md)
- [Ch 15 - 命令行模式](./ch15_command-line_mode.md)
- [Ch 16 - 标签](./ch16_tags.md)
- [Ch 17 - 折叠](./ch17_fold.md)
- [Ch 18 - Git](./ch18_git.md)
- [Ch 19 - 编译](./ch19_compile.md)
- [Ch 20 - 视图、会话和 Viminfo](./ch20_views_sessions_viminfo.md)
- [Ch 21 - 多文件操作](./ch21_multiple_file_operations.md)

### 第二部分:聪明地定制Vim

- [Ch 22 - Vimrc](./ch22_vimrc.md)
- [Ch 23 - Vim软件包](./ch23_vim_packages.md)
- [Ch 24 - Vim Runtime](./ch24_vim_runtime.md)

0 comments on commit 18ee3c3

Please sign in to comment.