概述
文本编辑器:用来创建和修改文本文件的程序,只处理纯文本(由可显示字符构成的数据)。通常称为编辑器。
字处理程序:用于文字的格式化和排版。
vi是一个文本编辑器,可以使用它创建和修改配置文件,shell脚本,初始化文件,Web页面,简单文档等。
vi很重要,因为当在一个提供有限工具的环境中工作时,vi可能是唯一可用的文本编辑器。
历史简介
vi编辑器由Bill Joy创建。
ed:一种面向行的编辑器(称为行编辑器)。Ken Thompson编写
em:ed的向后兼容替代品,editor for mortals 人类编辑器(也就是说ed不适合正常的人类)。George Coulouris编写
en:将em的部分功能集成到ed中。Bill Joy和Charles Haley创建的混合体
ex:en的极大改进版本,仍然是面向行的编辑器。Bill Joy和Charles Haley改进
vi:通过创建一个独立的面向屏幕的界面增强了ex,vi成为了一种面向屏幕的编辑器(称为屏幕编辑器)。Bill Joy编写
vim:vi improved vi改进版,向后兼容vi,提供了许多新特性。
ps:计算机领域有一个著名的原则:软件的增强有新硬件驱动。1976年,当Bill Joy开发vi时,情况就是这样。较古老地面向行的编辑器(如ed,ex),都是为原始的面向行的终端设计的。但是当Joy开始接触新型的面向屏幕的终端时,该终端的先进功能激发了Joy创建了vi(一种面向屏幕的编辑器)。
启动vi
使用vi编辑一个已有的文件:
vi filename
创建一个新文件:
vi filename
或 vi
创建一个空文件,当保存数据时再指定文件命名
或 vim -C / vi -C
以兼容模式启动vim,使vim尽可能像vi一样
ps:当没有指定文件名时,vi会是一个几乎全空的屏幕,vim会显示一些帮助信息,一旦开始输入数据,这些信息就会消失。
pps:在Linux上,vi已经被vim所取代,vi命令实际上是vim的别名。但是不要担心,vim制作得非常巧妙,可以像使用vi一样使用它。一旦熟悉了vi,就可以举一反三,学习如何充分使用vim的特殊特性。
命令模式和输入模式
编辑缓冲区:存放数据的存储区域
启动vi时,vi将文件的内容复制到编辑缓冲区中。
编辑时,正在编辑的数据保存在编辑缓冲区。
在保存前,所有的操作都针对编辑缓冲区。保存时,vi将编辑缓冲区的内容保存到原始文件。
命令模式:所有键入的键都被解释成命令
输入模式:键入的任何内容都直接插入到编辑缓冲区中
命令模式->输入模式:i(最常用,键入i即可)
输入模式->命令模式:<Esc>(只有这一个方式)
vi使用屏幕的方式
屏幕底部的一行称为命令行。
vi以两种方式使用这一行:显示消息,显示键入命令时的命令
键入:光标位于底部的命令行,输入命令,并按<enter>,vi会执行命令行命令
屏幕上的其他行都用于显示数据。
vi以一个~字符作为每个空行的开头。
pps:一般在命令行中输入的命令为较长的命令,只有单个或两个键入这样的简单命令不需要在命令行中执行,直接键入即可。
命令
参见我的另一篇文章
vi/vim 命令整理
停止vi
以下操作均在命令模式下
知道怎么安全地退出一个程序是很重要的。
保存工作并退出:
:wq(w是保存,q为退出)
:x(相当于wq)
<Shift> zz (按下并保持<Shift>,按z两次)
不保存工作并退出:
:q!(!有强制的意味,!告诉vi不要检查是否保存了数据,直接退出)
ps:如果修改了数据,并使用:q命令退出,则会显示警告信息,并不会直接退出。
选项
查看选项:
:set all
查看所有选项
:set 选项?
查看指定选项
设置选项:
:set 选项
以只读方式启动vi
有时候,需要使用vi查看一个重要的文件,但又不希望改变这个文件。
vi -R filename
或
view filename
这两个命令等价,以只读方式打开vi。
改动时,会有警告:这是只读模式。但是不阻止更改。
无论作出怎样的更改,都不把编辑缓冲区的数据保存到原始文件。
数据恢复
在编辑文件的过程中,有时会遇到系统关机,或者失去了与系统的连接,通常vi可以将数据恢复出来。
vi会时不时将编辑缓冲区中的内容保存在一个临时文件中,在编辑完成时删除这个临时文件。
如果程序非正常终止,那么这个临时文件还会存在,利用这个临时文件恢复数据。
vi -r
使用vi的-r选项启动vi,将显示所有可以用来恢复数据的文件。
vi -r filename
将恢复指定文件
初始化文件
在vi/vim启动时,会在home目录中查找初始化文件,读取并执行其中的命令,自动地初始化工作环境。
对于vi而言,初始化文件为.exrc
对于vim而言,初始化文件为.vimrc
具体而言,包含:
:set(选项)
:ab(缩写)
:map(宏)
:!命令(运行shell命令)
以"开头的行为注释
根据不同程序定制工作环境:
确保不同的程序在不同的目录下,并且每个目录中都有自定义的,exrc或.vimrc文件。
使exrc选项开启,程序将在当前目录查找第二个初始化文件(第一个初始化文件,是vi启动时从home目录获取的)执行。
这样,在不同目录下的程序就可以定制适合本程序的工作环境。
最后
以上就是无心大叔为你收集整理的vi/vim 详细解析的全部内容,希望文章能够帮你解决vi/vim 详细解析所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复