VIM 有三种模式,分别为:命令模式、输入模式、末行模式。刚进去的时候是处于命令模式的状态下
以下的一些操作都是基于命令模式
常用操作
<!-- 复制 -->
yy 复制一行
(n)yy 复制多行 eg: 6yy 复制6行
y$ 复制光标到行末(包括光标)
y^ 复制光标一直到行首(不包括光标)
<!-- 粘贴 -->
p 粘贴
<!-- 剪切/删除 -->
dd 剪切/删除一行
(n)dd 剪切/删除多行 eg: 6dd 剪切/删除6行
d$ 剪切/删除光标到行末(包括光标)
d^ 剪切/删除光标一直到行首(不包括光标和空格)
D 剪切/删除光标到行末(包括光标)
d0 剪切/删除光标一直到行首(包括空格但是不包括光标)
x 删除光标所在的字符(往后删除)
X 删除光标的前一个字符 (往前删除)
<!--撤回-->
u 撤回
ctrl+r 反撤回
. 重复上一次操作
<!-- 修改 -->
r 修改光标所在的字符
R 进入替换状态,修改多个
<!-- 整行后移 -->
>> 整行往后移
<< 整行往前移
<!-- 选中一块代码 -->
v 从光标开始位置选中多行
V 选中多行
<!-- 查找和替换 -->
:%s/str1/str2/g 用str2替换全文的str1
:12,20s/str1/str2/g 找出第12行到第20行的str1,并用str2替换
光标操作
<!-- 上下左右 -->
h 左
j 下
k 上
l 右
<!-- 翻页 -->
ctrl+d 向下半页
ctrl+f 向下一页
ctrl+u 向上半页
ctrl+b 向上一页
<!-- 快速定位 -->
G 光标快速定位最后一行
gg 光标快速定位第一行
H 光标快速定位可视区域内首行
M 光标快速定位可视区域内中间
L 光标快速定位可视区域内末行
<!-- 移动 -->
0 光标跳到行首
^ 光标跳到第一行的第一个非空白符
$ 光标跳到行末
w 光标移动到下一个单词的第一个字母
b 光标移动到上一个单词的第一个字母
保存操作
:q 退出,如果内容以改变,则不退出
:q! 强制退出,不保存更改
:w 保存更改
:wq 保存并退出
:x 保存并退出
网友评论