vi 命令整理

86 阅读3分钟

编辑命令

文本对象更改删除复制
一个单词cwdwYw
两个单词,不包括标点符号2cW或c2W2dW或d2W2yW或y2W
后退三个单词3cb或c3b3db或d3b3yb或y3b
一整行ccccyy或y
到一行的结尾c$或Cd$或Dy$
到一行的开通c0d0y0
单个字符Ix或Xyl或yh
五个字符5s5x5yl

光标移动命令

移动命令
方向键 ←、↓、↑、→h、j、k、l
到下一行的第一个字符+
到上一行的第一个字符-
到单词的结尾e或E
往前一个单词w或W
往后一个单词b或B
到一行的结尾$
到一行的开头0

其他操作

操作命令
往缓冲区中放置文本P或p
打开vi,如果指定了文件则打开文件vi file
保存编辑结果,并离开文件ZZ
不保存编辑结果,并离开文件:q!

文本创建与操作命令

编辑动作命令
在光标所在位置插入文本i
在一行的开头插入文本I
在光标所在位置附加文本a
在一行的最后附加文本A
在光标的下一行打开新行o
在光标的上一行打开新行O
删除一行并替换文本S
用新文本覆盖现有的文本R
合并当前这一行与下一行J
切换当前字符的大小写~
重复上一个动作.
撤销上一个动作u
将一整行恢复到原来的状态U

移动命令

移动命令
往前滚动一整屏^F
往后滚动一整屏^B
往前移动半屏^D
往后移动半屏^U
往前滚动一行^E
往后滚动一行^Y
将当前行移到屏幕顶端并滚动屏幕z[ENTER]
将当前行移到屏幕中心并滚动屏幕z.
将当前行移到屏幕底端并滚动屏幕z-
重画屏幕^L
移到home位置(屏幕的顶端)H
移到屏幕中间那一行M
移到屏幕的底端L
移到下一行的第一个字符[ENTER]
移到下一行的第一个字符+
移到上一行的第一个字符-
移到当前行的第一个非空格字符
移到当前行的第n个字符n|
移到单词的结尾e
移到单词的结尾(忽略标点符号)E
移到当前句子的开头(
移到下一个句子的开头)
移到当前这一段的开头{
移到下一段的开头}
移到当前这一节的开头[[
移到下一节的开头]]
往前搜索模式/pattern
往后搜索模式?pattern
往同一个方向重复搜索n
往相反的方向重复搜索N
往前重复搜索/
往后重复搜索?
搜索当前行中下一个出现x的地方fx
搜索当前行中上一个出现x的地方Fx
搜索当前行中下一个出现x的地方的前一个字符tx
搜索当前行中上一个出现x的地方的后一个字符Tx
重复上一个搜索命令,方向相同;
重复上一个搜索命令,方向相反,
转至第n行nG
转至文件结尾G
回到上一个记号或上下文``
回到包含上一个记号的行的开头处''
显示当前的行号(不是移动命令)^G

更多编辑命令

从光标位置到更改删除复制
屏幕顶端cHdHyH
屏幕底端cLdLyL
下一行c+d+y+
本行的第5列(第5行字符)c5|d5|y5|
往下第二个句子2c)2d)2y)
上一段c{d{y{
模式c/patternd/patterny/pattern
下一个模式cndnyn
文件结尾cGdGyG
第13行c13Gd13Gy13G