vim常用工作模式
命令模式 输入模式 末行模式 可视模式 替换模式
命令模式:启动后默认模式
插入模式:输入模式(i)
末行模式:保存、退出、查找、替换
可视模式:选择区块文本(v V)
替换模式:(R 多字符替换) | 命令模式(r)替换单个字符
切换:
退出vim(末行模式)
:q | 如果未对文件做改动则退出 |
:q! | 放弃保存并退出 |
:wq | 保存当前文件并退出 |
:wq! | 强制保存当前文件并退出 |
:x | 保存当前文件并退出 |
:x! | 强制保存当前文件并退出 |
命令模式操作
光标移动
翻页 | Page Down或Ctrl+F | 向下翻动一整页内容 |
Page Up或Ctrl+B | 向上翻动一整页内容 | |
行内快速跳转 | w | 按字(单词)移动光标 |
Home键或“^”、“0” | 跳转至行首 | |
End键或“$”键 | 跳转到行尾 | |
行间快速跳转 | 1G或者gg | 跳转到文件的首行 |
G | 跳转到文件的末尾行 | |
#G | 跳转到文件中的第#行 |
删除复制粘贴
删除 (剪贴) | x或Del | 删除光标处的单个字符 |
dd | 删除当前光标所在行 | |
#dd | 删除从光标处开始的#行内容 | |
d^ | 删除当前光标之前到行首的所有字符 | |
d$ | 删除当前光标处到行尾的所有字符 | |
复制 | yy | 复制当前行整行的内容到剪贴板 |
#yy | 复制从光标处开始的#行内容 | |
替换 | r | 替换光标处的内容,单个字符 |
粘贴 | p | 将缓冲区中的内容粘贴到光标位置处之后(下一行) |
P | 粘贴到光标位置处之前(上一行) |
文件内查找
/内容 从上而下查找 n定位下一个字符
?内容 从下而上查找 N定位上一个字符(自动转换为 ?内容)
撤销
u 撤销
U 撤销当前行操作
重复操作
.键
末行模式基本操作
文件内容替换
:s/old/new | 将当前行中查找到的第一个字符“old” 串替换为“new” |
:s/old/new/g | 将当前行中查找到的所有字符串“old” 替换为“new” |
:#,# s/old/new/g | 在行号“#,#”范围内替换所有的字符串“old”为“new” |
:% s/old/new/g | 在整个文件范围内替换所有的字符串“old”为“new” |
:s/old/new/c | 在替换命令末尾加入c命令,将对每个替换动作提示用户进行确认 |
1,$=%所有行
:%d 删除所有
:1,5d 删除行
打开文件或读取其他文件内容
:e 文件名 打开新文件 :e /tmp/group
:r 文件名 读入 :r /tmp/group ()
撤销
e! 撤销对文件的所有操作
w 文件名 另存为
多文件操作
vim 文件1 文件2...
:n 编辑下一个
:N 编辑上一个
:files 列出打开的文件名
vim -o 文件1 文件2... 上下显示
切换光标 ctrl +ww
vim -O 文件1 文件2... 左右显示
切换光标 ctrl +ww
vim界面,执行shell命令
末行模式 :!命令 结束按回车返回vim界面
vim -p 文件1 文件2... 以标签页形式打开多个文件
:tabnew 增加一个标签
:tabc 关闭当前的tab
:tabo 关闭所有其他的tab
:tabs 查看所有打开的tab
:tabp 或gT 前一个
:tabn 或gt 后一个
标记 mark
26个标记,a-z
创建: ma(mb mc...)
跳到a: `a (反引号 Esc键下面)
查看标记: :marks
''(两次单引号) 跳转到 跳转前的位置的首位
删除标记: :delmarks a
加密(多次加密,密码依旧是第一次的)
:X
删除密码
:set key=
:wq!
可视模式 v随意选中块
V选中整行
多行缩进
V 行可视模式
选中多行
向右缩进 >
向左缩进 <