欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Vim基础操作

程序员文章站 2022-05-26 15:15:21
...
基础命令
  • gg :到文首
  • shift+g : 到文末
  • U :撤销
  • ctrl+r :反撤销
  • yy :复制
  • p :粘贴
  • dd :删除
  • 命令模式下:VS xxx.c左右分屏;SV xxx.c上下分屏;ctrl+w+w屏幕切换
  • shift+5 :跳转到{}
  • += :行对齐
  • ctrl+n :自动补齐
  • shift+v :行选
  • ctrl+v :列选
  • mkdir /opt/test/test -p :创建多级文件
  • du -h :查看文件大小
  • df :检查磁盘空间占用情况
  • cal :显示日历
  • /pattern :向下查找pattern匹配字符串
  • ?pattern:向上查找pattern匹配字符串
  • 使用了查找命令之后,使用如下两个键快速查找:
  • n:按照同一方向继续查找
  • N:按照反方向查找
使用正则表达式

vim 查找替换

:s/string/replace/替换当前第一个string为replace
:s/string/replace/g替换当前行所有string为replace

:n,$s/string/replace/替换第n行开始到最后一行中每一行的第一个string为replace
:n,$s/string/replace/g替换第n行开始到最后一行中每一行所有string为replace

:%s/string/replace/(等同于:g/string/s//replace)替换每一行的第一个string为sky%s/string/replace/g(等同于:g/string/s//replace/g)替换每一行中所有string为sky

可以使用#作为分隔符,此事中间出现的/不会作为分隔符
:s#/string#replace/# 替换当前行第一个 string/ 为 replace/

删除文件中的^M
产生原因:windows中回车换行用(0A0D)来表示,linux下回车用(0A)来表示。
解决命令:

  • cat filename1 | tr -d “VM” > newfile;
  • sed -e “s/VM//” filename > outputfilename
  • 需要注意的是在1、2两种方法中,V和M指的是Ctrl+V和Ctrl+M。你必须要手工进行输入,而不是粘贴。

在vi中处理:%s/VM//。或者:%s/^M$//g