Linux系统之vi编辑器

vi编辑器是所有Unix及Linux系统下标准的编辑器,它的强大不逊色于任何最新的文本编辑器,这里只是简单地介绍一下它的用法和一小部分指令。由于对Unix及Linux系统的任何版本,vi编辑器是完全相同的,因此您可以在其他任何介绍vi的地方进一步了解它。Vi也是Linux中最基本的文本编辑器,学会它后,您将在Linux的世界里畅行无阻。

 

 

1、vi的基本概念

  基本上vi可以分为三种状态,分别是命令模式(command mode)、插入模式(Insert mode)和末行模式(last line mode),各模式的功能区分如下:

 

1) 命令行模式(command mode)

  控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入Insert mode下,或者到 last line mode。

 

2) 插入模式(Insert mode)

  只有在Insert mode下,才可以做文字输入,按「ESC」键可回到命令行模式。

 

3) 末行模式(last line mode)

     设置vi编辑环境、保存文件、退出编辑器,以及多文件内容进行查找、替换等操作。

                  

                                   

 

一、命令行模式(command mode)功能键

1、从命令模式进入到插入模式:

a

在光标后插入内容;

A

在当前行的末尾插入内容;

o

在当前行的下面插入内容;

O

在当前行的上面插入内容

i

在光标处插入内容;

I

在当前行的行首插入内容

 

2、命令模式下的跳转命令:

上、下、左、右方向键

移动

pageup或ctrl+B

向上翻页;

pagedown或ctrl+F

向下翻页

home

跳到当前行的行首(shift+^/数字0);

end

跳到当前行的行尾(shift+$)

G(shift+g)

跳到文件的最后一行;#G:跳转到文件的第#行

gg/1G

回到文件的第一行行首;10gg:跳到文件的第十行;22gg:跳到文件的第22行;

H

跳到当前屏幕的第一行

M

跳到当前屏幕的中间

L

跳到当前屏幕的最后一行

w

一个单词一个单词的向右跳

b

一个单词一个单词的向左跳

f

后面跟想跳转的字母,如:f b,向右跳到最近的一个b字母处

 

3、命令模式下的复制和粘贴命令:

yy

复制当前行;比如:10yy:从当前行开始向下复制十行

yw

从光标开始复制一个单词

y$

复制光标处到行尾所有内容

y^

复制光标处到行首所有内容

p(小写)

将缓冲区中的内容粘贴到光标位置处之后

P(大写)

粘贴到光标位置处之前

 

 

4、命令模式下的删除\撤消\替换命令:

dd

删除当前行;10dd:从当前行开始向下删除10行

dw

从光标开始删除一个单词

d$

删除光标处到行尾所有内容

d^

删除光标处到行首所有内容

x/del

删除光标处的一个字符

u

撤消上一步操作

U

用于取消对当前行所做的所有编辑

ZZ

保存当前的文件内容并退出vi编辑器

ctrl+r

反撤消

r b

把光标所在处的字符替换成b;r n:把光标处的字符替换成n

R

从光标处连续向右替换直到按esc键停止  (光标处开始替换模式)

 

 

5、命令模式下文件内容查找:

/word

从上而下在文件中查找字符串“word”

?word

从下而上在文件中查找字符串“word”

n

定位下一个匹配的被查找的字符串

N

定位上一个匹配的被查找的字符串

 

 

二、插入模式

就是写入文本内容。

 

三、末行模式(在“:”后面输入内容)

1、保存和退出:

w

保存

w  aa.log

把当前文件另存为aa.log 放到当前目录

w  /tmp/ab.log

把当前文件另存为ab.log放到/tmp目录

q

退出

wq

保存后退出 和x一样

q!

不保存退出

1090,1096  w  1090.log

把当前文件的1090行到1096行,另存到当前目录1090.log中

1085,1088s  /^/#/g

在1085行到1088行的行首插入#

%s  /^/#/g

所有行的行首插入#

1085,1088s  /^#//g

在1085行到1088行的行首去掉#

set nu

显示行号   (临时显示)

set nonu

不显示行号

 

2、打开新文件或读入其他文件内容

e  /home/a.txt

在当前文件下,打开新的文件进行编辑;

r  aa.log

把当前目录下的aa.log文件读取到当前文件中,起到文件合并的效果

 

3、文件内容替换

s /old/new

将当前行中查找到的第一个字符串“old”替换为“new”

s /old/new/g

将当前行中查找到的所有字符串“old”替换为“new”

#,# s/old/new/g

在行号"#,#"范围内替换所有的字符串“old”为“new”

% s/old/new/g

在整个文件范围内替换所有的字符串“old”为“new”

%s /^c/C/g

把当前文档中所有以c开头的内容替换成C

s /old/new/c

在替换命令末尾加入c命令,将对每个替换动作提示用户进行确认

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值