模式切换:
插入模式——>ESC——>普通模式
命令模式——>ESC——>普通模式
普通模式——> : ——>命令模式
Ctrl + z 表示为 <C + z >
初级
i 切换到插入模式
o(小写) 向下插入一行
O(大写) 向上插入一行
dd 剪切一行
p 黏贴
Y 复制
yy 拷贝当前行,相当于ddP
w 保存
q 退出
! 强制,常用组合q!
saveas <path/file/> 存储到 path/file/
x 删除当前光标所在字符
u 撤销
<C + r > 重做
. 重复上一个操作
n<command> command指令重复n次
hjkl (强例推荐使用其移动光标,但不必需) →你也可以使用光标键 (←↓↑→). 注: j 就像下箭头。
0 跳到行头
$ 跳到行尾
^ 跳到本行第一个非blank的位置。(blank 是指 空格、tab、回车、换行等)
g_ 调到本行最后一个非blank的位置。
gg 置顶
G 跳到最后一行
w 到下一个单词的开头
e 到下一个单词的结尾
/pattern 正则表达式,搜索,按 n 跳转到下一个
:n 跳到第n行
% 匹配括号移动( [ { , 前提是光标在该字符中
* 匹配光标所在单词的下一个位置
# 匹配光标所在单词的上一个位置
fa 到下一个a(可换)的位置
nfa 到下面第n个a(可换)的位置
t, 到下一个,(可换)前的位置
F 与f功能一样,但是反向
T 与t功能一样,但是方向
<C+n> 自动提示
v 可视化选择
V 可是还选择一行
:help [command] 查询command指令的意义+用法,输入:q,返回
进阶:
Ps:很多命令是跟光标移动组合,有必要记住光标移动的命令
<start position><command><end position>
0y$
先到行头 复制 到行尾
<action>a<object>
<action>可以是 v , d , y
<object>可以是 " , ' , ( 之类
假设你有一个字符串 (map (+) ("foo")).而光标键在第一个 o 的位置。
vi" → 会选择 foo.
va" → 会选择 "foo".
vi) → 会选择 "foo".
va) → 会选择("foo").
v2i) → 会选择 map (+) ("foo")
v2a) → 会选择 (map (+) ("foo"))
块可视化操作:< C+ v >
一般使用组合 < C + v > < C + d >I -- ESC // -- 为块需要插入的字符·
宏录制,经常使用的操作可以录制成宏
步骤1: (命令模式)qa //录制一个a(可替换,只是一个命名)的宏
步骤2:操作
步骤3: (命令模式)q
宏的使用
@a // 调用宏a(可替换)
@@ //调用最新的宏
可视化+操作
J 把所有行连接在一行
<或> 向左或向右缩进
= 自动缩进
A[pattern][ESC] 所选择区域加入字符[pattern]
分屏:
split(水平)
vsplit(垂直)