一、Vim命令行模式常见快捷方式
1. 三种主要模式:
① 命令(Normal)模式:
默认模式,移动光标,剪切/粘贴文本
② 插入(Insert)或编辑模式:
修改文本
③ 扩展命令(extended command )模式:
保存,退出等
2. 模式间转换:
① 命令模式 --> 插入模式
i insert, 在光标所在处输入
此处按i键,结果如下
I 在当前光标所在行的行首输入
同理,按I键,结果如下
a append, 在光标所在处后面输入
同理,按a键,结果如下
A 在当前光标所在行的行尾输入
同理,按A键,结果如下
o 在当前光标所在行的下方打开一个新行
同理,按o键,结果如下
O 在当前光标所在行的上方打开一个新行
同理,按O键,结果如下
② 插入模式 --------> 命令模式
按ESC键
③ 命令模式 --------> 扩展命令模式
按:进入扩展命令模式,可输入命令
④ 扩展命令模式 --------> 命令模式
按ESC键取消命令或按enter键执行命令可从扩展命令模式进入命令模式
3. 关闭文件方法:
① 扩展命令模式
:q 退出
:q! 强制退出,丢弃做出的修改
:wq 保存退出
:x 保存退出
② 命令模式
ZZ 保存退出
ZQ 不保存退出
4. 扩展命令模式常用命令:
① w 写(存)磁盘文件
② wq 写入并退出
见上面的“关闭文件方式”
③ x 写入并退出
见上面的“关闭文件方式”
④ q 退出
见上面的“关闭文件方式”
⑤ q! 不存盘退出,即使更改都将丢失
见上面的“关闭文件方式”
⑥ r filename 读文件内容到当前文件中
⑦ w filename 将当前文件内容写入另一个文件
⑧ !command 执行命令
⑨ r!command 读入命令的输出
5. 命令模式光标跳转:
① 字符间跳转
h: 左 l: 右 j: 下 k: 上
#COMMAND:跳转由#指定的个数的字符
例如:按3h即向左跳转3个字符
② 单词间跳转
w:下一个单词的词首
e:当前或下一单词的词尾
当前单词词尾:
下个单词词尾:
b:当前或前一个单词的词首
当前单词词首
前一个单词词首
#COMMAND:由#指定一次跳转的单词数
例如:跳转3个单词的词尾,即3e:
③ 当前页跳转
H:页首 M:页中间行 L:页底
zt:将光标所在当前行移到屏幕顶端
zz:将光标所在当前行移到屏幕中间
zb:将光标所在当前行移到屏幕底端
④ 行首行尾跳转
^: 跳转至行首的第一个非空白字符
0: 跳转至行首
$: 跳转至行尾
⑤ 行间移动
G:最后一行
1G, gg: 第一行
6. 命令模式翻屏操作:
① Ctrl+f: 向文件尾部翻一屏
② Ctrl+b: 向文件首部翻一屏
③ Ctrl+d: 向文件尾部翻半屏
④ Ctrl+u:向文件首部翻半屏
7. 命令模式编辑操作:
① 字符编辑
x: 删除光标处的字符
#x: 删除光标处起始的#个字符
例如:删除光标处的3个字符,即3x
xp: 交换光标所在处的字符及其后面字符的位置
~:转换大小写
J:删除当前行后的换行符
② 替换命令(r, replace)
r: 替换光标所在处的字符
例如将光标处的r替换成b,则按rb键
R:切换成REPLACE模式
在命令模式下按R键进入REPLACE模式,可直接对光标所在处逐一进行替换
③ 删除命令
d$: 删除到行尾
d^:删除到非空行首
d0:删除到行首
dd: 删除光标所在的行
#dd:多行删除
如往下删除三行,按3dd
④ 复制命令(y, yank)
y: 复制,行为相似于d命令
⑤ 粘贴命令(p, paste)
p:缓冲区存的如果为整行,则粘贴当前光标所在行的下方;否则,则粘贴
至当前光标所在处的后面
粘贴整行(配合yy命令):
粘贴光标所在处的后面,例如,将光标所在处至行首位置复制粘贴到光标所在处的后面:
P:缓冲区存的如果为整行,则粘贴当前光标所在行的上方;否则,则粘贴
至当前光标所在处的前面
粘贴整行(配合yy命令):
粘贴光标所在处的前面,例如,将光标所在处至行首位置复制粘贴到光标所在处的前面:
⑥ 改变命令(c, change)
c: 修改后切换成插入模式
c$c^c0与之前的d和y类似
cc:删除当前行并输入新内容
C:删除当前光标到行尾,并切换成插入模式
二、Vim查找、替换方法
1. 命令模式:查找
① /PATTERN:从当前光标所在处向文件尾部查找
例如:查找“sshd”字符串
回车即高亮显示“sshd”字符串
② ?PATTERN:从当前光标所在处向文件首部查找
同上,/sshd命令改成?sshd,即向上查找包含sshd的字符串
③ n:与命令同方向
上例,/sshd查找时,按n键即向下查找第二个包含sshd的字符串,并将光标指向该处
如果是?sshd,按n键即向上查找第二个包含sshd的字符串
④ N:与命令反方向
同理,与n键方向相反
2. 扩展命令模式:查找并替换
① s: 在扩展模式下完成查找替换操作
格式:s/要查找的内容/替换为的内容/修饰符
例如:将查找mail字符串并替换成QQ
要查找的内容:可使用模式
例如:查找带有数字的字符串,替换为A
替换为的内容:不能使用模式,但可以使用\1, \2, ...等后向引用符号;还可
以使用“&”引用前面查找时查找到的整个内容
例如:查找mail字符串替换为在mail后加上“QQ”
修饰符:
i: 忽略大小写
加上i修饰符后,要查找的字符串无论大小写都匹配
g: 全局替换;默认情况下,每一行只替换第一次出现
例如:将该行中所有的47都替换成99,就需要加上g修饰符,否则只替换最先匹配到的
gc:全局替换,每次替换前询问
每次匹配到后提示是否替换,按照提示选择替换与否,直至将匹配到的字符都处理完
② s: 查找替换中的分隔符/可替换为其它字符
例如:将/sbin/nologin替换成/bin/bash