vi/vim 详细解析

文本编辑器:用来创建和修改文本文件的程序,只处理纯文本(由可显示字符构成的数据)。通常称为编辑器。

字处理程序:用于文字的格式化和排版。

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目录获取的)执行。

这样,在不同目录下的程序就可以定制适合本程序的工作环境。



  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值