Linux vi编辑器实用技巧

需积分: 1 0 下载量 75 浏览量 更新于2024-09-13 收藏 11KB TXT 举报
"这篇资料主要介绍了Linux环境下常用的vi编辑器的一些基础知识,包括启动vi、移动光标、编辑文本、查找与替换等操作,以及一些高级功能。vi是Linux系统中的一个强大文本编辑器,对于程序员和系统管理员来说是必备的技能之一。" 在Linux环境中,vi(Visual Editor)是一个非常重要的文本编辑工具,其全称是VIM(Vi IMproved),它提供了一种命令行下的文本编辑体验。下面我们将详细探讨vi编辑器的各种知识点: 1. **启动vi编辑器** - `vi filename`: 打开名为`filename`的文件进行编辑。 - `vi +n filename`: 直接将光标定位到文件的第n行。 - `vi + filename`: 将光标置于文件的最后一行。 - `vi /pattern filename`: 搜索名为`filename`的文件,并在找到第一个匹配`pattern`的行处开始编辑。 2. **基本移动操作** - `h`: 光标左移一格。 - `l`: 光标右移一格。 - `space`: 光标右移一格,相当于按一次空格键。 - `Backspace`: 光标左移一格,相当于退格键。 - `k`: 光标上移一行。 - `j`: 光标下移一行。 - `Ctrl+p`: 上一个历史命令。 - `Ctrl+n`: 下一个历史命令。 3. **编辑操作** - `i`: 在当前光标位置插入文本。 - `I`: 在当前行首插入文本。 - `a`: 在当前光标位置之后追加文本。 - `A`: 在当前行尾追加文本。 - `o`: 在当前行下方新开一行并插入文本。 - `O`: 在当前行上方新开一行并插入文本。 - `r`: 替换当前字符。 - `R`: 连续替换模式,按Esc结束。 4. **行操作** - `w`: 向前移动到下一个单词的开头。 - `W`: 跳过空格和制表符,移动到下一个单词的开头。 - `b`: 向后移动到当前单词的开头。 - `B`: 同`b`,但跳过空格和制表符。 - `e`: 移动到当前单词的结尾。 - `E`: 同`e`,但跳过空格和制表符。 - `(`: 移动到当前句子的开头。 - `)`: 移动到当前句子的结尾。 - `{`: 移动到当前段落的开头。 - `}`: 移动到当前段落的结尾。 - `nG`: 移动到第n行。 - `G`: 移动到文件末尾。 - `n+n`: 向下移动n行。 - `n-n`: 向上移动n行。 5. **剪切、复制与粘贴** - `n$n`: 选中当前行至第n行。 - `yy`: 复制当前行。 - `nyy`: 复制n行。 - `p`: 粘贴到光标下方。 - `P`: 粘贴到光标上方。 - `dd`: 删除当前行。 - `ndd`: 删除n行。 - `x`: 删除当前字符。 - `X`: 删除当前字符的前一个字符。 6. **查找与替换** - `/pattern`: 向下搜索`pattern`。 - `?pattern`: 向上搜索`pattern`。 - `n`: 下一个匹配项。 - `N`: 上一个匹配项。 - `s/p1/p2/g`: 在当前行替换所有`p1`为`p2`。 - `n1,n2s/p1/p2/g`: 在n1至n2行范围内替换所有`p1`为`p2`。 - `g/p1/s//p2/g`: 在整个文件中替换所有`p1`为`p2`。 7. **其他高级功能** - `all`: 应用所有未保存的更改。 - `term`: 查看终端类型。 - `ignorcase`: 关闭大小写敏感搜索。 - `list`: 显示行号和制表符(用Ctrl+I查看)。 - `number`: 开启行号显示。 - `report`: 设置多行操作时报告的最小行数。 - `terse`: 只显示必要的错误信息。 - `warn`: 修改文件时显示未写入的警告。 - `nomagic`: 关闭特殊字符的正则表达式语法。 - `nowrapscan`: 不允许搜索跨行。 - `mesg`: 控制是否显示外部消息。 - `n1,n2con3`: 将n1到n2行的内容复制到第n3行后面。 - `n1,n2mn3`: 将n1到n2行的内容标记为n3。 - `n1,n2dn1`: 删除n1到n2行。 - `w`: 保存当前文件。 - `e filename`: 用`filename`替换当前文件。 - `x`: 保存并退出vi。 - `q`: 退出vi,如果文件被修改过,则会提示保存。 - `q!`: 强制退出vi,不保存更改。 - `!command`: 执行shell命令`command`。 - `n1,n2w!command`: 将n1到n2行的内容作为输入传递给`command`,并替换原来的行。 - `r!command`: 读取`command`的输出并替换当前行。 - `"?nyy`: 将当前行复制到寄存器`n`。 - `"?nyw`: 将当前行保存到寄存器`n`。 - `"?nyl`: 将当前行的字符保存到寄存器`n`。 - `"?p`: 粘贴寄存器`n`的内容。 - `ndd`: 删除当前行并将其保存到寄存器1,用于实现删除多行的快速操作。 通过熟练掌握这些vi编辑器的基本操作和高级技巧,用户可以更高效地在Linux环境中编辑文本文件,提升工作效率。
2023-06-23 上传
2023-06-23 上传
2023-06-23 上传