Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1757182
  • 博文数量: 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”,中间有一个不为abc或者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编辑器。而vimemacs提供更加强大的功能。要在UNIX上使用vimemacs,必须安装这两个软件包。这两个软件包均可在互联网上免费获得。
阅读(871) | 评论(0) | 转发(0) |
0

上一篇:unix 常用命令

下一篇:C语言基础

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