-
vi光标命令
h 向左移动一个字符的位置
j 向下移动一个字符的位置
k 向上移动一个字符的位置
l 向右移动一个字符的位置
1G 将光标移动到文件的第一行(如果光标在最后一行,按1G 就可以到第一行)
G 将光标移动到文件的最后一行
:N 到任何一行,如: :1到第一行,:8到第八行
:set nu 加行号 在命令行模式下
: set nonu 取消显示行号
查找:/printf 就会在代码中跳到printf那一行
n 查找到printf 那一行 则正向向下继续查找 有printf的那一行
N 反向继续查找
替换:S代表当前行
:s/str1/str2 代表当前行用str2替换str1
![](https://i-blog.csdnimg.cn/blog_migrate/335e932f149030bce516b05b271d2300.png)
.,$ S是从当前行到最后一行进行替换(.,代表当前行,$代表最后一行)
:.,$ s/str1/str2/g 是从当前行到最后一行进行替换
:1,$ S/str1/str2/g是从第一行到最后一行进行替换,也就是全文替换
: % s/str1/str2/g(全文替换)
如果把光标放在某一行,输入:s/man/boy,则把这一行的man替换成boy,但是只能替换第一个man,所以要输入:s/man/boy/g,意思是满足要求的全部替换,因此/g 就是全部替换。
:10,15s/man/MAN/g 10行到15行把man换成MAN
:1,$s/man/MAN/g 意思是把全文的man换成MAN
什么意思呢?就是光标放在某一行 hiuwsmjoi/,此时就会把光标及之前的内容复制下来,按o,既进入插入模式,光标也移到了下一行,此时按P则粘贴成功。
:118,125y 从118到125行复制
:118,127d 从118到127行剪切
:118,$d 从118行到最后都剪切了