linux基础命令之:vi模式下查找和替换

转自:http://blog.csdn.net/bananasssss/article/details/52574115

参考:http://blog.csdn.net/erhei0317/article/details/52631942


一字符的替换及撤销Undo操作

二快速缩进及调整文本位置

三字符查找

四查找与批量替换

一、字符的替换及撤销(Undo操作)

- Change Delete Yank(copy)
Line(一行) cc dd yy
Letter(字母) cl dl yl
Word(单词) cw dw yw

命令 功能
r+<待替换字母> 将游标所在字母替换为指定字母
R 随光标移动,连续替换,直到按下Esc
cc 替换整行,即删除游标所在行,并进入插入模式
cw 替换一个单词,即删除一个单词,并进入插入模式
C(大写) 替换游标以后至行末
~ 反转游标所在字母大小写
u{n} 撤销一次或n次操作
U(大写) 撤销当前行的所有修改
Ctrl+r redo,即撤销undo的操作

二、快速缩进及调整文本位置

命令 功能
>> 普通模式下,整行将向右缩进
<< 普通模式下,整行向左回退
:ce(center) 命令行模式下,使本行内容居中
:ri(right) 命令行模式下,使本行文本靠右
:le(left) 命令行模式下,使本行内容靠左

普通模式下输入:进入命令行模式下对shiftwidth值进行设置可以控制缩进和回退的字符数 
:set shiftwidth?或者:set sw?

三、字符查找

命令 功能
/text 往后搜索text
?text 往前搜索text
n 搜索上一次同样的内容
N 往前(相对)搜索相同的内容
\* 寻找游标所在处的单词
\# 同上,但 \* 是向前(上)找,#则是向后(下)找
g\* \* ,但部分符合该单词即可
g\# \# ,但部分符合该单词即可

四、查找与批量替换

命令 功能
:s/ 表示通过sed命令进行查找替换
:s/i/- 将本行的第一个i替换为-
:s/i/-/g 最后的一个g表示替换该行的所有i
:1,10s/i/-/g 替换1-10行所有的i为-
:1,$s/i/-/g 末尾行用$表示到文件末尾

五:other

在使用vi有时会想直接复制一行数据,然后粘贴一行或者直接删除一行数据

复制一行数据的方法

把光标放到要复制的一行前面,然后按两下yy字母键

然后把光标放到要复制到的地方去,按键盘的p字母键

删除一行是把光标移动到要删除的一行上,按两下dd键

下面是相关键的说明:

x,X  : 在一行中,x为向后删除一个字符(相当于del键),X为向前删除一个字符(相当于backspace键)。
dd   : 删除光标所在的那一整行。
ndd  : n 为数字。从光标开始,删除向下n列。
yy   : 复制光标所在的那一行。   
nyy  : n为数字。复制光标所在的向下n行。
p,P  : p 为将已复制的数据粘贴到光标的下一行,P则为贴在光标的上一行。
u    : 复原前一个操作
CTRL + r : 重做上一个操作。
小数点'.': 重复前一个动作。


猜你喜欢

转载自blog.csdn.net/fchyang/article/details/79271134