@Beeder
2017-12-23T08:30:57.000000Z
字数 1520
阅读 642
Linux
基本上vi可分为三种操作状态,命令模式(Command mode)、插入模式(Insert mode)和底线命令模式(Last line mode)
各模式的功能区分如下:
1. Comand mode:控制屏幕光标的移动,字符或光标的删除,移动复制某区段及进入Insert mode下,或者到Last line mode。2. Insert mode:唯有在Insert mode下,才可做文字数据输入,按Esc等可回到Comand mode。3. Last line mode:将储存文件或离开编辑器,也可设置编辑环境,如寻找字符串、列出行号等。
$ vi testfile
进入vi后默认是处于“Command mode”下
插入模式(Insert mode)
i: 插入,从目前光标所在之处插入所输入的文字。a: 增加,目前光标所在的下一个字开始输入文字。o: 插入新的一行,从行首开始输入文字。
底线命令模式(Last line mode)
切换`底线命令模式(Last line mode)` 按':'或'/'或'?'键
h、j、k、l 光标左、下、上、右移一格gg 移动文章的开头G 移动到文章的最后w 光标跳到下个word的开头e 光标跳到下个word的字尾b 光标回到上个word的开头$ 移到光标所在行的行尾^ 移到该行第一个非空白的字符0 移到该行的开头位置
按Ctrl+B 屏幕往后移动一页按Ctrl+F 屏幕往前移动一页按Ctrl+U 屏幕往后移动半页按Ctrl+D 屏幕往前移动半页
x: 删除光标所在位置的后面一个字符#x: 删除光标所在位置的后面#个字符X: 删除光标所在位置的前面一个字符#X: 删除光标所在位置的前面#个字符dd: 删除光标所在行#dd: 删除从光标所在的该行往下数#行之文字
yw 将光标所在处到字尾的字符复制到缓冲区中yy 将光标所在行复制到缓冲区中#yy 从光标所在的该行往下数#行都复制到缓冲区中p 将缓冲区内的字符粘贴到光标所在位置(必须与'yw'或'yy'搭配使用)
r 取代光标所在处的字符R 取代字符直到按Esc为止
u 回复到上一个操作.(点) 重复执行上一次的指令。
cw 更改光标所在处的字到字尾$处。c#w 更改#个字符
#G 移动光标至文章的第#行行首
可以输入内容
命令模式(Command mode)
切换`命令模式Command mode` 按'Esc'键
:set nu 在文章的每一行前面列出行号
:# 跳转至#行
:/String || ?字符串 寻找String字符串:n 向下继续寻找String字符串:N 向上继续寻找String字符串
:s/p1/p2/g 将当前行中所有p1均用p2替代:n1,n2s/p1/p2/g 将第n1至n2行中所有p1均用p2替代:g/p1/s//p2/g 将文件中所有p1均用p2替换
:w filename 保存并存入指定的文件名filename:wq 保存并退出:q! 强制退出并放弃编辑