Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1859280
  • 博文数量: 600
  • 博客积分: 10581
  • 博客等级: 上将
  • 技术积分: 6205
  • 用 户 组: 普通用户
  • 注册时间: 2008-11-06 10:13
文章分类
文章存档

2016年(2)

2015年(9)

2014年(8)

2013年(5)

2012年(8)

2011年(36)

2010年(34)

2009年(451)

2008年(47)

分类:

2009-08-26 11:06:25

vi

vi是一种全屏幕编辑器,可以在整个屏幕范围内编辑文本所做的编辑直接反映到屏幕上。vi使用编辑缓冲区,即首先将文件读入缓冲区中,对该文件的修改作用于缓冲区中的副本,直到用户显式执行保存命令。

vi分为三种模式:命令模式、文本输入模式、ex转义命令模式(末尾行模式)。在shell中执行vi命令,vi自动进入命令模式。在任何一种模式下按下ESC键均返回到命令模式。文本输入

用法

vi [ -option ... ] [ command ... ] [ filename ... ]

2.2.1 文件操作

☆ w:保存文件

☆ wq:保存文件并退出vi。

☆ x:如果编辑缓冲区被改变则保存后退出,否则直接退出vi。

☆ q:退出vi。若编辑缓冲区被改变,则vi给出警告信息,并且不退出。

☆ q!:放弃自上次保存以来所作的修改(如果有),并退出vi。

☆ e!:放弃自上次保存以来所作的修改(如果有),并重新打开文件。

☆ e:编辑另一个文件。

2.2.2 进入文本输入模式

☆ a:在当前字符后面添加文本。

☆ A:在行尾添加文本。

☆ i:在当前字符前添加文本。

☆ I:在行首添加文本。

☆ s:将当前字符替换成指定文本。

☆ S:将当前行替换成指定文本。

☆ r:将当前字符替换成指定字符。

☆ R:从当前字符处开始替换字符。

o:在当前行之下添加文本。

☆ O:在当前行之上添加文本。

2.2.3 移动光标

☆ h:向在移动光标。

☆ j:向下移动光标。

☆ k:向上移动光标。

☆ l:向上移动光标。

☆ w:移动到下一个单词头。

☆ e:移动到单词尾。

☆ b:移动到上一个单词头。

☆ g:移动到指定行的第一个非空格字符处。

☆ 0:移动到行首。

☆ $:移动到行尾。

☆ %:移动到与当前括号匹配的括号处。

2.2.4 缓冲区操作

☆ x:删除当前字符并放入无名缓冲区中。

☆ X:删除光标前一字符并放入无名缓冲区中。

☆ dd:删除当前行并放入无名缓冲区中。

☆ yy:将当前行放入无名缓冲区中(不删除)。

☆ d:删除指定对象,并放入无名缓冲区中。对象是指由光标移动命令确定的文本块。

☆ y:将指定对象放入无名缓冲区中(不删除)。

☆ “:指定缓冲区名称。小写字母表示刷新指定缓冲区,大写字母表示向该缓冲区添加。

☆ p:从指定缓冲区(或者无名缓冲区)中取出文本,并添加到光标之后。

☆ P:从指定缓冲区(或者无名缓冲区)中取出文本,并添加到光标之前。

正则表达式与查找

2.3.1 正则表达式

正则表达式是普通字符和特殊字符(元字符)序列。正则表达式是功能更加强大的类似于文件通配符(*)的表达式。正则表达式通常用于查找字符串,在vi和命令行中大量使用。

正则表达式元字符有\、.、*、^、$、[和]。\表示将其后的元字符转义成普通字符。.(英文句号)表示任意一个字符。*表示任意字符串。表示^表示行首,在中括号里表示取非。$表示行尾。[和]表示匹配区间。举例如下:

^abc:行首三个字符为“abc”。

abc$:行尾三个字符为“abc”。

^$:空行。

ab[ab]c:字符串“abac”、“abbc”中的一个。

ab[a-z]c:前两个字符为“ab”,最后一个字符是“c”,中间有一个小写字母的字符串。

ab[^a-d]c:前两个字符为“ab”,最后一个字符是“c”,中间有一个不为a、b、c或者d的字符的字符串。

2.3.2 查找

在vi编辑器中的查找命令的用法为:

/Pattern    或者   ?Pattern

其中:Pattern指定查找模式(正则表达式)。

第一个命令向下查找,第二个命令向上查找。下面两个命令继续最后一次查找。

n           或者   N

第一个命令在相同方向上查找,第二个命令在相反方向上查找。

例如,要查找字符串“Your Name”或者“Your name”,则输入命令:

/Your [Nn]ame

可以在末尾行模式下的查找命令后执行其他的子命令,例如下面这个命令将文件中所有的字符串“Your Name”替换成“My Name”:

:/Your Name/s//My Name/g

再如,下面这个命令将所有包含字符串“Your Name”的行打印在屏幕上:

:/Your Name/p

和emacs

基本上所有的UNIX都带有vi编辑器。而vim和emacs提供更加强大的功能。要在UNIX上使用vim和emacs,必须安装这两个软件包。这两个软件包均可在互联网上免费获得。
阅读(958) | 评论(0) | 转发(0) |
0

上一篇:unix 常用命令

下一篇:C语言基础

给主人留下些什么吧!~~