掌握vi编辑器: shell组合技巧与实战

需积分: 9 4 下载量 14 浏览量 更新于2024-08-25 收藏 545KB PPT 举报
"这篇文档是关于shell命令与vi编辑器使用的教程,主要涵盖了shell脚本中的循环操作以及vi编辑器的基础操作,包括两种工作模式、输入与光标移动的命令,以及一些基本的编辑功能。" 在【标题】中提到的“少量技巧——shell组合-vi使用手册”指的是如何结合使用shell命令和vi编辑器来完成特定任务。在这个例子中,`for`循环被用来迭代处理一批`.c`结尾的文件,通过`vi $i<replace.cmd`的命令,将`replace.cmd`文件中的内容应用到每个`.c`文件中。 【描述】中提到的问题是需要处理一堆文本文件,去除每文件的头尾两行,并添加页码后再合并。这是一个典型的文本处理需求,可以通过shell脚本配合vi编辑器的命令来实现。首先,可以使用shell脚本逐个读取文件,然后利用vi的命令对文件进行编辑,例如删除首尾行,接着使用编号命令(如awk或sed)添加页码,最后使用cat或其他工具将处理后的文件合并。 在【标签】中提到的“vi”是UNIX和Linux系统中的一个全屏文本编辑器,具有悠久的历史和强大的功能。vi有两个主要的工作模式:命令模式和输入模式。在【部分内容】中,详细介绍了这两个模式的特性以及如何在它们之间切换。在命令模式下,用户可以执行各种操作,如移动光标、删除文本、复制粘贴等,而输入模式则允许用户直接在光标位置输入文本。 在vi的【常用命令】部分,列举了一些基础操作: - `i` 和 `I` 用于在光标前或行首开始插入文本。 - `a` 和 `A` 用于在光标后或行尾开始追加文本。 - `o` 和 `O` 用于在当前行下方或上方开始新行并输入。 - `h`, `j`, `k`, `l` 分别用于光标左右上下移动。 - `^` 和 `$` 移动到行首和行尾。 - `w`, `b` 用于在单词间移动。 - `G` 移动到文件末尾。 - `[Ctrl]f` 和 `[Ctrl]b` 分别用于向前和向后翻页。 - `x` 删除光标处字符,`dd` 删除整行,`D` 删除至行尾,`r` 和 `R` 替换字符。 - `s` 和 `cw` 替换字符或单词,`J` 连接当前行与下一行。 这些命令是vi编辑器的基本操作,对于日常文本编辑和脚本编写非常重要。熟练掌握这些命令能极大地提高工作效率。在处理批量文本文件或者编写自动化脚本时,vi的高效和灵活性尤为突出。