The Linux Command Line——13. vi 简介
启动 vi,这次传递给 vi 一个不存在的文件名。这也是用 vi 创建新文件的方法。
插入模式:按下 “i” 键进入插入模式,在屏幕底部看到如下的信息。
按下 Esc 按键退出插入模式返回命令模式。
保存我们的工作
按下冒号键之后,一个冒号字符应该出现在屏幕的底部,为了写入我们修改的文件,我们在冒号之后输入 “w” 字符,然后按下回车键:
移动光标
基本编辑
删除文本
剪切,复制和粘贴文本
查找和替换
查找一行
f 命令能搜索一特定行,并将光标移动到下一个匹配的字符上。例如,命令 fa 会把光标定位到同一行中下一个出现的 “a” 字符上。在进行了一次行内搜索后,输入分号能重复这次搜索。
查找整个文件
移动光标到下一个出现的单词或短语上,使用 / 命令。这个命令和我们之前在 less 程序中学到的一样。当你输入/命令后,一个 “/” 字符会出现在屏幕底部。接下来,输入要查找的单词或短语,按下回车。光标就会移动到下一个包含所查找字符串的位置。通过 n 命令来重复先前的查找。
全局查找和替代
vi 使用 ex 命令来执行查找和替代操作(vi 中叫做“替换”)。将整个文件中的单词“Line”更改 为“line”,输入以下命令:
编辑多个文件
通过 vi,我们可以打开多个文件来编辑,只要在命令行中指定要编辑的文件名。
用 vi 来编辑我们的原文件和新创建的文件:
vi 启动,我们会看到第一个文件显示出来:
文件之间切换
从这个文件切换下一个文件,使用这个 ex 命令:
回到先前的文件使用:
当我们从一个文件移到另一个文件时,如果当前文件没有保存修改,vi 会阻止我们切换文件,这是 vi 强制执行的政策。在命令之后添加感叹号,可以强迫 vi 放弃修改而转换文件。
使用:buffers 命令。运行这个命 令后,屏幕顶部就会显示出一个文件列表:
要切换到另一个缓冲区(文件),输入:buffer, 紧跟着你想要编辑的缓冲器编号。
跨文件复制黏贴
当我们编辑多个文件时,经常地要复制文件的一部分到另一个正在编辑的文件。使用之前我们学到的拉(yank)和粘贴命令,这很容易完成。说明如下。以打开的两个文件为例,首先转换到缓冲区 1(foo.txt),输入:
我们应该得到如下输出:
下一步,把光标移到第一行,并且输入 yy 来复制这一行。 转换到第二个缓冲区,输入:
移动光标到第一行,输入 p 命令把我们从前面文件中复制的一行粘贴到这个文件中:
插入整个文件到另一个文件
我们也可以把整个文件插入到我们正在编辑的文件中。看一下实际操作,结束 vi 会话,重新启动一个只打开一个文件的 vi 会话:
这个:r 命令(是 “read” 的简称)把指定的文件插入到光标位置之前。