Vim 编辑器功能及运用
Vi/Vim介绍
- VI(Visual Interface),是一个文本编辑器,主要在Unix及类Unix环境中使用。
- Vim(Vi+improved)在Vi的基础之上进行了功能提升,相当于Vi的增强版。
编辑器有三种模式:\
- 命令或普通(Normal)模式:默认模式,可以实现移动光标,剪切/粘贴文本
- 插入(Insert)或编辑模式:用于修改文本
- 扩展命令(extended command )或末行模式:保存,退出等搜索替代
每种模式可以进行不同的操作,完成不同的功能。
命令模式
我们平时在windos系统上编辑文件,肯定会涉及到复制、粘贴、删除等操作,而这些操作在vi中都是在命令模式下进行的。
命令模式是默认模式,要进入编辑模式和命令模式都需要它作为桥梁。
用vi命令打开一个文件直接进入命令模式,在这个模式中可以对文本内容进行复制、粘贴、删除等操作。可以通过键盘方向键控制光标移动到指定位置,也可以通过快捷键控制光标位置。
基本命令
| 操作类型 | 操作键 | 功能 |
|---|---|---|
| 翻页 | Pagedown | 向下翻页 |
| Pageup | 向上翻页 | |
| 行内快递跳转 | Home;0;^ | 跳到本行的行首。Home和0跳到真行首,^跳到第一个非空字符。 |
| 按 End 键或$ | 跳转到本行的行尾 | |
| 行间快速跳转 | 1G 或 gg | 跳转到文件的第一行包括空行 |
| G | 跳转文件的末尾 | |
| #G | #代表行号数字,直接跳转到#行 | |
| M | 跳转到当前显示页面的中间行 | |
| H | 跳转到当前显示页面的页首 | |
| L | 跳转到当前显示页面的页底 | |
| 删除 | x或delete | 删除当前光标的字符 |
| #d | 删除#个字符 | |
| dd | 删除一整行 | |
| #dd | 删除当前光标处向下的#行(包括当前行) | |
| d^ | 删除当前光标之前到行首 | |
| d$ | 删除当前光标到行尾 | |
| dw | 删除当前光标处的单词 | |
| 替换 | R 或shift+r | 替换当前光标处文字,会进入替换模式 |
| 复制粘贴 | yy | 复制当前光标处整行 |
| #yy | 复制当前光标处向下的#行(包括当前行) | |
| p (小写) | 粘贴到光标处下一行 | |
| P (大写) | 粘贴到光标处上一行 | |
| 撤销操作 | u | 只取消上一次的操作,可多次使用 |
| U | U 取消所有操作 | |
| 查找 | /字符 | 你要的字符 |
| ?字符 | 你要的内容 | |
| n | 向下查找 | |
| N | 向上查找 | |
| 移动光标 | zt | 将光标所在当前行移到屏幕顶端 |
| zz | 将光标所在当前行移到屏幕中间 | |
| zb | 将光标所在当前行移到屏幕底端 |
编辑模式
在命令模式下,通过如下i、a、o、r命令进入编辑模式,对文档内容进行编辑。命令的区别在于进入编辑模式后光标插入点不同。
基本命令
| 快捷键 | 功能描述 |
|---|---|
| i | 在光标处输入 |
| I | 在当前光标所在行的行首输入 |
| o | 在光标所在行的下面插入新的一行 |
| O | 在光标所在行的上面插入新的一行 |
| a | 在当前光标所在处后输入 |
| A | 在当前光标所在行的行尾输入 |
末行模式
末行模式:文件中的指定内容执行保存、查找或替换等操作。使 Vim 切换到编辑模式的方法是在命令模式状态下按“:”(英文冒号)键,此时 Vim 窗口的左下方出现一个“:”符号,这是就可以输入相关指令进行操作了。
基本命令
| 命令 | 功能效果 |
|---|---|
| :q | 退出不保存 |
| --- | ------- |
| :q! | 强制退出不保存 |
| :w | 保存 |
| :wq | 保存并退出 |
| :w 路径 | 另存为 |
| :r 文件路径 | 把另一个文件加入到当前文件编辑 |
| .!命令 | 读取命令结果,写入当前文件中 |
| :set all | 显示所有的命令选项 |
| :set nu | 显示行号 |
| :set nonu | 关闭行号 |
| :set cul | 显示下划线 |
| :set nocul | 关闭下划线 |
| :set list | 显示隐藏字符 |
| :set key=你设置的密码 | 加密 |
| :set key= | 解除密码 |
| :set ai | 自动缩进 |
| :s /old/new/g | 替换当前行中的所有old改为new(/@#都可做分隔符) |
| :#,# s/old/new/g | #到#行所有old改为new |
| :% s/old/new/g | %代表全文,全文替换所有old改为new |
| :$ s/AB/CD/g | $表示最后一行,最后一行的AB替换为CD |
| :$-1 s/AB/CD/g | $-1表示倒数第二行,倒数第二行进行替换 |
总结
以上为vim编辑器基本的使用命令,多敲!多敲!多敲!