vi 文本编辑工具

我们下面介绍 vi 文本编辑工具。

我们通过命令行操作远程服务器时,有时要编辑一下上面的一些文件,比如说配置文件。比如 Hadoop 默认的是复制四份,你觉得不够,你要复制五份,那么你要在上面打开一个配置文件,把里面那个四给它修改成五。这个时候,你说我先下载下来,用 word 打开,改一下再传上去。这是不是太麻烦了?更快捷的方式是利用 vi,就在这个终端窗口里头,打开一个文件,编辑完了之后,再存起来,然后退出。所以这个vi的基本操作也是大家要掌握的。

vi 熟悉起来要一点时间,但会用了的话,就特别快,比 Word 快很多。为什么呢?因为它像命令行那样,也是能够接受各种命令的。

用 vi 操作的时候,心里面要有一种感觉,是它现在是工作在一个什么状态下。

它有三种状态:

第一种状态是“命令”状态。此时,你敲什么东西,vi 不会显示在屏幕上,而是把它们当作“命令”,然后执行你的命令。

比如说你敲一个”dd”。vi 不会在屏幕上给你输出”dd”,它会把这个”dd”理解为是你在给它一个命令。这个命令代表着什么呢?就是把光标在的这一行删掉。所以你想把这一行删掉,那你就进入这个命令模式,然后敲”dd”,一行就没了。快速吧?

通过这些命令,我们能够高效地编辑文件。比如你想删掉六行,就敲 6dd。你想 undo 刚才的操作,就敲 u。想删掉这个单词,就 dw,想替换这个单词,就 cw。

类似的,光标移动,比如把光标跳到一个单词的首字母,或者跳到一行的开头,或者跳到这一行的结束,都有相应的命令。删除一个字符,一个字,或者整行;把这一行复制 n 遍,都有相应的命令。

如果想搜索,就先敲 / 斜杠,然后输入想要搜索的字符串。如果想搜下一个,就按 n。如果已经搜索到底了,它就会提示我们,然后从头开始搜。

当你这么工作的时候,旁边的人就像你在写天书似的,只见你敲几下键盘,文字就变成了你想要的文字,觉得“泰酷辣”。其实是你在“命令”模式下,用命令在控制 vi 这个机器人在干活呢,所以就特别酷。这就是命令模式。

第二种状态是“插入”状态。在命令模式下,敲一个”i”,就是“插入(insert)”的意思,就会进入 insert 模式。这个时候你敲的字符就会出现在屏幕上,插入你的文本里。这时候你就可以敲你想写的文本了。

你想退出这个模式,回到命令模式的话,你就敲一下键盘左上角的 ESC 键,就回到命令行模式了,就可以 dd 什么的了。

第三种状态是“底行命令”模式。比如你最后要把写好的内容,写入硬盘,这时候你可以输入冒号“:”,就会进入这个模式。然后你输入 w,就是“写入”(write)的意思,你的文件就保存到硬盘上了。如果输入 q,就是“退出”(quit),就退出了。如果你改了它,但想放弃这些修改,直接退出,就 q!

如果文件的行数特别多,你想看一下行号,就冒号,然后 set nu。你想要到最后一行,就冒火,然后 $。如果要到第一行,你就冒号,然后 1。

如果想对其中的字符串进行全程替换,就冒号,然后 s 再加要搜索和替换的词。

为了进行数据科学的工作,掌握命令行和vi是十分必要的。


Index Previous Next