Linux vi编辑器实用技巧
需积分: 1 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环境中编辑文本文件,提升工作效率。
2021-09-30 上传
2024-04-24 上传
2022-07-14 上传
2010-08-16 上传
2009-05-06 上传
2022-09-20 上传
爱在1949
- 粉丝: 0
- 资源: 1
最新资源
- 火炬连体网络在MNIST的2D嵌入实现示例
- Angular插件增强Application Insights JavaScript SDK功能
- 实时三维重建:InfiniTAM的ros驱动应用
- Spring与Mybatis整合的配置与实践
- Vozy前端技术测试深入体验与模板参考
- React应用实现语音转文字功能介绍
- PHPMailer-6.6.4: PHP邮件收发类库的详细介绍
- Felineboard:为猫主人设计的交互式仪表板
- PGRFileManager:功能强大的开源Ajax文件管理器
- Pytest-Html定制测试报告与源代码封装教程
- Angular开发与部署指南:从创建到测试
- BASIC-BINARY-IPC系统:进程间通信的非阻塞接口
- LTK3D: Common Lisp中的基础3D图形实现
- Timer-Counter-Lister:官方源代码及更新发布
- Galaxia REST API:面向地球问题的解决方案
- Node.js模块:随机动物实例教程与源码解析