vi 入门

许多新的 Linux 管理员发现 vi 编辑器复杂且令人生畏。它不像他们以前可能使用过的其他编辑器那样用户友好,但通过一点练习,vi 可以成为管理文件的强大工具。

本文并非要让您成为 vi 的高手。相反,它试图让您熟悉编辑器,以便您可以在需要时学习更高级的工具。

背景

vi 最初被称为“可视编辑器”,因为您可以一次在屏幕上看到整个文件。它最初是在一个没有功能键和鼠标的世界中开发的。管理员只有基本的键盘按键,因此必须充分利用他们所拥有的工具。每个键在 vi 中都有一个功能,但是您如何区分文本和命令呢?

模式

vi 有两种模式:命令模式和输入模式。

首次打开文件时,默认模式为命令模式。在此模式下,您的击键在编辑器中执行不同的操作。但是请注意;为了扩展可能的命令数量,vi 区分大小写,因此大写和小写字母几乎总是具有不同的行为。某些字符(最值得注意的是冒号 (:) 和正斜杠 (/))会激活应用程序内命令行以用于多字符命令。

输入模式使您可以在文件中输入文本。您可以使用一组命令模式字符激活此模式。屏幕底部的状态栏指示正在使用的输入模式。 <esc> 键退出输入模式,并将编辑器返回到命令模式。

移动

虽然您可以使用箭头键在现代版本的 vi 中移动文件,但编辑器的优势之一是您永远不需要将手从主键位上移开。这意味着减少了不必要的移动并提高了效率。

简单的移动键是 h、j、k 和 l。

命令操作助记符
h光标向左键位于键盘组的左侧
j光标向下“向下跳”
k光标向上“向上踢”
l光标向右(小写字母 l)键位于键盘组的右侧

许多管理员仅使用这四个键来导航他们的文件。在您熟悉基本移动后,下一步是学习如何更有效地移动。

命令操作
0(零)转到当前行的开头
$转到当前行的末尾
w前进一个单词
b后退一个单词
G转到文件的最后一行

管理文本

多个命令启动输入模式,具体取决于您在文件中放置文本的位置和方式。

命令操作
i在当前光标位置插入文本
a在当前光标位置之后追加文本
I(大写 I)在当前行的开头插入文本
A在当前行的末尾追加文本
r替换当前光标位置的字母
R在管理员键入时替换单个字符
o(小写字母 o)打开下方一行以添加文本
O(大写字母 O)打开上方一行以添加文本

要操作文本,主要命令是 x(字符删除或“删除线”)、d(删除)、y(复制或“复制”)和 p(粘贴)。 y 和 d 命令需要其他字符来指示要复制或删除的文本量。 前置数字会重复该数字的操作次数。

命令操作
x删除光标位置后的字符
dw删除整个单词
dd删除整行
yw复制整个单词
yy复制整行
y$复制到当前行的末尾
p将复制或删除的文本粘贴到当前光标位置之后
P将复制或删除的文本粘贴到当前光标位置之前
4dw删除接下来的四个单词
u撤销上一个操作
U撤销自上次进入当前行以来的所有更改
.重复上一个操作

关闭文件

与文本编辑器一样,vi 允许您通过多种方式退出文件,无论是否保存。某些文件需要 : 字符,该字符允许您在屏幕上看到您键入的命令。

命令操作
:q退出文件(如果需要保存会提示)
:q!强制退出文件(放弃未保存的更改)
:w写入(保存)文件
:w <filename>写入文件并重命名为 <filename>
:w!强制写入(覆盖您拥有的只读文件)
:wq写入文件,然后退出
zz写入文件,然后退出(也称为“将文件放到床上”)