vi使用

3.1 vi工具

3.1.1 vi简介

VI 编辑器是Visual interface的简称,通常称之为VI。VI 编辑器是Linux和Unix上最基本的文本编辑器,工作在字符模式下。它在Linux上的地位就像Edit程序在DOS上一样。由于不需要图形界面,使它成了效率很高的文本编辑器。尽管在Linux上也有很多图形界面的编辑器可用,比如Gedit, Kate等。但VI在系统和服务器管理中的作用是那些图形编辑器所无法比拟的,更重要的很多服务器是不安装图形环境的。

VI编辑器可以执行输出、删除、查找、替换、块操作等众多文本操作,而且用户可以根据自己的需要对其进行定制,这是其他编辑程序所没有的。VI 编辑器并不是一个排版程序,它不像Word或WPS那样可以对字体、格式、段落等其他属性进行编排,它只是一个文本编辑程序。没有菜单,只有命令,且命令繁多。

在linux、Unix系统中还有一种VI的加强版VIM编辑器,VI的命令几乎都可以在VIM编辑器上使用。  

3.1.2 进入退出vi

Vi有两种工作模式:

命令模式  用来控制vi进行特殊操作的一种模式,例如控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入文本输入模式的命令等。在命令模式下是不能够在被编辑的文档中输入任何字符的。

输入模式  用来在文件中输入字符的一种模式,只有在这种模式下才能够在被编辑的文档中输入字符。 在输入模式下按[Esc]键可以切换到命令模式。

进入vi  在系统提示符号输入vi及文件名称后,就进入vi全屏幕编辑画面:

[root@localhost root]#vi  filename

 不过有一点要特别注意,就是您首次进入vi之后,是处于命令行模式,您要切换到输入模式才能够输入文字。初次使用vi的人都会想先用上下左右键移动光标或鼠标移动光标,然后输入字符,发现有时能输入,有时不能输入,那是因为有时按的是进入到输入模式的命令,所以能够输入字符,当按的不是进入输入模式的命令时就不能输入字符。

命令模式->输入模式,你可以使用如下命令: 

i    按[i]是从光标当前位置开始输入字符。

a   按[a]是从光标所在位置的下一个位置开始输入字符。

o   按[o]是在光标的下一行插入新的一行,从行首开始输入文字。

I    按[I]是从光标所在行的行首开始输入字符。

A   按[A]是从光标所在行的行尾开始输入字符。

O   按[O]是在光标的上一行插入新的一行,从行首开始输入文字。 

图 3-1  进入vi输入模式

退出vi  在输入模式按[Esc]键回到命令模式,在命令模式按一下[:]冒号键,然后输入下例命令退出vi。

: w filename  将文件以指定的文件名filename保存

: wq  存盘并退出vi。

: q!  不存盘强制退出vi。 

或在命令模式下直接按ZZ保存退出。

 

图 3-2  退出vi

3.1.3 常用vi命令

1. 光标控制命令

  字移动】

w:光标跳到下个字的开头。

  b:光标回到上个字的开头。

 

  行移动】

^或0 :光标移至行首。 

$ :光标移至行尾。 

) :光标移至句尾。

( :光标移至句首。

nG: 光标移至第 n 行首。

n+: 光标下移 n 行。

n  回车:输入一个数字n,再按回车键,光标就会下移n行。

n-: 光标上移 n 行。

 

段移动】

Ctrl+f :光标移至下页。 

Ctrl+b:光标移至上页。 

} :光标移至段落开头。

{ :光标移至段落结尾。 

H :光标移至屏幕顶。

M :光标移至屏幕中。

L :光标移至屏幕后。 

gg:光标移动到文章的开头。

G:光标移动到文章的最后。

 

2. 文本编辑命令 

 【增加】

i:   从光标当前位置开始输入字符。

a:  从光标所在位置的下一个位置开始输入字符。

o:   在光标的下一行插入新的一行,从行首开始输入文字。

I:    从光标所在行的行首开始输入字符。

A:   从光标所在行的行尾开始输入字符。

O:   在光标的上一行插入新的一行,从行首开始输入文字。

 

删除】

x:删除光标所在位置的字符。

X:大写X,删除光标所在位置的前面一个字符。

dw:删除单词。 

dd:删除行。

#dd:#代表数字,删除#行。

d0或d^: 删除光标到行首部分字符。

d$ 或shift+d : 删除光标到行尾部分字符。

d} :删除光标到段落开头。

d{ :删除光标到段落结尾。 

:n1,n2  d  将 n1 行到 n2 行之间的内容删除。

图 3-3  删除粘帖

命令图解:将光标定位到第二行,按2dd则删除第二、三行,再将光标移到删除后的第四行按[p],则将二、三行删除并复制到“line six”行后面。

 

【修改

r:替换字符。

R :替换当前字符及其后的字符,直至按ESC键。

s: 删除光标处字符并在当前位置开始输入字符。

cw:更改光标所在位置的一个字。

#cw:更改光标所在位置的#个字。

S、cc:删除光标所在行并在当前行首开始输入字符。

c$ 或 shift+c:删除光标到行尾部分字符,并开始输入字符。

J:把下一行合并到当前行尾。

u:撤销更改。

[ctrl]+r:恢复撤销的更改.

:n1,n2 m m3   将 n1 行到 n2 行之间的内容移至第 n3 行下。

图 3-4  移动操作

命令图解:将2行到3行的内容移到第6行的后面。

 

【查找

[/关键字]:先按[/]键,再输入您想寻找的字符,从光标向下查找,如果第一次找的关键字不是您想要的,可以一直按[n]会往后寻找到您要的关键字为止。

[?关键字]:先按[?]键,再输入您想寻找的字符,从光标向上查找,如果第一次找的关键字不是您想要的,可以一直按[n]会往前寻找到您要的关键字为止。

%: 匹配当前(、[、{ 、}、] 、)的对应项。

:g/str  显示包含字符串str的行。

 

【复制

yl:复制字符。

yw:复制单词。

yy:复制行。 

y0: 复制光标到行首部分字符。

y$: 复制光标到行尾部分字符。

:n1,n2 co n3   将 n1 行到 n2 行之间的内容拷贝到第 n3 行下。

p:粘帖。 

ddp:删除和粘贴综合使用,实现上下两行交换功能。

图 3-5  复制粘帖

命令图解:将19行到20行的内容复制到24行的后面。

【大小写转换

gul 字符小写。

gUl 字符大写。

guw 字小写。

gUw 字大写。

guu 行小写。

gUU 行大写。

 

3. 书签 

设置书签  在阅读和编写大的程序文件时,利用书签定位功能是十分有帮助的。将光标移到想做标记的位置。假如做一个名称为“a”的标记,那么用户可在命令模式下输入做标记的命令“ma”,一个名为“a”的书签就做好了。

定位书签  在命令模式下输入“`a”后,就能快速回到“a”的标记所在行的行首。

 

4. 选项设置

set list: 显示制表位(^I)和行尾标志($)。

set no list: 不显示制表位(^I)和行尾标志($)。

set nu,set number: 显示行号。

set nonu   ,set nonumber: 不显示行号。

图 3-6  显示行号、制表符

 

5. 文件操作 

:%!xxd     按十六进制查看当前文件。

:%!xxd -r   从十六进制返回正常模式。

:n1,n2 w filename  将 n1 行到 n2 行之间的内容保存到文件 filename 中。

 

6. 其它操作 

:!shellcommand   执行linux命令。

 

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值