第二章:vim编辑器的使用
@
@1. 编辑保存文件
- @1.1 插入模式
@2. 模式切换
- @2.1 命令模式
- @2.2 保存和退出
- @2.3 搜索字符串
- @2.4 替换字符串
- @2.5 删除、复制、粘贴
- @2.6 撤销和重做
@3. 查找和行数设置
vim是Unix和Linux上的编辑器,功能十分强大
用法:vim file 或 vim
1. 编辑保存文件
按i或a进入编辑模式
分插入和命令两种模式
1.1 插入模式
操作方法:输入字符,并可以按光标键移动字符位置
| 命令 | 所执行的操作 |
|---|---|
| a | 在光标后插入 |
| i | 在光标所在位置插入 |
| o | 在光标所在位置的下一行插入 |
| Esc | 进入命令模式 |
| : | 进入命令模式 |
2. 模式切换
2.1 命令模式
执行除输入字符之外的所有操作,包括搜索、保存、移动光标等。
vim启动默认是在命令模式,如果在编辑模式,需要按Esc切换回命令模式
可以使用光标键控制上下左右移动,或者h、j、k、l移动
2.2 保存和退出
保存文件、退出等需要切换到命令行模式,在插入模式下输入Esc再输入:w :q 或者:wq等。
前提:必须切换到命令模式。注意组合命令执行的顺序:w->q->!
| 命令 | 所执行的操作 |
|---|---|
| :w | 保存文件 |
| :w filename | 另存为filename |
| :q | 退出vim |
| :q! | 强制退出,放弃保存 |
| :wq! | 保存并强制退出 |
2.3 搜索字符串
前提:需切换到命令模式
/string用于向下搜索一个字符串
?string用于向上搜索一个字符串
如果需要启动或关闭大小写敏感,执行:
:set ignorecase
或
:set noignorecase
2.4 替换字符串
前提:必须切换到命令模式
语法: :[range]s/pattern/string/[c、e、g、i]
这条命令将 pattern 所代表的字符串替换成 string。开头的range 用于指定替换作用的范围,如“1,10” 表示从第1行到第10行,“1,$”表示从第1行到最后一行,也就是全文。全文也可以用 “%” 表示。
最后的方括号是可选项,含义如下:
| 标志 | 含义 |
|---|---|
| c | 每次替换前询问 |
| e | 不显示错误信息 |
| g | 替换一行中的所有匹配项(这个选项通常需要使用) |
| i | 不区分大小写 |
如Windows 环境下的源码经常会有 “^M”的字符,要清除可以使用下面的命令:
:%s/^M$//g
2.5 删除、复制、粘贴
前提:必须切换到命令模式
| 命令 | 所执行的操作 |
|---|---|
| x | 删除光标所在位置的字符 |
| dd | 删除光标所在的行,按下2加上两次dd表示删除2行 |
| D | 删除光标所在位置到行尾之间所有字符 注意区分大小写 |
| d | 普遍意义上的删除命令,和移动命令配合使用。例如dw表示删除光标所在位置到下一单词词头之间的所有字符 |
| yy | 复制光标所在的行,5yy就是拷贝当前行向下的5行 |
| y | 普遍意义上的复制命令,和移动命令配合使用。例如yw表示复制光标所在位置到下一单词词头之间的所有字符 |
| p | 在光标所在位置粘贴最近复制/删除的内容 |
2.6 撤销和重做
前提:必须切换到命令模式
| 命令 | 所执行的操作 |
|---|---|
| u | 撤销上一步操作 |
| Ctrl+R | 恢复上一步被撤销的操作 |
3. 查找和行数设置
前提:必须切换到命令模式
| 命令 | 所执行的操作 |
|---|---|
| /+需要查找的关键字按回车 | 在文件中查找某个单词 |
| :set+nu或:set+number | 设置文档的行号 |
| :set+nonu或:set+nonumber | 取消文档的行号 |
| G | 跳转到文档最末行 |
| gg | 跳转到文档的最首行 |
💡 跳转到指定的行数
💡 第一步:显示文档的行号`:set number`
💡 第二步:输入需要跳转的行数,例如100行
💡 第三步:按`shift+g`完成跳转