Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1792227
  • 博文数量: 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)

分类: LINUX

2009-10-11 10:39:39

的操作模式

vi提供两种操作模式:输入模式(insert mode)和指令模式(command mode)。在输入模式下,用户可输入文本资料。在指令模式下,可进行删除、修改等各种编辑动作。

在输入模式下,按Esc键切换到指令模式下。

在指令模式下,按输入指令(iao等)进入输入模式。

 

$ vi  filename [filename filename]

直接键入“vi + 所要编辑的文件名”,即可对指定的文件进行编辑。

如果指定的文件为新文件,则提示:“New file”,否则显示该文件的当前内容。

filename可以是文件名,也可以是表达式如:*.c,*haha.*

也可以不指定文件名,直接进入编辑界面,这种方法用于编辑一个新文件,但是暂时还没有确定文件应该叫什么名字时。

 

$ view filename

以只读方式打开文件filename

 

以下指令集中重要度为“***的必须掌握的指令,否则无法正常使用vi,重要度为“*”的为建议掌握的指令,可以更方便地使用vi,其它属于技巧级指令,可以不掌握。

下面所列的所有命令,都必须在指令模式下才能执行,在输入模式下将把输入的字符作为文件内容添加到文件中(ESC除外,因为该命令将从输入模式切换到指令模式)。

重要度

指令集

功能

***

a

在当前光标之后输入

 

A

在当前行之末输入

***

i

在当前光标之前输入

 

I

在当前行之首输入

***

o

在当前行之下新增一行,并在新增行输入

 

O

在当前行之上新增一行,并在新增行输入

 

其他同样可以起到切换到输入模式的非正规方法:

重要度

指令集

功能

**

s[0 $...]

替换字符串命令,切换到输入模式,输入的内容将替换指定的内容,直到敲击ESC为止

**

c[w 0 $...]

替换单词命令,切换到输入模式,输入的内容将替换指定的内容,直到敲击ESC为止

以上命令在下面有详细介绍。

 

输入结束后,按Esc键退出输入模式。

 

重要度

指令集

功能

***

h

向左移动一个字节

***

l

向右移动一个字节

***

j

向下移动一个字节

***

k

向上移动一个字节

*

b

左移一个单词,至词首

*

w

右移一个单词,至词首

*

e

右移一个单词,至词尾

*

gg

移动到文档起始位置

*

0

移到当前行行首

*

^

移动到本行行首第一个可见字符

*

$

移到当前行行尾

 

+

移至下一行的行首

 

-

移至上一行的行首

 

H

移至视窗的第一行

 

M

移至视窗的中间一行

 

L

移至视窗的最后一行

 

G

移至该文件的最后一行

 

nG

移至该文档的第n

 

N+

下移n

 

n-

上移n

 

{

光标移动到上一个空行

 

}

光标移动到下一个空行

 

[[

光标移动到下一个函数起始位置(’{‘字符所在位置)

 

]]

光标移动到上一个函数起始位置(’{‘字符所在位置)

 

光标移动到上一段落起始位置,空行也被认为是段落(多个连续空行被认为是一个段落)

 

光标移动到下一段落起始位置,空行也被认为是段落(多个连续空行被认为是一个段落)

以上命令从he,均可指定重复操作次数,如5h表示光标向前移动5个字节,10j表示向下移动10行。

重要度

指令集

功能

***

+ f

视窗下卷一页

***

+ b

视窗上卷一页

 

+ d

视窗下卷半页

 

+ u

视窗上卷半页

*

+ e

视窗下卷一行

*

+ y

视窗上卷一行

 

zz

将当前行设置为视窗中的中间位置。

 

重要度

指令集

功能

***

x

删除光标所在字节

 

X

删除光标前一字节

*

dw

从光标当前位置开始向后删除一个单词

 

db

从光标当前位置开始向前删除一个单词

*

d0

从行首删除至当前光标位置

*

d$

从光标当前位置删除至行尾

***

dd

删除光标所在行

 

D

d$

 

dG

删除从当前光标位置知道文档末尾的所有内容。

 

以上x,X,dw,db,dd可以指定字符/行数,3x表示删除从当前光标所在位置起的3个字符,3dd表示删除从当前光标所在行开始的3行。

阅读(808) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~