vi或vim是linux下非常强大,使用非常普遍的一个全屏幕文本编辑器,vim是vi的高级版本。
多数的linux操作系统都自带vi编辑器。可见其强大与普遍。
下面我们就来学习一下这个神秘的文本年编辑器,网上有人说它很复杂,让我们pai不急待的开始吧。
提示:vi下没有菜单,只有命令。
首先要讲的是vi的三种模式:
- 命令行模式【有的管这个叫编辑模式或者最后一行模式】
- 命令模式
- 插入模式
其实命令行模式和命令模式的唯一区别就是命令是否可见。命令模式下我们看不到我们输入的命令,命令行模式下我们可以看见我们的命令。
因此有的也将vi分为命令模式和插入模式两个模式。
三种模式的切换方式如下图【非常重要】
对于上面的图,我们简单的解释一下,
- 当我们用vi file打开一个文件的时候,默认进入的模式就是命令模式,在这个模式下所敲的键盘上的任何字符都是命令(当然不存在的命令是不会被执行的)
- 当在命令行模式下敲了 I、i、A、a、O、o 任何一个键,就会进入插入模式。他们的不同意义我们稍后再详解,在插入模式中我们可以编辑我们的文本。
- 插入模式下按ESC键回到命令模式。(ESC键在我们的linux系统中用的非常的频繁)
- 命令模式键入冒号,就进入命令行模式,在命令行模式下可以输入好多编辑命令,稍后详解,输入编辑命令后回车即可回到命令模式。
- 命令行模式下输入“:q!”或者“ :wq”即可退出vi。
下面开始详细学习一下几个重要的知识点。
插入命令:
- i 小写的i在光标前插入文本
- I 大写的i在光标后插入文本
- a 小写的a在光标后附加文本
- A 大写的A在行末添加文本
- o 在光标下插入新行
- O 在光标上插入新行
插入命令中我们一直没离开光标这个词,那我们怎么移动光标呢,看下面的图我们就知道了。
注意上面的命令都是在命令模式下才有用。
上述的khjl均属于移动命令,定位命令,具体的总结如下:
定位命令:
- h 向左移动光标
- j 向下移动光标
- l 向右移动光标
- k 向上移动光标
- $ 光标移动到行尾
- 0 光标移动到行首
- H 移动到屏幕的顶部
- M 移动到屏幕的中间
- L 移动到屏幕的底端
上面的定位命令都比较简单,或者说移动的范围都是本屏幕内。下面的则更强大。
- :set nu ,设置显示行号,:set nonu表示不显示行号。
- gg 到文本的第一行
- G 到文本的最后一行
- nG 到第n行
- :n 到第n行(建议大家使用这个)
删除命令:
vi中的删除命令,除了在插入模式中直接使用退格来操作外,还有大量实用的命令。
- x 删除当前字符,即光标所在的位置
- nx 删除光标后面多n个字符。
- dd 删除光标所在行
- dG 删除光标所在行到末尾的内容
- :n1,n2d 删除n1 到 n2的行。
复制黏贴命令:
vi对复制粘贴支持的也非常不错,具体如下:
- yy、Y 复制当前行
- nyy、nY 复制当前行下面n行
- dd 剪切当前行
- ndd 剪切当前行下面n行
- p、P粘贴光标所在行下或者行上。
替换命令:
- r 替换光标所在处的命令,按完r后直接输入要替换的命令既可以,直后按esc
- R 替换光标及以后的字符,esc结束。
撤销命令:
vi中的撤销命令是u(undo),其中vi可以撤掉一次,vim可以撤掉多次。