修改完成

主要修改了格式 文字稍作了修改 有一些地方没有完全按照原文翻
This commit is contained in:
fan Li 2018-02-07 23:11:16 +08:00 committed by GitHub
parent e7c2b3f674
commit d05ae85286

View File

@ -1,143 +1,142 @@
译者ljgibbslf 修改中 校对的同学可以暂缓
如何使用 VI 编辑器:基础篇
====
# 如何使用 VI 编辑器:基础篇
VI 是一个基于命令行,功能强大的文本编辑器,最早为 Unix 系统开发,后来也被移植到许多的 Unix 和 Linux 发行版上。
在 linux 上还存在着另一个VI编辑器的高阶版本 —— VIM也被称作 VI IMproved。VIM 在 VI 已经很强的功能上添加了更多的功能,这些功能有:
在 linux 上还存在着另一个VI编辑器的高阶版本 —— VIM也被称作 VI IMproved。VIM 只是在 VI 已经很强的功能上添加了更多的功能,这些功能有:
- 支持更多 Linux 发行版。
- 支持多种编程语言,包括 python,c++,perl 等语言的代码块折叠,语法高亮。
- 支持通过多种网络协议,包括 httpssh等支持在压缩格式下编辑文件
- 支持分屏同时编辑多个文件
- 支持更多 Linux 发行版,
- 支持多种编程语言,包括 python,c++,perl 等语言的代码块折叠,语法高亮,
- 支持通过多种网络协议,包括 httpssh等编辑文件
- 支持在压缩格式下编辑文件,
- 支持分屏同时编辑多个文件。
接下里我们来讨论 VI/VIM 的命令以及选项。本文出于教学的目的,我们使用 VI 来举例,但所有的命令都可以被用于 VIM。首先我们先介绍 VI 编辑器的两种模式。
接下来我们会讨论 VI/VIM 的命令以及选项。本文出于教学的目的,我们使用 VI 来举例,但所有的命令都可以被用于 VIM。首先我们先介绍 VI 编辑器的两种模式。
## **命令模式**
命令模式
----
命令模式下,我们可以保存文件,在 VI 内运行命令,复制/剪切/粘贴操作,以及查找/替换等任务。当我们处于输入模式时,我们可以按下 escapeEsc键返回命令模式
输入模式
----
## **输入模式**
在输入模式下,我们可以键入文件内容。在命令模式下按下 i 进入输入模式
我们可以通过下述命令建立一个文件(如果该文件存在,则编辑已有文件)
$ vi filename
**$ vi filename**
一旦该文件被创立或者打开,我们首先进入命令模式,我们需要进入输入模式以在文件中输入内容。我们通过前文已经大致上了解这两种模式。
退出 Vi
-----
### **退出 Vi**
如果是想从输入模式中退出,我们首先需要按下 'ESC' 进入命令模式。接下来我们可以根据不同的需要分别使用两种命令退出 Vi
- 不保存退出 - 在命令模式中输入 :q!
- 保存并退出 - 在命令模式中输入 :wq
1. 不保存退出 - 在命令模式中输入 **':q!'**
2. 保存并退出 - 在命令模式中输入 **':wq'**
移动光标
### **移动光标**
----
下面我们来讨论下那些在命令模式中移动光标的命令和选项
- k 将光标上移一行
1. **k** 将光标上移一行
- j 将光标下移一行
2. **j** 将光标下移一行
- h 将光标左移一个字母
3. **h** 将光标左移一个字母
- i 将光标右移一个字母
4. **i** 将光标右移一个字母
注意:如果你想通过一个命令上移下移多行,或者左移右移多个字母,你可以使用 4k 或者 5j,这两条命令会分别上移 4 行或者右移 5 个字母。
- 0 将光标移动到该行行首
1. **0** 将光标移动到该行行首
- $ 将光标移动到该行行尾
2. **$** 将光标移动到该行行尾
- nG 将光标移动到第 n 行
3. **nG** 将光标移动到第 n 行
- G 将光标移动到文件的最后一行
4. **G** 将光标移动到文件的最后一行
- { 将光标移动到上一段
5. **{** 将光标移动到上一段
- } 将光标移动到下一段
6. **}** 将光标移动到下一段
除此之外还有一些命令可以用于控制光标的移动,但上述列出的这些命令应该就能应付日常工作所需。
编辑文本
----
## **编辑文本**
这部分会列出一些用于命令模式的命令,可以进入插入模式来编辑当前文件
- i 在光标所在行的行首插入内容
1. **i** 在光标所在行的行首插入内容
- I 在光标所在行的行尾插入内容
2. **I** 在光标所在行的行尾插入内容
- a 在当前光标之前插入内容
3. **a** 在当前光标之前插入内容
- A 在当前光标之后插入内容
4. **A** 在当前光标之后插入内容
- o 在当前光标所在行之前添加一行
5. **o** 在当前光标所在行之前添加一行
- O 在当前光标所在行之后添加一行
6. **O** 在当前光标所在行之后添加一行
删除文本
----
## **删除文本**
以下的这些命令都只能在命令模式下使用,所以首先需要按下 'ESC' 进入命令模式,如果你正处于插入模式
- dd 删除光标所在的整行内容,可以在 dd 前增加数字,比如 2dd可以删除从光标所在行开始的两行
1. **dd** 删除光标所在的整行内容,可以在 dd 前增加数字,比如 2dd可以删除从光标所在行开始的两行
- d$ 删除从光标所在行开始的所有行
2. **d$** 删除从光标所在行开始的所有行
- d^ 删除从文件开始直到光标所在行的所有行
3. **d^** 删除从文件开始直到光标所在行的所有行
- dw 删除从光标所在位置直到下一个词开始的所有内容
4 **dw** 删除从光标所在位置直到下一个词开始的所有内容
复制黏贴命令
------
### **复制黏贴命令**
- yy 复制当前行在yy前添加数字可以复制多行
1. **yy**复制当前行在yy前添加数字可以复制多行
- p 在光标之后粘贴复制行
2. **p** 在光标之后粘贴复制行
- P 在光标之前粘贴复制行
3. **P** 在光标之前粘贴复制行