vim 复制、查找、替换、编辑

  1. 复制

  • 单行复制:在命令模式下,将光标移动到将要复制的行处,按“yy”进行复制;
  • 多行复制:在命令模式下,将光标移动到将要复制的首行处,按“nyy”复制n行;其中n为要复制的行数。
  1. 粘贴

  • 在命令模式下,将光标移动到将要粘贴的行处,按“p”进行粘贴;

  • 小写【p】为将已经复制的数据在光标下一行粘贴;

  • 大写【P】为将已经复制的数据在光标上一行粘贴;

  1. 删除

  • 删除行【dd|ndd】:在命令模式下,按dd删除一行;按ndd删除以当前行开始的n行。
  • 删除单词【dw】:在命令模式下,按dw删除单词/光标之后的单词(空格隔开算一个词)剩余部分,例如 test test;ndw 删除以当前字符开始的n个字。
  • 删除一个字符【x】:在命令模式下,按x删除光标上的字符
  • 删除一个剩余字符【d 】 : d 】:d :d 删除以当前字符开始的一行字符
  1. 替换

语法:[addr]s/源字符串/目的字符串/[option]

  • addr:表示检索范围,如:“1,n”:表示从第1行到n行;"%":表示整个文件,同"1, " ; " . , ";"., "".,":表示从当前行到文件尾。

  • s:表示替换操作,其为substitute的缩写。

  • option:表示操作类型:【g:globe】表示全局替换;【c:confirm】表示进行确认;【p】表示替代结果逐行显示(Ctrl + L恢复屏幕);【i:ignore】不区分大小写;[option]省略时仅对每行第一个匹配串进行替换。

  • 特殊字符处理:源字符串和目的字符串中出现特殊字符,如’/’,’<’,’>’,’,'等需要前面加反斜杠\进行转义。

示例:

  • 当前行第一个a替换为b【😒/a/b/】;当前行的所有a替换为b【😒/a/b/g】
  • 每行第一个a替换为b【:%s/a/b】; 整个文件的所有a替换为b【:%s/a/b/g】
  • 1至3行的第一个a替换为b【:1,3s/a/b/】;1至3行的所有a替换为b【:1,3s/a/b/g】
  • 使用#作为分隔符,此时中间出现的/不会作为分隔符:当前行的字符串"a/“替换为"b/”【😒#a/#b/#】
  1. 查找

  • 向下查找【/value】: 在文件中查找内容为value的字符串。

  • 向上查找【?value】:在文件中查找内容为value的字符串。

  • 多个定位【n或N】:查找到多个,可通过n或N查看,查找下一个[n], 反向查找下一个[N]。

  • 关闭高亮:命令模式下,输入:nohlsearch 也可以:set nohlsearch; 也可以noh或者set noh。

  1. 设置行号

在命令模式下,按冒号(:),输入set number ,并按回车键,完成后即显示行号。如果是编辑模式下,可以按Esc进入命令模式。

  1. 撤销

撤消上一个操作【u】 ; 多次撤消【[Ctrl] + r】;重复上一个操作【.】

  1. 缩进

  • 单行缩进:插入模式下,ctrl+shift+d 减少缩进,ctrl+shift+t 增加缩进。
  • 批量缩进:命令模式下,按下冒号【:】,格式:“行号1,行号2>”输入命令,回车增加缩进;格式:“行号1,行号2<”输入命令,回车减少缩进。如输入“1,10>”则1到10行缩进一个tab。
  • 可视化模式缩进:命令模式下,将光标移到需要缩进的行的行首,然后按shift+v,可以看到该行已被选中,且左下角提示为“可视”,此时,按键盘上的上下左右方向键,如这里按向下的箭头,选中所有需要批量缩进的行,选择好了之后,按shift+>,是向前缩进一个tab值,按shift+<,则是缩回一个tab值。
  1. 跳转行

  • 跳转到指定行:n+G(也就是n+shift+g),n只行数,如跳转到100行(100+G),也可以命令行输入“ : n ” 然后回车

  • 跳转到第一行:gg (两个小写的G)

  • 跳转到最后一行:shift+g (也就是G)

  1. 编辑

  • 插入模式

【i】 从目前光标所在处插入
【I】 从目前光标
【a】 从当前光标所在的下一个字符处开始插入
【A】 从光标所在行的最后一个字符处开始插入
【o】 英文小写字母o,在目前光标所在行的下一行处插入新的一行并开始插入
【O】 英文大写字母O,在目前光标所在行的上一行处插入新的一行并开始插入

  • 替换模式

【r】 只会替换光标所在的那一个字符一次
【R】 会一直替换光标所在字符,直到按下[ESC]键为止
【[ESC]】 退出编辑模式回到一般模式

  • 保存模式

【:w】 保存文件
【:w!】 若文件为只读,强制保存文件
【:q】 离开vi
【:q!】 不保存强制离开vi
【:wq】 保存后离开
【:wq!】 强制保存后离开

  • 设置模式

【:set nu】 显示行号
【:set nonu】 取消显示行号
【:w newfile】 另存为
【:set fileencoding】 查看当前文件编码格式
【:set fileencoding=utf-8】 设置当前文件编码格式为utf-8,也可以设置成其他编码格式
【:set fileformat】 查看当前文件的断行格式(dos\windows,unix或macintosh)
【:set fileformat=unix】 将当前文件的断行格式设置为unix格式

  1. 翻转

  • 文本滚动

【PgUp】向上翻转一页

【PgDn】向下翻转一页

【Ctrl+F】向前滚动一屏

【Ctrl+B】向后滚动一屏

【Ctrl+D】向前滚动半屏(向下)

【Ctrl+U】向后滚动半屏(向上)

【Ctrl+E】向下滚动一行,保持当前光标不动

【Ctrl+Y】向上滚动一行,保持当前光标不动

  • 当前行滚动

【Z+Enter 】当前行移动到屏幕顶部并滚动
【nZ+Enter】滚动指定行到屏幕顶部,n指行数,如: 10Z+Enter(指定第十行)
【Z + . 】当前行移动到屏幕中央并滚动
【Z + -】当前行移动到屏幕底部并滚动

  • 当前屏幕操作

【H】大写h,移动到当前屏幕首行;nH移动到首行下的第n行
【M】大写m,移动到当前屏幕中间行
【L】大写l,移动到当前屏幕末行;nL移动到末行上面的第n行

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zheng45

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值