vi分为三种状态:命令模式(Command mode):控制光标的移动,字符、字或行的删除,移动复制某区段及进入插入模式和底行模式;插入模式(Insert mode):只有在此模式下才可以做文字输入,按「ESC」回到命令行模式;底行模式(Last line mode):将文件保存或退出vi,也可以设置编辑环境,如寻找字符串、列出行号等。
进入vi:在系统提示符号$下输入vi myfile,就进入vi全屏幕编辑画面。初态为:命令模式。只有插入模式才能够输入文字。
1、插入模式的命令简介
在「命令模式」下:
按「i」切换进入插入模式后从光标当前位置开始输入文字;I从光标所在的列的第一个非空白字符前面开始插入文字。
按「a」进入插入模式后从光标所在位置的下一个位置开始输入文字;A从光标所在列最后面的地方开始新增资料。
按「o」进入插入模式后并插入新的一行,从行首开始输入文字;O从光标所在列上方新增1列并进入插入模式。
在「插入模式」下只能一直输入文字,如果输错了字则只能按「ESC」转到「命令模式」来删除。
2、命令模式的命令简介
移动
vi用小写英文字母「h」、「j」、「k」、「l」分别控制光标左、下、上、右移一格。
按「ctrl」 「b」:屏幕往“后”移动一页
按「ctrl」 「f」:屏幕往“前”移动一页
按「ctrl」 「u」:屏幕往“后”移动半页
按「ctrl」 「d」:屏幕往“前”移动半页
按「0」:移到文章的开头
按「G」:移动到文章的最后
按「$」:移动到光标所在行的“行尾”
按「^」:移动到光标所在行的“行首”
按「w」:光标跳到下个字的开头
按「e」:光标跳到下个字的字尾
按「b」:光标回到上个字的开头
按「#l」:光标移到该行的第#个位置,如:5l, 56l
删除
「x」:每按一次,删除光标所在位置的“后面”一个字符
「#x」:例如,「6x」表示删除光标所在位置的“后面”6个字符
「X」:大写的X,每按一次,删除光标所在位置的“前面”一个字符
「#X」:例如,「20X」表示删除光标所在位置的“前面”20个字符
「dd」:删除光标所在行
「#dd」:从光标所在行开始删除#行
复制
「yw」:将光标所在之处到字尾的字符复制到缓冲区中
「#yw」:复制#个字到缓冲区
「yy」:复制光标所在行到缓冲区
「#yy」:例如,「6yy」表示拷贝从光标所在的该行“往下数”6行文字
「p」:将缓冲区内的字符贴到光标所在位置。注意:所有与“y”有关的复制命令都必须与“p”配合才能完成复制与粘贴功能
替换
「r」:替换光标所在处的字符
「R」:替换光标所到之处的字符,直到按下「ESC」键为止
恢复
「u」:如果您误执行一个命令,可以马上按下「u」,回到上一个操作。按多次“u”可以执行多次回复
更改
「cw」:更改光标所在处的字到字尾处
「c#w」:例如,「c3w」表示更改3个字
跳行
「ctrl」 「g」列出光标所在行的行号
「#G」:例如,「15G」,表示移动光标至文章的第15行行首
3、底行模式命令简介
在使用「底行模式」之前,请记住先按「ESC」键确定您已经处于「命令模式」下后,再按「:」冒号即可进入「底行模式」
a) 列出行号
「set nu」:输入「set nu」后,会在文件中的每一行前面列出行号
b) 跳到文件中的某一行
「#」:「#」号表示一个数字,在冒号后输入一个数字,按回车键就会跳到该行,如输入数字15回车,就会跳到文章的第15行
c) 查找字符
「/关键字」:先按「/」键,再输入您想寻找的字符,如果第一次找的关键字不是您想要的,可一直按「n」往后寻找到您要的关键字
「?关键字」:先按「?」键,再输入您想寻找的字符,如果第一次找的关键字不是您想要的,可一直按「n」往前寻找到您要的关键字
d) 保存文件
: w filename (输入 「w filename」将文章以指定的文件名filename保存)
: wq (输入「wq」,存盘并退出vi)
: q! (输入q!, 不存盘强制退出vi)
上一篇:Linux2.6内核驱动移植参考
下一篇:跟我一起写 Makefile