Skip to content

商务合作:vTikTok


公众号:



Vim程序员高效编辑器


vim是一个程序员高效编辑器,可以在终端下使用,也可以在图形界面下使用,vim是vi的升级版。

vim的三种模式

命令模式,输入模式,底线命令模式 默认进入vim就是命令模式,输入i变为输入模式

命令模式

shell
h 左移一个字符
j 下移一个字符
k 上移一个字符
l 右移一个字符
x 删除当前光标所在处的字符
: 切换到底线命令模式,比如 wq,q
如果希望多次移动字符可以: 10j 表示向下移动10个字符
Ctrl + f(forward)屏幕向下翻页
Ctrl + b(back)屏幕向上翻页
Ctrl + d(down) 屏幕向下移动半页
Ctrl + u(up)屏幕向上移动移动半页
n<space> n表示数字,列如20,按下数字再按空格键,光标会向右移动n个字符
Shift + $ 移动这一行的末尾
Shift + 3 移动到当前光标句子开头
Shift + Enter 移动下一行
H(大写)移动到这个这个屏幕最上方的第一个字符
L(大写)移动到这个屏幕最下方的第一个字符
G(大写)移动这个文档的最后一行(常用)
nG(n为数字)移动到该档案的第n行
gg(1G)移动到该档案的第一行
n<Enter> 光标向下移动n行(常用)
h 左移一个字符
j 下移一个字符
k 上移一个字符
l 右移一个字符
x 删除当前光标所在处的字符
: 切换到底线命令模式,比如 wq,q
如果希望多次移动字符可以: 10j 表示向下移动10个字符
Ctrl + f(forward)屏幕向下翻页
Ctrl + b(back)屏幕向上翻页
Ctrl + d(down) 屏幕向下移动半页
Ctrl + u(up)屏幕向上移动移动半页
n<space> n表示数字,列如20,按下数字再按空格键,光标会向右移动n个字符
Shift + $ 移动这一行的末尾
Shift + 3 移动到当前光标句子开头
Shift + Enter 移动下一行
H(大写)移动到这个这个屏幕最上方的第一个字符
L(大写)移动到这个屏幕最下方的第一个字符
G(大写)移动这个文档的最后一行(常用)
nG(n为数字)移动到该档案的第n行
gg(1G)移动到该档案的第一行
n<Enter> 光标向下移动n行(常用)

搜索命令

shell
1. /hello 向光标之下搜索一个名称为hello的字符串
2. ?word 向光标之上寻找一个名称为word的字符串
3. n 代表重复,比如之前刚执行了/hello,则按下n表示继续向下寻找hello.
4. 如果之前执行的是?word,则按下n表示继续向上寻找word的字符串
5. N 与n相反,为【反向】进行前一个搜寻动作
6. :n1,n2s/word1/word2/g(常用)替换操作:如:在100到200行之间替换hello为HELLO
:100,200s/hello/HELLO/g
:1,$s/hello/HELLO/g 从第一行到最后一行搜寻hello并替换为HELLO $s/hello/HELLO/g
:1,$s/hello/HELLO/gc 替换并确认  $s/hello/HELLO/gc
1. /hello 向光标之下搜索一个名称为hello的字符串
2. ?word 向光标之上寻找一个名称为word的字符串
3. n 代表重复,比如之前刚执行了/hello,则按下n表示继续向下寻找hello.
4. 如果之前执行的是?word,则按下n表示继续向上寻找word的字符串
5. N 与n相反,为【反向】进行前一个搜寻动作
6. :n1,n2s/word1/word2/g(常用)替换操作:如:在100到200行之间替换hello为HELLO
:100,200s/hello/HELLO/g
:1,$s/hello/HELLO/g 从第一行到最后一行搜寻hello并替换为HELLO $s/hello/HELLO/g
:1,$s/hello/HELLO/gc 替换并确认  $s/hello/HELLO/gc

删除复制粘贴命令

shell
x 向后删除一个字符
X 向前删除一个字符(backspace)
nx 连续向后删除n个字符
dd 删除光标所在的一整行(常用)
ndd 删除光标所在向下n行
d$ 删除光标所在处到该行的最后一个字符
d0 删除光标所在处到该行的最前面的一个字符
yy 复制游标坐在的那一行(常用)
nyy 复制游标所在向下n行 如:20yy
y1G 复制游标所在行到第一行的所有数据
p 粘贴(当前光标的下一行)
P 粘贴(当前光标的上一行)
u 复原上一个动作(常用)
Ctrl + r 重做上一个动作(常用)
. 重复动作,意思就是重复上一个动作的意思(常用)比如粘贴.....
x 向后删除一个字符
X 向前删除一个字符(backspace)
nx 连续向后删除n个字符
dd 删除光标所在的一整行(常用)
ndd 删除光标所在向下n行
d$ 删除光标所在处到该行的最后一个字符
d0 删除光标所在处到该行的最前面的一个字符
yy 复制游标坐在的那一行(常用)
nyy 复制游标所在向下n行 如:20yy
y1G 复制游标所在行到第一行的所有数据
p 粘贴(当前光标的下一行)
P 粘贴(当前光标的上一行)
u 复原上一个动作(常用)
Ctrl + r 重做上一个动作(常用)
. 重复动作,意思就是重复上一个动作的意思(常用)比如粘贴.....

全选复制粘贴

shell
ggVG 全选
y 复制(仅vim有效)
p 粘贴
gg 移动到文件头部
V 进入可视模式(行)- 非常有用,用于选择复制,比如ggVG
v 进入可是模式(字符)- 非常有用,用于选择复制
G 移动到文件尾部
ggVG 全选
y 复制(仅vim有效)
p 粘贴
gg 移动到文件头部
V 进入可视模式(行)- 非常有用,用于选择复制,比如ggVG
v 进入可是模式(字符)- 非常有用,用于选择复制
G 移动到文件尾部

输入模式

shell
Enter 回车换行
Backspace 回车键,删除光标前一个字符
DEL 删除键,删除前一个字符
方向键 移动光标
HOME/END 移动光标到行首/行尾
Page Up/Page Down 上下翻页
i 进入输入模式,在当前光标处输入
I 在当前所在行的第一个非空格符处开始输入(常用)
a 进入输入模式,当前光标的下一个字符处开始输入
A 当前所在行最后一个字符处开始输入(常用)
o 进入输入模式,当前光标所在行的下一行输入新的一行
O 当前光标的上一行输入新的一行
r 进入取代模式(replace)r只会取代光标所在的那个字符一次
R 会一直取代直到按下ESC
Enter 回车换行
Backspace 回车键,删除光标前一个字符
DEL 删除键,删除前一个字符
方向键 移动光标
HOME/END 移动光标到行首/行尾
Page Up/Page Down 上下翻页
i 进入输入模式,在当前光标处输入
I 在当前所在行的第一个非空格符处开始输入(常用)
a 进入输入模式,当前光标的下一个字符处开始输入
A 当前所在行最后一个字符处开始输入(常用)
o 进入输入模式,当前光标所在行的下一行输入新的一行
O 当前光标的上一行输入新的一行
r 进入取代模式(replace)r只会取代光标所在的那个字符一次
R 会一直取代直到按下ESC

底线命令(命令模式下:)

shell
:q 退出程序
:w 保存文件
:wq 保存并退出
:q! 强制退出不保存
:wq!强制保存并退出
:w hello.txt 类似另存为
:set nu 显示行号
:set nonu 取消行号
:q 退出程序
:w 保存文件
:wq 保存并退出
:q! 强制退出不保存
:wq!强制保存并退出
:w hello.txt 类似另存为
:set nu 显示行号
:set nonu 取消行号

注意:善用数字表示重复的次数 如:10dd删除10行,10x,删除10个字符,20yy复制20行

复制命令

shell
yy 复制当前行
nyy n表示数字,复制n行
yw 从光标处复制一个单字/单词,包含空格(w-word的意思)
ye 从光标处复制一个单字/单词,不包含空格
y$ 从当前光标复制到行末
y0 从当前光标处(不包括光标位置)复制到行首
y10 从光标位置(包括光标位置)向右复制10个字符
y5G 将当前行(包括当前行)至第5行(不包括它)复制
y3B从当前光标处(不包括光标位置)反向复制3个单词
yy 复制当前行
nyy n表示数字,复制n行
yw 从光标处复制一个单字/单词,包含空格(w-word的意思)
ye 从光标处复制一个单字/单词,不包含空格
y$ 从当前光标复制到行末
y0 从当前光标处(不包括光标位置)复制到行首
y10 从光标位置(包括光标位置)向右复制10个字符
y5G 将当前行(包括当前行)至第5行(不包括它)复制
y3B从当前光标处(不包括光标位置)反向复制3个单词