现在的位置: 首页 > 综合 > 正文

Linux中的Vi编辑操作

2013年08月05日 ⁄ 综合 ⁄ 共 1294字 ⁄ 字号 评论关闭

Linux中的Vi编辑操作

 ------本文的内容是介绍Linux中的Vi编辑相关的一些操作

1Vi2模式

Command(命令)模式,用于输入命令

Insert(插入)模式,用于插入文本

 

2、当我们按ESC进入Command模式后,可以使用下面的一些键位来移动光标

j 向下移动一行

k 向上移动一行

h 向左移动一个字符

l 向右移动一个字符

在编辑一个文件时,对于jklh键,还能在这些动作命令的前面加上数字,比如3j,表示向下移动3行。

    ^  将光标移动到行首

    $  将光标移动到行尾

 

3、插入模式(文本的插入)

i 在光标之前插入

a 在光标之后插入

I 在光标所在行的行首插入

A 在光标所在行的行末插入

o 在光标所在行的下面插入一行

O 在光标所在行的上面插入一行

 

4、文本内容的删除操作

x 删除一个字符

#x 删除几个自如,#表示数字,比如 3x

dd 删除一行

#dd 删除多个行,#代表数字,比如3dd表示删除光标行及光标的下两行

d$ 删除光标到行尾的内容

J 清除光标所处的行与下一行之间的换行,行尾没有空格的话会自动添加1个空格

#J 表示合并#(数字)行

 

5、退出保存

在命令模式下按 shift+:会在文本底端出现冒号

:w   保存

:w filename  
另存为filename

:wq!   保存并退出

:q!   不保存退出

:x    保存并退出,功能和 :wq!相同

 

6、撤销操作

u命令取消最近一次的操作,可以使用多次来恢复原有的操作。

7、复制操作

yy 复制当前整行的内容到 vi缓存区,#yy
,如5yy就是复制5

yw 复制当前光标所在位置到单词尾字符的内容到 vi缓存区,相当于复制一个单词

y$ 复制当前光标所在位置到行尾内容到缓存区

y^ 复制当前光标所在位置到行首内容到缓存区

如果要复制第m行到第n行之间的内容,可以在末行模式中输入m,ny,例如3,5y复制第3行到第5行内容到缓存区。

 

8、查找和替换

Vi 的查找和替换功能主要在末行模式完成,分别是“至上而下的查找”和“至下而上的查找”。

8.1 至上而下的查找

/要查找的字符串,其中/代表从光标所在位置起开始查找,例如,/work

n 查找下一个匹配的字符串
N 反向查找下一个匹配的字符串

8.2至下而上的查找

?要查找的字符串,其中?代表从光标所在位置起开始查找,例如,?work

8.3 替换

:s/old/new new替换行中首次出现的old

:s/old/new/g
new替换行中所有出现的old

:#,#s/old/new/g
new替换从第#行到第#行中出现的old

:%s/old/new/g
new替换整篇中出现的old

如果替换的范围较大时,在所有的命令尾加一个c命令,强制每个替换需要用户进行确认,例如,s/old/new/c s/old/new/gc

 

9、恢复文件

Vi在编辑某一个文件时,会生成一个临时文件,这个临时文件以.swp结尾。正常退出时,该文件会被自动删除;但如果是意外退出,例如突然断电,该文件不会被删除,在下一次编辑时可以选择以下命令处理:

O 只读打开,不改变文件内容

E 继续编辑文件,不恢复.swp文件保存的内容

R 将恢复上次编辑以后未保存文件内容

Q 退出vi

D 删除.swp文件

抱歉!评论已关闭.