全面掌握vi编辑器命令
需积分: 10 72 浏览量
更新于2024-09-15
收藏 4KB TXT 举报
"vi命令大全"
`vi` 是一个强大的文本编辑器,在Unix和类Unix系统如Linux、BSD以及macOS中广泛使用。本资源主要涵盖了`vi` 的各种操作命令,帮助用户熟练掌握编辑文本的技巧。
### 基本模式
`vi` 编辑器有三种模式:命令模式、插入模式和底行模式。
1. **命令模式**:在命令模式下,你可以移动光标、删除文本、复制和粘贴等。
2. **插入模式**:通过某些命令(如 `i`, `a`, `o`),你可以插入文本。
3. **底行模式**:用于执行保存、退出等全局操作。
### 光标移动
- `h`: 光标向左移动一格
- `l`: 光标向右移动一格
- `space`: 光标向右移动一格
- `Backspace`: 光标向左移动一格
- `k`: 光标向上移动一行
- `j`: 光标向下移动一行
- `Ctrl+p`: 光标向上移动一行(相当于 `k`)
- `Ctrl+n`: 光标向下移动一行(相当于 `j`)
### 行与单词的操作
- `w`: 移动到下一个单词的开头
- `W`: 同 `w`,但以空格作为单词分隔
- `b`: 移动到当前单词的开头或前一个单词的末尾
- `B`: 同 `b`,但以空格作为单词分隔
- `e`: 移动到当前单词的末尾
- `E`: 同 `e`,但以空格作为单词分隔
- `)`: 移动到下一个句子的末尾
- `(`: 移动到上一个句子的开头
- `{`: 移动到上一个段落的开头
- `}`: 移动到下一个段落的末尾
### 查找与替换
- `/pattern`: 向下查找匹配`pattern`的文本
- `?pattern`: 向上查找匹配`pattern`的文本
- `n`: 下一个匹配项
- `N`: 上一个匹配项
- `s/p1/p2/g`: 将当前行中的所有`p1`替换为`p2`
- `n1,n2s/p1/p2/g`: 在行号`n1`到`n2`之间替换`p1`为`p2`
### 撤销与重做
- `u`: 撤销最近一次操作
- `Ctrl+r`: 重做撤销的操作
### 复制、剪切与粘贴
- `yy`: 复制当前行
- `nny`: 复制从当前行开始的`n`行
- `p`: 在光标下方粘贴
- `P`: 在光标上方粘贴
- `dd`: 剪切(删除)当前行
- `ndd`: 剪切(删除)从当前行开始的`n`行
### 文件操作
- `:w`: 保存当前文件
- `:w filename`: 另存为`filename`
- `:x`: 保存并退出
- `:q`: 退出(如果文件未保存,会阻止退出)
- `:q!`: 强制退出,不保存
- `:!command`: 执行shell命令`command`
### 其他常用命令
- `:n1,n2con3`: 从行`n1`到`n2`的内容复制到行`n3`后面
- `:n1,n2mn3`: 将行`n1`到`n2`标记为`n3`
- `:n1,n2d`: 删除行`n1`到`n2`
- `:!`: 运行shell命令并将输出显示在屏幕上
- `:r file`: 读取`file`的内容插入到当前行下面
### 设置与选项
- `:set term`: 设置终端类型
- `:set ignorecase`: 忽略大小写进行搜索
- `:set list`: 显示行号和特殊字符
- `:set number`: 显示行号
- `:set report=0`: 不显示计数的报告
- `:set terse`: 显示简短的错误信息
- `:set nowarn`: 关闭写入文件时的警告
- `:set nomagic`: 关闭正则表达式的特殊字符功能
- `:set nowrapscan`: 在搜索时不跨越文件边界
以上仅是`vi`命令的一部分,更多高级功能和技巧需要在实际使用中不断探索和学习。通过熟练掌握这些命令,你将能更高效地处理文本编辑任务。
2018-11-24 上传
2019-01-05 上传
2011-09-30 上传
2011-08-20 上传
diamondp
- 粉丝: 0
- 资源: 6
最新资源
- 探索数据转换实验平台在设备装置中的应用
- 使用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制作水果格斗游戏:策略与随机性的结合
- 基于若依框架的后台管理系统开发实例解析