diff --git a/translated/tech/LFCS/Part 2 - LFCS: How to Install and Use vi or vim as a Full Text Editor.md b/translated/tech/LFCS/Part 2 - LFCS: How to Install and Use vi or vim as a Full Text Editor.md new file mode 100644 index 0000000000..e300edbb99 --- /dev/null +++ b/translated/tech/LFCS/Part 2 - LFCS: How to Install and Use vi or vim as a Full Text Editor.md @@ -0,0 +1,392 @@ +GHLandy Translated + +LFCS系列第二讲:如何安装和使用纯文本编辑器vi/vim + +================================================================================ + +几个月前, Linux 基金会发起了 LFCS (Linux 基金会认证系统管理员)认证,以帮助世界各地的人来验证他们能够在 Linux 系统上做基本的中间系统管理任务:如系统支持,第一手的故障诊断和维修,以及何时向上游支持团队提出问题的智能决策。 + +![Learning VI Editor in Linux](http://www.tecmint.com/wp-content/uploads/2014/10/LFCS-Part-2.png) + +在 Linux 中学习 vi 编辑器 + +请简要看看一下视频,里边介绍了 Linux 基金会认证的程序。 + +注:youtube 视频 + + + +这篇文章是十个tutorial系列的第二部分,在这个部分,我们会介绍 vi/vim 基本的文件编辑操作和理解编辑器中的(三个)模式,这是LFCS认证考试中必须掌握的。 + +### 使用 vi/vim 执行基本的文件编辑操作 ### + +vi 是为了 Unix 而被编写的第一个全屏文本编辑器。由于它被设计得小巧而简单,对于只使用图形界面编辑器,举几个例子,如 NotePad++ 或者 gedit 的那些人来说,使用起来可能存在一些困难。 + +为了使用 vi,我们必须首先理解这个强大的程序操作中的3种模式,方便我们后边学习这个强大文本处理软件的相关操作。 + +请注意,大多数的现代 Linux 发行版都集成了 vi 的变种——— vim(vi升级版),相比于 vi,它有更多新功能。由于这个原因,我们会在本教程中交替使用 vi 和 vim。 + +如果你的发行版还没有安装 vim,你可以通过以下方法来安装: + +- Ubuntu 及其衍生版:apt-get update && apt-get install vim +- 以 Red-Hat 为基础的发行版:yum update && yum install vim +- openSUSE :zypper update && zypper install vim + +### 我为什么要学习 vi ### + +至少有以下两点好理由: + +1.(不管你使用什么发行版)vi 总是可用的,因为它是 POSIX 所要求的。 + +2.vi 基本不消耗多少系统资源,并且允许我们仅仅通过键盘来完成任何可能的任务。 + +此外,vi 有的非常广泛的内置 manual 帮助,程序打开后就可以通过 :help 命令来查看。这个内置 manual 帮助比 vi/vim 的 man 页面包含了更多信息。 + +![vi Man Pages](http://www.tecmint.com/wp-content/uploads/2014/10/vi-man-pages.png) + +vi Man 页面 + +#### 启动 vi #### + +可以通过在命令提示符下输入 vi 来启动。 + +![Start vi Editor](http://www.tecmint.com/wp-content/uploads/2014/10/start-vi-editor.png) + +使用 vi 编辑器 + +然后按下字母 i,你就可以开始输入了。或者通过下面的方法来启动 vi: + + # vi filename + +这样会打开一个名为 filename 的 buffer(稍后详细介绍 buffer),在你编辑完成之后就可以存储在磁盘中了。 + +#### 理解 vi 的三个模式 #### + +1.在命令模式中,vi 允许用户浏览该文件并输入由一个或多个字母组成简短的、大小写敏感的 vi 命令。这些命令的大部分都可以增加一个前缀数字表示执行次数。 + +比如:yy(或Y) 复制当前的整行,3yy(或3Y) 复制当前整行和下边紧接着的两行(总共3行)。通过 Esc 键可以随时进入命令模式(而不管当前工作在什么模式下)。事实上,在命令模式下,键盘上所有的输入都被解释为命令而非文本,这往往使得初学者困惑不已。 + +2.在末行模式中,我们可以处理文件(包括保存当前文件和运行外部程序)。我们必须在命令模式下输入一个冒号(:),才能进入这个模式,紧接着是需要使用的末行模式下的命令。执行之后 vi 自动回到命令模式。 + +3.在文本输入模式(通常使用字母 i 进入这个模式)中,我们可以随意输入文本。大多数的键入将以文本形式输出到屏幕(一个重要的例外是Esc键,它将退出文本编辑模式并回到命令模式)。 + +![vi Insert Mode](http://www.tecmint.com/wp-content/uploads/2014/10/vi-insert-mode.png) + +vi 文本插入模式 + +#### vi 命令 #### + +下面的表格列出常用的 vi 命令。文件版本的命令可以通过添加叹号的命令强制执行(如,:q! 命令强制退出编辑器而不保存文件)。 + +注:表格 +
关键命令 | +描述 | +
h 或 ← | +光标左移一个字符 | +
j 或 ↓ | +光标下移一行 | +
k 或 ↑ | +光标上移一行 | +
l (小写 L) 或 → | +光标右移一个字符 | +
H | +光标移至屏幕顶行 | +
L | +光标移至屏幕末行 | +
G | +光标移至文件末行 | +
w | +光标右移一个词 | +
b | +光标左移一个词 | +
0 (零) | +光标移至行首 | +
^ | +光标移至当前行第一个非空格字符 | +
$ | +光标移至当前行行尾 | +
Ctrl-B | +向后翻页 | +
Ctrl-F | +向前翻页 | +
i | +在光标所在位置插入文本 | +
I (大写 i) | +在当前行首插入文本 | +
J (大写 j) | +将下一行与当前行合并(下一行上移到当前行) | +
a | +在光标所在位置后追加文本 | +
o (小写 O) | +在当前行下边插入空白行 | +
O (大写 o) | +在当前行上边插入空白行 | +
r | +替换光标所在位置的字符 | +
R | +光标所在位置覆盖插入文本 | +
x | +删除光标所在位置的字符 | +
X | +立即删除光标所在位置之前(左边)的一个字符 | +
dd | +剪切当前整行文本(为了之后进行粘贴) | +
D | +剪切光标所在位置到行末的文本(该命令等效于 d$) | +
yX | +给 X 命令一个移动长度,复制适当数量的字符、单词或者从光标开始到一定数量的行 | +
yy 或 Y | +复制当前整行 | +
p | +粘贴在光标所在位置之后(下一行) | +
P | +粘贴在光标所在位置之前(上一行) | +
. (句点) | +重复最后一个命令 | +
u | +撤销最后一个命令 | +
U | +撤销最后一行的最后一个命令,只有光标仍在最后一行才能执行。 | +
n | +在查找中跳到下一个匹配项 | +
N | +在查找中跳到前一个匹配项 | +
:n | +下一个文件,编辑多个指定文件时,该命令加载下一个文件。 | +
:e file | +加载新文件来替代当前文件 | +
:r file | +将新文件的内容插入到光标所在位置的下一行 | +
:q | +退出并放弃更改 | +
:w file | +将当期打开的buffer保存为file。如果是追加到已存在的文件中,则使用 :w >> file 命令 | +
:wq | +保存当前文件的内容并退出。等效于 x! 和 ZZ | +
:r! command | +执行 command 命令,并将命令的输出插入到光标所在位置的下一行 | +