光标移动
单个字符移动:
-
h:向左移动
-
l:向右移动
-
j:向下移动
-
k:向上移动
-
xh:向左移动x个字符距离
单词移动:
-
w: 将光标移动到下一个单词的开头
-
b: 将光标移动到前一个单词的开头
-
e: 将光标移动到下一个单词的词末
-
E: 移动到单词的结尾(忽略标点符号)
-
ge: 将光标移动到上一个单词的词末
-
2w: 指定移动的次数
整行移动
-
0 移动到行首
-
$ 移动到行末
-
+ 移动到下一行开头
-
- 移动到上一行开头
根据文本块移动:文本块就是句子、段落、小节等
-
( 移动到当前句子开头
-
)移动到下一个句子开头
-
{ 移动到当前这一段开头
-
} 移动到下一段开头
-
[[ 移动到当前这一节的开头
-
]] 移动到下一节的开头
插入
字符位置插入
-
i 在光标之前插入
-
a 在光标之后追加
行位置插入
-
A 在一行的结尾处追加
-
I 在一行的开头处插入
-
o 在光标所在位置的下一行打开新行插入
-
O 在光标所在位置的上一行打开新行插入
删除
字符删除
-
x: 删除当前光标所在处的字符
-
X: 删除当前光标左边的字符
单词删除
-
dw: 删除一个单词(从光标处到空格)
-
daw: 无论光标在什么位置,删除光标所在的整个单词(包括空白字符)
-
diw: 删除整个单词文本,但是保留空格字符不删除
-
d2w: 删除从当前光标开始处的2个单词
-
d$: 删除从光标到一行末尾的整个文本
-
d0: 删除从光标到一行开头的所有单词
-
dl: 删除当前光标处的字符=x
-
dh: 删除当前光标左边的字符=X
行删除
-
dd: 删除当前光标处的一整行=D
-
5dd: 删除从光标开始处的5行代码
-
dgg: 删除从光标到文本开头
-
dG: 删除从光标到文本结尾
行合并
- J: 删除一个分行符,将当前行与下一行合并
修改
字符替换
-
r 单个字符替换
-
R 连续替换
-
~ 更改大小写
单词修改
-
cw 从光标处修改到单词结尾
-
cb 从光标处修改到单词开头
行修改
-
c$ 从光标修改到本行末尾
-
C 功能同上
-
c0 从光标修改到本行开头
-
cc 删除整行从头修改
-
S 功能同上
-
s 删除光标所在位置的字符,然后插入
复制
粘帖
- p 粘帖
单词和字符复制
-
ynl 向右复制n个字符
-
ynh 向左复制n个字符
-
ynw 向前复制n个单词
-
ynb 向后复制n个单词
行复制
-
y0 复制到行首
-
y$ 复制到行末
-
yy 复制整行
-
yH 从当前行复制到屏幕顶端
-
yL 从当前行复制到屏幕低端
-
q: 若文件没有修改,直接退出
-
q!: 文件已经被修改,放弃修改退出
-
wq: 文件已经被修改,保存修改并退出
-
e!: 放弃修改,重新回到文件打开时的状态
标签页与折叠栏
-
tabedit file/tab split 标签页的新建
-
tabn/tabp 标签页的切换
-
gt/gT 按键
折叠的打开与关闭
-
za: 打开和关闭折叠
-
zr/zm: 一层一层地打开和关闭折叠
-
zR/zM: 分别打开和关闭所有的折叠
折叠键的光标移动
-
zj: 跳转到下一个折叠处
-
zk: 跳转到上一个折叠处
删除折叠
-
zd: 删除光标下的折叠
-
zD: 删除光标下的折叠以及嵌套的折叠
-
zE: 删除所有的折叠标签
创建的折叠当退出vim之后就失效了。
多窗口操作
分割窗口
- split/vsplit filename
窗口间跳转
-
ctrl+w hjkl
-
ctrl+w w
移动窗口
- ctrl+w HJKL
调整窗口尺寸
-
ctrl+w +/- 调整窗口的高度
-
ctrl+w </> 调整窗口的宽度
-
ctrl+w = 所有的窗口设置相同的尺寸
-
:resize n将当前窗口尺寸调整为N行
关闭窗口
-
close: 关闭一个窗口
-
qall: 退出所有窗口
-
qall!: 放弃修改,退出所有窗口
-
wqall: 保存并退出所有窗口
-
wall: 保存所有窗口