转自:http://blog.csdn.net/bananasssss/article/details/52574115
参考:http://blog.csdn.net/erhei0317/article/details/52631942
一、字符的替换及撤销(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 : 重做上一个操作。
小数点'.': 重复前一个动作。