Vi使用详解

以问答的方式学习一下vi的使用,边看本文边进行实践是一种比较有效的学习方式。

一、如何进入vi编辑器?

在系统提示字符(如$、#)下敲入vi <档案名称>,vi 可以自动帮你载入所要编辑的文件或是开启一个新文件(如果该文件不存在或缺少文件名)。进入 vi 后萤幕左方会出现波浪符号,凡是列首有该符号就代表此列目前是空的。

二、关于vi的两种模式?

vi存在两种模式:指令模式和输入模式。在指令模式下输入的按键将做为指令来处理:如输入a,vi即认为是在当前位置插入字符。而在输入模式下,vi则把输入的按键当作插入的字符来处理。指令模式切换到输入模式只需键入相应的输入命令即可(如a,A),而要从输入模式切换到指令模式,则需在输入模式下键入ESC键,如果不晓得现在是处於什麽模式,可以多按几次[ESC],系统如发出哔哔声就表示已处于指令模式下了。

三、如果退出vi?

在指令模式下键入:q,:q!,:wq或:x(注意:号),就会退出vi。其中:wq和:x是存盘退出,而:q是直接退出,如果文件已有新的变化,vi会提示你保存文件而:q命令也会失效,这时你可以用:w命令保存文件后再用:q退出,或用:wq或:x命令退出,如果你不想保存改变后的文件,你就需要用:q!命令,这个命令将不保存文件而直接退出vi。

四、在指令模式对文件进行删除和修改的一些命令?

首先按Esc进入指令模式。

x: 删除光标所在字符,依旧停留在指令模式。

dd :删除光标所在的列,依旧停留在指令模式。

dw:删除光标所在字,依旧停留在指令模式。

r :修改光标所在字元,点r 后接着输入要修正为的字符。

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

s: 删除光标所在字元,并进入输入模式。

S: 删除光标所在的行,并进入输入模式。

c :功能和d相同,区别在于完成删除操作后进入INSERTMODE

cc:也是删除当前行,然后进入INSERT MODE

五、Vi中查找及替换命令?

/pattern      从光标开始处向文件尾搜索pattern

?pattern      从光标开始处向文件首搜索pattern

n           在同一方向重复上一次搜索命令

N           在反方向上重复上一次搜索命令

%          查找配对的括号

:s/p1/p2/g       将当前行中所有p1均用p2替代,若要每个替换都向用户询问则应该用gc选项

:n1,n2s/p1/p2/g  将第n1至n2行中所有p1均用p2替代

:g/p1/s//p2/g    将文件中所有p1均用p2替换

.*[]^%~$ 在Vi中具有特殊含义,若需要查找则应该加上转义字符"\"

六、vi中如何进行复制与粘贴操作?

首先同样保证进入指令模式。

yy命令复制当前整行的内容到vi缓冲区
  yw复制当前光标所在位置到单词尾字符的内容到vi缓存区,相当于复制一个单词
  y$复制光标所在位置到行尾内容到缓存区
  y^复制光标所在位置到行首内容到缓存区
  #yy例如:5yy就是复制5行
  #yw例如:2yw就是复制两个单词
  如果要复制第m行到第n行之间的内容,可以在末行模式中输入m,ny例如:3,5y复制第三行到第五行内容到缓存区。

P 将复制的内容粘贴在当前光标后面的位置上

七、vi中如何显示行号?

    在末行模式(按Esc进入指令模式,输入:就可进入末行模式),输入set number.即可显示行号。

八、几个不同的从指令模式切换到输入模式的命令?

新增 (append)

a :从光标所在位置後面开始新增资料,光标后的资料随新增资料向後移动。

A:从光标所在行最後面的地方开始新增资料。

插入 (insert)

i:从光标所在位置前面开始插入资料,光标后的资料随新增资料向後移动。

I :从光标所在行的第一个非空白字元前面开始插入资料。

开始 (open)

o :在光标所在行下新增一列并进入输入模式。

O: 在光标所在行上方新增一列并进入输入模式。

九、vi中如何恢复误操作?

u        撤销最后执行的命令

U        修正之前对该行的操作

Ctrl+R   Redo

十、如何重复上一个操作?

  . (点操作)       重复上一次操作

十一、vi中移动光标的操作?

       k        上

h  l    左  右

 j        下

 

^       移动到该行第一个非空格的字符处

w       向前移动一个单词,将符号或标点当作单词处理

W       向前移动一个单词,不把符号或标点当作单词处理

b       向后移动一个单词,把符号或标点当作单词处理

B       向后移动一个单词,不把符号或标点当作单词处理

(       光标移至句首

)       光标移至句尾

{       光标移至段落开头

}       光标移至段落结尾

H       光标移至屏幕顶行

M       光标移至屏幕中间行

L       光标移至屏幕最后行

0       到行首

$       到行尾

gg      到页首

G       到页末

行号+G   跳转到指定行

n+      光标下移n行

n-      光标上移n行

Ctrl+g  查询当前行信息和当前文件信息

 

fx      向右跳到本行字符x处(x可以是任何字符)

Fx      向左跳到本行字符x处(x可以是任何字符)

 

tx      和fx相同,区别是跳到字符x前

Tx      和Fx相同,区别是跳到字符x后

 

C-b     向上滚动一屏

C-f     向下滚动一屏

C-u     向上滚动半屏

C-d     向下滚动半屏

C-y     向上滚动一行

C-e     向下滚动一行

 

nz      将第n行滚至屏幕顶部,不指定n时将当前行滚至屏幕顶部。

十二、vi的选项设置?

 

all        列出所有选项设置情况

term       设置终端类型

ignorance  在搜索中忽略大小写

list       显示制表位(Ctrl+I)和行尾标志($)

number     显示行号

report     显示由面向行的命令修改过的数目

terse      显示简短的警告信息

warn       在转到别的文件时若没保存当前文件则显示NOwrite信息

nomagic    允许在搜索模式中,使用前面不带“\”的特殊字符

nowrapscan 禁止vi在搜索到达文件两端时,又从另一端开始

mesg       允许vi显示其他用户用write写到自己终端上的信息


参考链接:http://dsec.pku.edu.cn/~jinlong/vi/Vi.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值