一、什么是vim?
Vim是从 vi 发展出来的一个文本编辑器。代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。简单的来说, vi 是老式的字处理器,不过功能已经很齐全了,但是还是有可以进步的地方。 vim 则可以说是程序开发者的一项很好用的工具。
二、vi/vim的使用
Linux下vi/vim 共分为三种模式,分别是命令模式(Command mode),输入模式(Insert mode)和末行模式(Last line mode)。以下分别对这三种模式进行详细介绍:
----------------------------------------------------命令模式-------------------------------------------------------------
命令行模式 (command mode/一般模式)
任何时候,不管用户处于何种模式,只要按一下“ESC”键,即可使Vi进入命令行模式;我们在shell环境(提示符为$)下输入启动Vi命令,进入编辑器时,也是处于该模式下。
命令 | 执行操作 |
---|---|
yy | 复制光标所在行 |
2yy | 复制光标所在行和光标下一行 |
p | 粘贴到光标下一行 |
gg | 剪切 |
x | 删除光标所在位置的内容 |
dd | 删除当前行 |
dgg | 删除光标至文档首部 |
u | 撤销当前操作 |
cc | 跳转到文档首部行首 |
G | 跳转到文档尾部行首 |
^ | 跳转到当前行行首 |
$ | 跳转到当前行行尾 |
/字符串 | 查找这个字符串 |
----------------------------------------------------插入模式-------------------------------------------------------------
文本输入模式 (input mode/编辑模式)
在命令模式下输入插入命令i(insert)、附加命令a (append)、打开命令o(open)、修改命令c(change)、取代命令r或替换命令s都可以进入文本输入模式。在该模式下,用户输入的任何字符都被Vi当做文件内容保存起来,并将其显示在屏幕上。在文本输入过程中,若想回到命令模式下,按"ESC"键即可。
命令 | 执行操作 |
---|---|
i | 在光标前插入 |
I | 在光标所在行行首插入 |
a | 在光标后插入 |
A | 在光标所在行末尾插入 |
s | 删除光标所在位置字符并插入 |
S | 删除光标所在行并插入 |
o | 在光标所在行下一行插入 |
O | 在光标所在行上一行插入 |
----------------------------------------------------末行模式-------------------------------------------------------------
末行模式 (last line mode/指令列命令模式)
末行模式也称ex转义模式,Vi和Ex编辑器的功能是相同的,二者主要区别是用户界面。在Vi中,命令通常是单个键,例如i、a、o等;而在Ex中,命令是以按回车键结束的正文行。Vi有一个专门的“转义”命令,可访问很多面向行的Ex命令。在命令模式下,用户按“:”键即可进入末行模式下,此时Vi会在显示窗口的最后一行(通常也是屏幕的最后一行)显示一个“:”作为末行模式的提示符,等待用户输入命令。多数文件管理命令都是在此模式下执行的(如把编辑缓冲区的内容写到文件中等)。末行命令执行完后,Vi自动回到命令模式。
命令 | 执行操作 |
---|---|
:q | 退出(未修改文件内容才可以退出) |
:wq | 保存退出 |
:q! | 强制退出,不保存 |
:wq! | 强制保存退出 |
:set nu | 显示行号 |
:set nonu | 不显示行号 |
:行号 | 跳转到指定行号 |
:3,5 d | 删除3-5行 |
:r 文件名1 | 读出文件1的内容到当前文件里 |
:%s/字符串2/字符串3 | 字符串3替换字符串2 |
:%s/1/2/g | 将1替换为2,全局修改 |
:w 文件名1 | 另存为文件名1 |
上述给大家列出来的是vi/vim常用命令一些常用的基本命令,个人感觉比较实用,如有需要添加的常用命令,欢迎大家随时在下方留言,我会根据大家的建议不断完善,谢谢!