首页 > 代码库 > vi使用进阶
vi使用进阶
以下命令均在vi命令模式有效
h 光标左移一个字符
l 光标右移一个字符
j 光标下移一行
k 光标上移一行
一.对整行操作
1.复制光标所在行 yy
2.删除光标所在行 dd
3.选中光标所在行 shift + v
结合j k选取多行
4.复制选中内容 y
5.粘贴选中内容 p(向光标所在行的下一行粘贴)
shift + p(向光标所在行的上一行粘贴)
数字 + p 指定粘贴次数
6.剪切选中内容 x
可当退格键使用,删除光标处字符
7.撤销上次操作 u
恢复上次操作 ctrl + r
作业:大家自己写一个hello.c的程序
hello.c
#include <stdio.h>
int main()
{
printf("hello world\n");
return 0;
}
要求:1、选中printf所在函数,利用shift + p 命令,连续复制十行。
3、在第8行的时候,利用x命令把hello给去掉,
4、在第10行的时候,利用x命令删除world,利用ctrl + r,恢复,但是只恢复worl。
5、运行程序观察打印信息。
运行程序的过程:gcc hello.o---->默认会生成一个a.out可执行文件
./a.out---->观察结果。
二.对单词操作
8.选取几个字符 v 结合h l选择
9.粘贴选中内容 p(向光标所在行的下一字符开始粘贴)
shift + p(向光标所在行的上一字符开始粘贴)
ctrl + v 结合h j k l可选择一整块
10.替换单个字符 r+要替换字符
11.替换多个字符 R+要替换字符 Esc结束替换
12.查找字符串
/向下查找字符串
?向上查找字符串
*查找当前光标处单词
n下一个匹配的字符串
N上一个匹配的字符串
取消高亮 :nohls
13.替换字符串
:m,n s/oldstring/newstring/g
:.,$ s/oldstring/newstring/g
:%s/oldstring/newstring/g
m,n 指定替换从m行到n行
. 表示光标当前行
$ 表示文件最后
g 替换所有找到字符串,若无g则只替换每行找到的第一个字符串
% 表示所有的行
14.定位到某行
:行号
行号G
terminal 快捷键
15.另开一个终端 ctrl + shift + n
16.当前终端再开一个tab ctrl + shift + t
vi使用进阶