vi(visual editor,读作“vee-eye”).几乎在所有的Unix系统上有近乎相同的形式。vi并不是一个“所见即所得”的文本处理程序。如果要生成格式化的文本,必须自己输入其他格式化程序所需的命令,以便控制打印结果。
模式(mode)
mode对vi的运作而言是最基础的。模式有两种:命令模式(command mode)和插入模式(insert mode)。一开始是命令模式,此时所有的按键都是命令,而在插入模式,你输入的东西都成了文本的内容。
按下ESC键会 强制进入 命令模式,在命令模式下 按 i 键进入插入模式。
一般来说,vi的命令有如下特点:
- 字母的大小写有区别,大小写代表不同的意义
- 在输入时候不会显示在屏幕上
- 不需要在命令后加上Enter键
同时有另一组命令显示在屏幕的低端,而这些命令前面有特殊符号。斜线(/)与问号(?)用于开始搜索命令,冒号(:)用于开始所有的ex命令,ex命令是ex行编辑器使用的命令,在使用vi的时候,也可以利用ex,它是底层编辑器,vi只是其“可视化”的模式而已。
保存与结束
命令模式下 输入 ZZ 写入并保存
使用ex命令
:w 保存文件但不离开
:q 退出
:wq 保存并退出 与ZZ相等
:e! 消除所有的编辑结果 回到原来的文件 恢复上一次存储的文件内容
:q! 消除所有的编辑结果,直接退出。
vi一般不会让你放弃编辑结果,在:e :q命令后的感叹号可使vi不理会这个禁令,即使缓存区有所改变,仍然会执行这个命令。
常见问题
- 尝试保存文件时候,出现如下信息:
FIle exists
FIle file exists - use w!
[Existing file]
FIle is read only
输入 w! file 覆盖文件或者输入 :w newfile 将编辑的结果写入新文件中。 - 写入文件,但是得到"Permission denied"消息。
使用: 输入:w pathname/newfile 将缓存区写入你拥有写入权限的目录中 - 写入文件,却得到文件系统已满的消息
输入:!rm junkfile来删除不需要的打文件或者 输入:!df 查看其他文件系统是否还有空间,然后选择一个目录:w 写入你的文件