vim 命令使用
1.概念介绍
vim 是从vi发展出来的一个文本编辑器。其代码补全、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。
Vim是一个功能强大的全屏幕文本编辑器,不仅可以用于编辑文本,在编程方面也是非常强大,Linux/UNIX系统都会默认安装这个编辑器。正因为Vim的强大,会有很多命令需要学习,这里只介绍些常用的命令,在满足日常的文本编辑需求的同时,还能显著提高效率。
2.vim工作模式
vim一共有三种工作模式分别为普通模式、插入模式以及命令模式
1.普通模式
Vim启动后的默认模式,此状态下敲击键盘动作会被Vim识别为命令,而非输入字符
。比如我们此时按下 i
,并不会输入一个字符,i
被当作了一个命令。不管用户处于何种模式,只要按一下 esc 键,即可使Vim进入普通模式。
2.插入模式
这个模式和我们平时使用的编辑器是一样的,用户输入的任何字符都被 Vim
当做文件内容保存起来,并将其显示在屏幕上。在文本输入过程中,若想回到普通模式,按 ESC
键即可。
3.命令行模式
在普通模式下按下 :
、/
或者 !
字符,这时你会看到窗口的左下角出现了相应的字符 ,代表你已经进入命令行模式可以进行命令的输入,输入的命令会出现在字符后面,按回车就会执行相应的命令。
3.文件的编辑
1.插入命令
我们通过shell命令 vim + 文件名,就会进入vim的普通模式,通过插入命令就可以进入插入模式,进行文本内容的编辑
命令 | 作用 |
---|---|
a | 在光标所在字符后插入 |
A | 在光标所在行尾插入 |
i | 在光标所在字符前插入 |
I | 在光标所在行首插入 |
o | 在光标下插入新行 |
O | 在光标上插入新行 |
2.保存退出命令
编辑完文本后,我们需要保存文本,需要先退出插入模式进入普通模式,然后执行相应命令保存文件
命令 | 作用 |
---|---|
:w | 保存修改 |
:w new_filename | 另存为指定文件 |
:q | 退出vim |
:wq namefilename | 保存并退出 | 另存为文件并且退出 |
ZZ | 保存并退出 |
:q! | 不保存修改退出 |
:wq! | 保存修改并退出(文件所有者及root可使用) |
3.定位命令
在普通模式下,可以执行相应命令快速的对代码进行定位。比如打开行号跳转到指定行
命令 | 作用 |
---|---|
: set nu | 设置行号 |
: set nonu | 取消行号 |
gg | 到第一行 |
G | 到最后一行 |
nG | 到第n行 |
:n | 到第n行 |
$ | 到当前行尾 |
4.复制与剪切命令
在普通模式下,通过命令可以快速的对文本进行复制剪切
命令 | 作用 |
---|---|
yy | 复制当前行 |
nyy | 复制当前行以下n行(含当前行) |
dd | 剪切当前行 |
ndd | 剪切当前行以下n行(含当前行) |
p / P | 粘贴在当前光标所在行下 / 上 |
5.删除命令
在普通模式下,通过命令可以快速的对文本进行删除
命令 | 作用 |
---|---|
x | 删除光标所在处字符 |
nx | 删除光标所在处后的n个字符 |
dd / ndd | 删除光标所在行 / 光标后n行 |
dG | 删除文件所在行到文件末尾内容 |
D | 删除光标所在处到行尾内容 |
:n1,n2d | 删除指定范围内的行 |
6.替换与取消命令
在普通模式下,通过命令可以对文本进行替换和取消操作
命令 | 作用 |
---|---|
r | 取代光标所在处字符 |
R | 从光标所在处开始替换字符,按ESC结束 |
u | 取消上一步操作 |
7.搜索和替换命令
命令 | 作用 |
---|---|
/string | 搜索指定字符串,搜索时指定忽略大小写 :set ic |
?string | 反向搜索指定字符串 |
n | 搜索指定字符串的下一个出现位置 |
:%s/old/new/g | 全文替换指定字符串 |
:n1,n2s/old/new/g | 在一定范围内替换字符串 |
4.多个文件操作
1.分屏显示
命令 | 作用 |
---|---|
:vnew filename | :vsp filename | 屏幕分割两列打开显示filename文件 |
:split filename | 屏幕分割两行打开显示filename文件 |
ctrl + w +L | 把光标移动到右边的屏中 |
ctrl + w + h | 把光标移动到左边的屏中 |
ctrl + w + j | 把光标移动到下边的屏中 |
ctrl + w + k | 把光标移动到上边的屏中 |
ctrl +w +w | 在窗口之间跳转 |
:only | 仅保留当前光标所在的屏幕 |
:hide | 关闭当前光标所在的屏幕 |
:new | 分屏显示并且创建新的文件 |