Linux环境下使用VI编辑器的全面指南
需积分: 10 105 浏览量
更新于2024-09-15
收藏 11KB TXT 举报
"该资源是一份关于Linux下`vi`编辑器命令的综合指南,包含了打开、移动光标、编辑文本、查找与替换等基本操作,以及一些高级功能的使用方法。"
在Linux系统中,`vi`(Visual Editor)是一款强大的文本编辑器,它允许用户在终端中对文件进行各种编辑操作。以下是一些`vi`的基本命令和高级用法:
1. **打开文件**:
- `vi filename`:打开名为`filename`的文件。
- `vi +n filename`:从文件的第n行开始打开。
- `vi + filename`:从文件末尾开始打开。
- `vi +/pattern filename`:从包含`pattern`模式的第一行开始打开。
2. **编辑模式**:
- `i`:插入模式,光标前开始输入。
- `I`:在当前行首插入。
- `a`:追加模式,在光标后开始输入。
- `A`:在当前行尾追加。
- `o`:在当前行下新建一行并开始输入。
- `O`:在当前行上新建一行并开始输入。
3. **移动光标**:
- `h`:向左移动一字符。
- `l`:向右移动一字符。
- `space`:向右移动一字符。
- `Backspace`:向左移动一字符。
- `k`或`Ctrl+p`:向上移动一行。
- `j`或`Ctrl+n`:向下移动一行。
- `0`:移动到当前行首。
- `$`:移动到当前行尾。
4. **文本选择和删除**:
- `w`:向前移动到下一个单词的开头。
- `b`:向后移动到前一个单词的开头。
- `e`:向前移动到当前单词的结尾。
- `(`:向前移动到下一个句子的开头。
- `)`:向后移动到前一个句子的结尾。
- `{`:向前移动到下一个段落的开头。
- `}`:向后移动到前一个段落的结尾。
- `nG`:移动到文件的第n行。
- `G`:移动到文件的最后一行。
5. **复制、剪切和粘贴**:
- `yy`:复制当前行。
- `nyy`:复制从当前行开始的n行。
- `p`:粘贴在当前光标位置下方。
- `P`:粘贴在当前光标位置上方。
- `dd`:删除当前行。
- `ndd`:删除从当前行开始的n行。
6. **查找与替换**:
- `/pattern`:向前查找`pattern`。
- `?pattern`:向后查找`pattern`。
- `n`:重复上次查找方向的查找。
- `N`:反向重复上次查找方向的查找。
- `s/p1/p2/g`:替换当前行中所有`p1`为`p2`。
- `n1,n2s/p1/p2/g`:在范围`n1`到`n2`内的行中替换`p1`为`p2`。
7. **其他命令**:
- `:g/p1/s//p2/g`:全局替换,将所有包含`p1`的行替换为`p2`。
- `:all`:执行所有未执行的命令。
- `:term`:打开一个终端窗口。
- `:ignorance`:忽略大小写匹配。
- `:list`:显示行号。
- `:number`:显示行号。
- `:report`:设置报告行数。
- `:terse`:简洁模式,只显示关键信息。
- `:warn`:在不保存时离开提示。
- `:nomagic`:关闭特殊字符匹配。
- `:nowrapscan`:搜索时不跳过行尾。
- `:mesg`:关闭消息显示。
- `:n1,n2con3`:将范围`n1`到`n2`的内容复制到`n3`行下。
- `:n1,n2mn3`:将范围`n1`到`n2`标记为n3。
- `:n1,n2dn`:删除范围`n1`到`n2`的行。
8. **保存与退出**:
- `:w`:保存当前文件但不退出。
- `:wq`:保存并退出。
- `:x`:同`:wq`。
- `:q`:退出,如果文件已修改,会提示无法退出。
- `:q!`:强制退出,不保存修改。
9. **执行外部命令**:
- `:!command`:在shell中执行`command`命令。
- `:n1,n2w!command`:将范围`n1`到`n2`的内容通过`command`过滤后再写回。
- `:r!command`:将`command`的输出插入到当前行下。
10. **历史记录与撤销**:
- `ndd`:删除n行,并存入缓冲区。
- `"?nyy`:将n行存入寄存器`?`。
- `"?nyw`:将n行内容存入寄存器`?`。
- `"?nyl`:将n个字符存入寄存器`?`。
- `"?p`:粘贴寄存器`?`的内容。
- `U`:撤销上一步操作。
- `.`:重复上一步操作。
以上只是`vi`编辑器的部分命令,实际上它还有许多其他功能和复杂的组合使用方式,熟练掌握这些命令将大大提高你在终端中编辑文本的效率。
2023-06-12 上传
2023-02-15 上传
2019-08-30 上传
2022-09-22 上传
2021-12-25 上传
2019-09-09 上传
cool1li
- 粉丝: 1
- 资源: 10
最新资源
- 探索数据转换实验平台在设备装置中的应用
- 使用git-log-to-tikz.py将Git日志转换为TIKZ图形
- 小栗子源码2.9.3版本发布
- 使用Tinder-Hack-Client实现Tinder API交互
- Android Studio新模板:个性化Material Design导航抽屉
- React API分页模块:数据获取与页面管理
- C语言实现顺序表的动态分配方法
- 光催化分解水产氢固溶体催化剂制备技术揭秘
- VS2013环境下tinyxml库的32位与64位编译指南
- 网易云歌词情感分析系统实现与架构
- React应用展示GitHub用户详细信息及项目分析
- LayUI2.1.6帮助文档API功能详解
- 全栈开发实现的chatgpt应用可打包小程序/H5/App
- C++实现顺序表的动态内存分配技术
- Java制作水果格斗游戏:策略与随机性的结合
- 基于若依框架的后台管理系统开发实例解析