精通VI编辑器:高级命令详解与应用技巧
需积分: 12 135 浏览量
更新于2024-09-20
收藏 6KB TXT 举报
"这篇文章主要介绍了VI高级命令集锦,详细讲解了如何使用vi编辑器进行文本操作,适合熟悉UNIX环境的用户进阶学习。"
在UNIX和类UNIX系统中,VI(Visual Editor)是一个非常重要的文本编辑器,因其高效且功能强大而受到广泛使用。本文将深入探讨VI编辑器的一些高级命令,帮助你更好地掌握这个工具。
1. **切换模式**:VI编辑器有插入模式和命令模式两种状态。在命令模式下输入`i`进入插入模式,按`Esc`键返回命令模式。
2. **剪切与粘贴**:`dd`用于剪切(删除)当前行,`p`用于在当前位置粘贴。`dp`可以交换两行的位置。
3. **行移动**:`:g/^/m0`命令将所有行移动到文件顶部,其中`^`表示行首,`0`表示文件开头。
4. **复制行**:`yy`复制当前行,`n`个`yy`则复制`n`行。复制后使用`p`粘贴。
5. **删除操作**:`dG`删除从当前行到文件末尾的所有行,`d$`删除当前行至行尾的内容,`d$`可以删除当前行至行尾的内容,`d0`删除当前行至行首的内容。
6. **区域删除**:`d{n}`删除当前行之后的`n`行,`d{m,n}`删除第`m`行到第`n`行。
7. **区域复制**:`y{n}`复制当前行之后的`n`行,`y$`复制当前行至行尾,然后使用`p`粘贴。`y$`复制当前行至行尾,按`Shift`+`p`可以反向粘贴。
8. **定义别名**:`:abstring strings`创建别名,例如`:abusa UnitedStatesofAmerica`,之后输入`usa`会自动扩展为`UnitedStatesofAmerica`。
9. **映射键位**:`:mapkeys new_seq`将`keys`映射到`new_seq`,比如`:map! kj esc`使在插入模式下按下`kj`相当于按`Esc`。
10. **设置选项**:`:set[all]`显示或修改vi的选项,如`:set nu`显示行号。
11. **粘贴方式**:`nyy`复制`n`行,`p`粘贴时,如果`set paste`已启用,则不会改变原有的字符间距;反之,`set nopaste`时,粘贴会保持原有的格式。
12. **多文件操作**:在不同文件间切换,`:n`打开下一个文件,`:N`打开上一个文件,`:e filename`编辑指定文件。
13. **替换字符**:`:%s/old_word/new_word/g`全局替换每行的`old_word`为`new_word`,`g`表示全局替换。
14. **标记与跳转**:`m{a-z}`在当前行设置标记,`'{a-z}`跳转到标记位置。`k`向上,`j`向下移动,`n`倍数。`mk`保存当前位置,`'k`跳回`k`标记处。
15. **删除操作扩展**:使用`d`配合不同的移动键,如`d8-2`删除从当前行到第8行之前的2行,`dl`删除当前字符,`x`效果相同,`d0`删除至行首,`d^`删除至非空白字符。
16. **替换操作扩展**:`s`替换当前字符,`S`替换整行,`5s`替换5个连续字符。`:g/s1/s/s2/s3/g`全局查找`s1`并用`s2`和`s3`替换。
这些高级命令使得VI编辑器成为了一个强大的文本处理工具,熟练掌握这些技巧,能极大地提高你在文本编辑和处理方面的效率。不断练习和探索,你会发现VI编辑器的无限可能。
2012-04-25 上传
148 浏览量
2010-08-03 上传
123 浏览量
141 浏览量
2010-04-15 上传
2019-08-03 上传
onion_25
- 粉丝: 0
- 资源: 3
最新资源
- ARDUINO蓝牙例程.rar
- information-retrieval:unipd IR 课程的内容
- 家装空间3d模型
- 楚多齐尔
- BBSxp论坛 小蜜蜂
- MIPCMS内容管理系统 V2.1.2
- rosjava_core:支持 Android 的纯 Java ROS 实现
- darlinf-portar-proyectos
- react-app46031239595955455
- budget_tracker
- React_Krowdy-Video
- ionic HTML5 移动端开源框架 v3.7.1
- randomwalk:创建任意维度的随机游走-matlab开发
- Star Trek: Continuum:重制《星际迷航:完全重制家庭世界》-开源
- 企业广场:企业广场
- AndroidScanQRCode.rar.rar