模式
当告诉vi你希望编辑文件时,vi就将文件的内容复制到编辑缓冲区中,因此处理的内容是数据的副本,而不是原始数据。
命令模式和输入模式
在命令模式(command mode)中,所键入的键都被解释成命令。
如:x就是删除一个字符的命令,dd就是删除整行的命令。
在输入模式(input mode)中,输入的任何内容都被直接插入到编辑缓冲区中。
系统为了正常工作,必须有一种方法从命令模式切换到输入模式,并且还能在需要时切换回来。
当vi启动时,所处的模式是命令模式。
由命令模式切换到输入模式,有好几种命令(后面会接触到,如i、a、I、A等)。而由输入模式切换到命令模式,只需按<ESC>(Escape,退出)键。
了解所处模式的方式
如果忘记了自己位于什么模式之中,那么记住一点:如果位于命令模式之中,那么按下<ESC>键,vi就会发出嘀嘀声。因此,如果不确定位于哪一种模式之中,只需按<ESC>键两次。这可以确保您位于命令模式之中,并至少发出一次嘀嘀声。
一些版本的vi提供了显示模式的方法,即设置一个内部选项showmode:
:set showmode
一旦设置了这个选项,vi就会在屏幕的底部显示一个消息指示当前的模式(版本不同,提示信息有所不同)。
如果是vim用户,则不必设置这个选项。默认情况下, vim将在屏幕的左下角显示当前模式:
vi使用屏幕的方式
随着插入到编辑缓冲区中的数据行的增多,空行将被逐渐使用,~字符将逐渐消失。
使用vi或ex命令
时至今日,vi编辑器是面向屏幕的命令和面向行的命令的混合体。在学习vi的过程中,必须自学两种不同类型的命令。
在使用vi时,可以同时使用vi命令和ex命令。
大多数vi命令都是单字母或双字母的形式。因为vi命令短,所以键入时命令不回显。
ex命令比vi命令更长更复杂,基于这一原因,在键入过程中它们会回显在命令行上。所有的ex命令都以一个:(冒号)开头。一旦键入了打头的冒号,vi就将光标移动到命令行上(屏幕的最底部)。在键入命令时,每个字符都将回显。当键入结束时,必须按下<Return>键。
如果在按下<Return>键之前,发现了错误 ,有两种选择:
1 按下<Esc>键,彻底取消这个命令;
2 使用特殊键对命令进行纠正;
<Backspace>/<Delete> 删除最后一个字符
ctrl+w 删除最后一个单词
ctrl+x/ctrl+u 删除整行