vim常用快捷键

vi命令是UNIX操作系统和类UNIX操作系统中最通用的全屏幕纯文本编辑器。Linux中的vi编辑器叫vim,它是vi的增强版(vi Improved),与vi编辑器完全兼容,而且实现了很多增强功能。

工作模式

Vim编辑器共有两种工作模式,一个是插入模式,一个是命令模式。

  • 插入模式

用来编写文本内容。在命令模式下, 按字母i键即可进入到插入模式。


  • 命令模式

是用来编辑文本,如上下翻页等,复制粘贴,跳转到指定行等操作。在插入模式下,按Esc键,再按冒号:键即可进入命令模式。


当前编辑的顶部或者底部会显示vim处于何种模式下。如:mode:COMMAND!

所有命令都必须在英文输入法下面输入
命令对大小写敏感

打开/保存/退出

  • 进入
1
2
3
//filename,若已经存在则打开已存在的文件,不存在则新建一个文件
//默认开始进入的模式是命令模式
$ vi filename
  • 保存/退出

进入命令模式,

1
2
3
4
5
6
7
:wq              保存修改并退出
ZZ               快捷键,保存修改并退出(前面没有冒号)
:q!              不保存退出
:wq!             强行保存退出,(文件所属者科忽略文件的制度属性)
:w               保存不退出
:wqa             保存所有文件
:w new_filename  另存为指定文件

编辑

  • 插入
1
2
3
4
5
6
a                     在光标后附加文本
A                     在本行行末附加文本
i                     在光标前插入文本
I                     在本行开始插入文本
o (字母)               在光标下插入新行
O (字母)               在光标上插入新行
  • 剪切复制粘贴
1
2
3
4
5
6
7
8
yy、Y                         复制当前行
nyy,nY                       复制当前行一下n行(包括当前行)
p、P                          粘贴在当前光标所在行下或行上
ddp                          交换当前行和其下一行
dd                           剪切当前行
ndd                          剪切当前行一下n行(包括当前行)
:1,10d                       将1-10行剪切。利用p命令可将剪切后的内容进行粘贴。
:1, 10 m 20                  将第1-10行移动到第20行之后。
  • 删除
1
2
3
4
5
6
7
8
9
10
x                     删除后面的字符 
X                     删除前一个字符  删除3个字符就是3x  
dd                    删除一行   
D                     删除到行尾 
dw                    删除一个单词(光标后部分)      
d4w                   删除4个单词    
d$                    删除当前光标到行尾    
d^                    删除当前光标至行首
J                     删除换行符,使下一行并上来。     
nJ                    连接后面的n行
  • 撤销
1
2
3
4
u                         取消上一步操作(最多连续取消500次)
Ctrl+r                    恢复上一步被撤销的操作
U                         撤销当前一行的操作
:e!                       返回上次保存后的状态

定位

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
h、方向左键              左移一个字符
j、 方向下键             下移一行
k、方向上键              上移一行
l、 方向右键             右移一个字符
$                       移至行尾
0                       移至行首
^(尖角号)                移至行首

H                       移至屏幕上端
M                       移至屏幕中央
L                       移至屏幕下端
(                        (左小括号)移动到上一个句子首
)                        (右小括号)移动到下一个句子首
{                        (左大括号)移动到上一个段落首
}                        (右大括号)移动到下一个段落首

''                       (连续输入法两个单引号)光标跳转到上次停靠处
W                        移动到下一个单词的首位置
w                        将光标右移一个单词的首位置。光标停留在下一个单词的首位置
e                        移动到单词末尾。
E                        和小写用法一样,只是以空格字符作为字的分隔符
b                        移动到单词的头部
B                        和小写用法一样,只是以空格字符作为字的分隔符

//w W e E b B 都可以与n结合使用, n为数量单位, 如nw nW ne nE nb nB

:set nu                      设置行号为显示
:set nonu                    设置行号为隐藏
:set nu!                     设置行号为显示/隐藏
gg                           光标移动到第一行
G                            光标移动到最后一行
nG                           光标跳转到指定行    
:n                           光标跳转到指定行

Ctrl + e                 向下滚动一行
Ctrl + y                 向上滚动一行
Ctrl + d                 向下滚动半屏
Ctrl + u                 向上滚动半屏
Ctrl + f                 向下滚动一屏
Ctrl + b                 向上滚动一屏

zz:将当前行滚动于屏幕中间,方便查看上下文  zt置顶,zb置尾

查找

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34

//在command模式下,通过按  f 或者 F   快速定位内容。(不需要输入冒号)

f                            向后查找
F                            向前查找

//可以结合数字来进行多次查找,如按下  3fq   ,就会放下查找第三个q
//如果不加数字,如fq,就会向后查找第一个q

*                            向后查找, 查找与光标下的词组相同的词组。
#                            向前查找, 查找与光标下的词组相同的词组。

//举例:假设光标停留在第一个if处
//if  we are god   if you are human
//我们在command模式下,输入  *  ,光标就会跳到“if you are human”的那个if上去

//查找string,回车后,按n键可以跳到下一个,N上一个,
//?另外按/键后,按上下键可以找到以前查找的记录,同样的 :也有记录

/string  
   
//同上,默认向上查找
    
?string  

:set ignorecase          大小写无关

:set noignorecase        大小写敏感

:set hlsearch            高亮显示查找结果

:set nohlsearch          取消高亮

:nohlsearch              去掉当前显示的高亮(一次性)

替换

1
2
3
4
5
6
7
r                         (小写)替换光标所在处一个字符
R                         (大写)开始替换,直到按ESC键退出替换,
cc                        (小写)取代光标所在整行
S                         (大写)与ss(小写)效果相同
C                         (大写)取代到行尾,包括光标处字符
c0                        (小写,数字0)取代到行首,不包括光标处字符
c^                        (小写)与c0(小写,数字0)效果相同

参考文献

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值