博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

VI的基本操作

Posted on 2008-05-25 14:24  zhangweia  阅读(240)  评论(0编辑  收藏  举报

                   常用VI 编辑

1 基本编辑指令(由指令模式进入编辑模式

1.1 Append(追加,既在原光标所在位置后面加入字符)

*      a  从光标所在位置後面开始插入数据,

*      A  从光标所在行的最後面开始插入数据

1.2 Insert(插入,既在原光标所在位置前插入字符)

*      i   从光标所在位置前面开始插入数据

*      I   从光标所在行最前面开始插入数据

1.3 Open

*      o   在光标所在行的下一行插入数据

*      O   在光标所在行的上一行开始插入数据

1.4 Replay (替换,既替换光标所在位置字符)

*      r  修改光标所在字元,一次只修改一个,既光标所在字       ,并且不改变命令行状态         

*      R  进入取替换状态,新增文字会覆盖原先文字,直到按 [ESC] 回到指令模式下为止

1.5 chang(改变,既先删除需要改变的字符,然后在改变的位置输入)

   cw  改变光标所在位置的的一个字节,然后进入插入模式,如果光标在字符中间,则改变光标所在位置到该字节的结束,如果光标在字节的开头,则改变整个字节

   cb   改变光标所在位置前的一个字节~~~~

   cnw  改变光标所在位置的后n个字节

   c0   改变光标所在位置到行的开头的字节

   c$   改变光标所在位置到行结束的字节                    

2          光标移动指令

2.1 行的移动

h   向左移动   nh  向左移动n个字符

j   向下移动    nj   向下移动n

k   向上移动   nk   向上移动n

l    向右移动   nl   向右移动n个字符

0               移动到光标所在行的最前面

$   移动到光标所在行的最后面

b   移动到下一个字的第一个字母

w  移动到上一个字的第一个字母

字符与数值的组合,

nw   移动到下n个字的第一个字母

nb   移动到上n 个字的第一个字母

2.2 段的移动

Ctrl+f  向上一页

Ctrl+b  向下一页

H  移动到当前屏幕的第一行

M  移动到当前屏幕的中间行

L  移动到当前屏幕的最后一行

23 移动屏幕,但光标的位置不变

  z (enter)  移动当前行到屏幕的顶端,并滚动

  z .       移动当前行到屏幕的中间,并滚动

  z-       移动当前行到屏幕的底端,并滚动

2.4 按句子移动光标

  从光标位置移动到句子的开始

  从光标的位置移动到下一个句子

3           删除 复制

dd   删除所在的行

D  删除从光标位置开导到所在行的末尾

dl  向右删除一个字符

dh  向左删除一个字符

dj   删除本行加下一行,总共删除2

yy   复制 所在的行

5yh  向前复制5个字符

nyj  向下复制n行(包括当前行,则有N+1行)

nyk  向上复制n行(~~~~~~~~~~~~)

删除和复制同理

d ,y 与下面的字符结合可控制删除,复制的位置

   0  光标所在位置到该行的最后一个字符

   $  光标所在位置到该行的第一个字符

复制的字符被放在缓存区,P  把复制的内容放到光标之前的位置

                       p   把复制的内容放到光标之后的位

4           取消上一次操作

u   取消上次操作and 保存删除的行,当删除了不想删除的字符时,按u可以回到最后一次操作前的状态,连续按u 可以恢复到前n个状态。

p(小写)   复制上一次删除的内容,复制到当前光标的下一位置,连续按p 则复制n个相同的内容

P   复制到当前光标的上一位置

.  重复三次操作

5           连接下一行

 J  连接光标所在行的下一行

6 查找字符

  /word   查找/下的字符,光标停留在查找的字符出

  for example   /dec   查找屏幕中的字符 dec

  fx  (x代表任意一个字符) 查找当前行光标后的字符x

  Fx  查找当前行光标前的字符x

    重复查找

7 复习

Table 2.1: Edit Commands

Text Object

Change

Delete

Copy

1 word

Cw

Dw

yw

2 words, not counting punctuation

2cW or c2W

2dW or d2W

2yW or y2W

3 words back

3cb or c3b

3db or d3b

3yb or y3b

1 line

Cc

Dd

yy or Y

to end of line

c$ or C

d$ or D

y$

to beginning of line

c0

d0

y0

single character

R

x or X

yl or yh

five characters

5s

5x

5yl

 

Table 2.2: Movement

Movement

Commands

, , ,

h, j, k, l

forward by word

w or W

backward by word

b or B

to end of line

$

to beginning of line

0

 

Grep SIB501 *    在当前目录下造成构件号为SIB501的构件