注:本文旨在总结出一种命令的规则,以便快速记下大部分命令
一、vi的一些基本概念
- 三种模式:命令模式(刚开始进的模式)、底线命令模式(按下esc后再按:后的模式)、输入模式(按i进入)
二、构成规则的基本命令
- ↑↓←→ :向上/下/左/右移动一个字符
- space :向右移动一个字符
- +- :向下/上移动到一个新行(即下一行不是上一行的接续)
- 0$ :将光标移动到本行开头/末尾
- Enter :向下移动一行
- G :移动到文档的最后一行
- x :删除一个字符
- d(d) :删除本行
- y(y) :复制本行
- p :粘贴
三、规则
- 小写字母表示向前操作,大写字母表示向后操作(x/X,p/P)
- 数字 + 命令,表示重复上个命令多少次(例外G,表示移动到第几行)
- 叠词命令的字母 + 数字 + G 表示这个命令执行在第几行到本行的范围内(比如d1G表示删除从第一行到光标所在行的数据)
- 叠词命令的字母 + G/0/$ 表示将这个命令执行在本行/字符到最后一行/本行开头,本行末尾
四、其他命令
- gg :移动到文档开头
- H :移动到屏幕开头(Head)
- M :移动到屏幕中间(Middle)
- L : 移动到屏幕末尾(Last)
- u : 撤销
- . : 重复上一个操作
- J : 将本行与下一行联结在一起
- :[start],[end] w <fileName> :将start到end行的内容保存到文件
- :r <fileName> :在当前行下面读入指定文件内容
- :set nu/nonu 显示/不显示行号
五、搜索、替换
- 搜索:
- /word :向下搜寻一个字符串
- ?word :向上搜寻一个字符串
- n :重复上一个搜索动作
- N :反向重复上一个搜索动作
- i/I :从当前字符处开始输入/从当前行的非空开头开始输入
- a/A :从当前字符的下一个字符处开始输入/从当前行的末尾开始输入
- o/O :在下一行处输入新一行/在上一行处输入新一行
- r/R :替换当前字符/进入替换模式
- 替换:
- :<start>,<end>s/word1/word2/[g][c] :替换从<start>行开始到<end>行结束的范围内的word1为word2,[g]表示全部替换,[c]表示替换前进行询问
- %s/word1/word2/[g][c] :全文替换
网友评论