1. 打开保存文件
:e <filename> 打开文件
:saveas <filename> 另存为
:ZZ 等于:wq 保存退出
:bn 切换到下一个打开的文件
:bp 切换到上一个打开的文件
:! 执行shell命令
2. 进入输入模式
i 从光标当前位置开始输入文件。
a 从目前光标所在位置的下一个位置开始输入文字
I 行首插入。
A 行尾插入。
o 插入新的一行,从行首开始输入文字。
O 在光标所在的行的上面插入一行。
s 删除光标后的一个字符,然后进入插入模式。
3. 移动光标
h 向左
space 向右(我觉得比l方便)
k 向上
J 向下
0 到行首
^ 到本行第一个非空字符
$ 到行尾
g_ 到本行最后一个非空字符
w 跳到下个字的开头,W忽略符号
e 光标跳到下个字的字尾, E忽略符号
b 光标回到上个字的开头,B忽略符号
f+x 向前跳到第一个x字符处,F向后
t+x 跳到x的前一个字符,T向后跳到x的后一个字符
*|# 搜索单词,*向下,#向上,配合大小n使用
gd 光标移到变量定义处
ctrl + n 根据已有单词自动补齐
zz 让光标所在行居于屏幕中央,写到最底部时有用
zt 让光标所在行居于屏幕最顶部
zb 让光标所在行居于屏幕底部
% 移动到闭括号
[{ 移动到匹配的{
4. 删除文本
dw 删除光标到word结尾
cw 删除光标到word结尾并进入insert模式
daw 删除光标所在的整个word
caw 删除光标的word并进入insert模式
d$ 删除至行尾
d0 删除至行首
dG 删除至最后一行
: num1, num2 d 删除num1到num2之间的所有行
: 1,.d 删除第一行到当前行
c$ 删除至行尾并进入insert模式,等于C
c0 删除至行首并进入insert模式
dd 删除整行
ddp 上下两行调换
dt+x 删除所有字符直到遇到x
cc 删除整行并进入insert模式
shift+j 删除行尾的换行符,下一行接上来了
dib 删除()内文本
dab 删除()内文本,包括()
diB 删除{ }内文本
daB 删除{ }内文本,包括{ }
5. 复制文本
yw 复制光标到word结尾
yaw 复制整个word
nyw 复制光标至第n个word结尾
y$ 复制至行尾
y0 复制至行首
yG 复制至最后一行
: num1, num2 y 复制num1到num2之间的所有行
:1,.y 复制第一行到当前行
:num1,num2 co num3 复制行num1到num2到行num3,适用于复制多行
:num1, num2 m num3 剪切行num1到num2到行num3,适用于剪切多行
yib 复制()内文本
yab 复制()内文本,包括()
yiB 复制{ }内文本
yaB 复制{ }内文本,包括{ }
p 复制到当前字符后
P 复制到当前字符前
6. 替换文本
r 替换光标所在处的字符。
R 替换光标所到处的字符,直到按下“ESC”键为止,非常实用!
:s/string1/string2/g 将string1替换为string2, 限于本行
:%s/string1/string2/g 全文替换,%表示所有行,s为substitute,g为global(替换范围内每行所有string1),没有g只会替换每行的第一个string1
:num1,num2 s/string1/string2/g 行num1至num2范围内替换
:1,500 /^/#/g 在前500行行首插入#
:1,500 /$/#/g 在前500行行尾插入#
~ 切换大小写,当前字符
7. 可视模式
V 进入可视行模式,
v 进入可视字符模式
> 选中的块右移
< 块左移
= 块自动对齐
使用V选择多行,>,<和=可以多行对齐,实用功能!
ctrl + v 列模式,可以选中块
在所有被选择行前加注释:
ctrl + v进入列模式, 选中注释行,I到第一行行首输入//, 按两次esc即可
删除注释:
ctrl+v 选中注释,d
在所有被选中行后加文本:
ctrl + v进入列模式, 选中注释行,$到行尾,A到第一行行尾输入文本, 按两次esc即可
vib 选中()内文本
vab 选中()内文本,包括()
viB 选中{ }内文本
vaB 选中{ }内文本,包括{ }
8. 区域选择
<action>a<object> 或<action>i<object>
action 通常是 d (删除), y (拷贝), v (可视模式选择)。
object 通常可以是字符 " ' ) } ]等,用于选择 “ ” ‘ ’ ( ) [ ] { }中的文本
i只选择符号内部字符,a包含符号
di) 等于dib
daB 等于da}
>> 本行右缩进
<< 本行左缩进
== 本行自动缩进当前行
9. 命令
:set hlsearch 高亮显示查找到的单词
:set nohlsearch 关闭改功能
:set nu 显示行号
:set nonu 关闭显示行号