首页 > 系统相关 >Linux基础 - 文件管理 vi与vim编辑器

Linux基础 - 文件管理 vi与vim编辑器

时间:2023-02-18 20:33:57浏览次数:35  
标签:aa AA 删除 vi vim 查找 大小写 Linux foo

 

一、匹配查找

在normal模式下按下/即可进入查找模式。

输入要查找的字符串并按下回车,vi会跳转到第一个匹配。 按n下查,按N反向向上查找。

跳转到指定位置:    跳转到文件末尾:G        跳转到指定行: 9G 跳转到第9行

1.1 正则匹配
vi查找支持正则表达式, 如 "/vim$" 匹配行尾的"vim"。
查找特殊字符需要转义, 如 "/vim\$"匹配"vim$"。

1.2 大小写敏感查找
在查找模式中,使用\c表示大小写不敏感查找,\C表示大小写敏感查找。默认大小写敏感。
/foo\c 将会查找到"foo"、"FOO"、"Foo"、"foobar"等字符串。

1.3 调整大小写不敏感查找

[root@cl-backup ~]# cat .vimrc
### 设置默认大小写不敏感查找
set ignorecase
### 如果查找的字符串中有一个大写字母,则切换到大小写敏感
set smartcase

如: /aa 能查找到 "aa" / "aA" / "AA" / "Aa" / "aabb" 等。 /Aa 只能查找到"Aa"、"Aavv"等字符串。

1.4 查找当前单词
在normal模式下,按下*即可查找光标所在单词(word), 要求每次出现的前后为空白字符或标点符号。

例如当前为foo,可以匹配foo bar中的foo,但不可匹配foobar中的foo。 这在查找函数名、变量名时非常有用。

按下g*即可查找光标所在单词的字符序列,每次出现前后字符无要求。 即foo bar和foobar中的foo均可被匹配到。

 

二、替换 

2.1 语法
:s(substitute)命令用来查找和替换字符串
语法:  :{作用范围}s/{目标}/{替换}/{替换标志}
例:   :%s/foo/bar/g 在全局范围(%)查找foo并替换为bar,所有出现都会被替换(g)

2.2 作用范围
当前行:           :s/aa/AA/g
全文:             :%s/aa/AA/g
特定行:           :5,12s/aa/AA/g
当前行到后面的5行: :.,+5s/aa/AA/g
选中的范围:       在Visual模式下选择区域后, 输入:, vi自动补全为 :'<,'>
                 :'<,'>s/aa/AA/g (s/aa/AA/g 是输入的内容)

 

2.3 g 表示 全局global替换
:%s/aa/AA          只替换全文的每一行第一次出现的匹配项
:%s/aa/AA/i        i表示大小写不敏感,I表示大小写敏感
:%s/aa\c/AA
:%s/aa/99/gI       全文匹配,大小写敏感; 等同于 :%s/aa\C/99/g
:%s/aa/99/gc       c表示确认,查找到的每一个位置,回车后vi会将光标移动到每一个位置,提示 replace with 99 (y/n/a/q/l/^E/^Y)?

                   y表示替换,n不替换,a替换所有,q退出查找模式,l替换当前位置并退出。^E 和 ^Y 是光标移动快捷键。

 

三、删除

删除当前行到最后一行   命令模式 dG   末行模式   :.,$d

删除指定范围的行      :1,10d

删除匹配到的行        :g/{pattern}/d

删除指定范围内匹配到的行    :1,10g/{pattern}/d

保留匹配到的行            :v/{pattern}/d

删除所有内容:      :1,$d

删除指定行到当前行: :1,.d

行内删除字符:

  • x:   删除当前光标处的字符
  • nx:  删除多个字符
  • X:   删除光标左边的字符
  • D:   删除从当前光标到本行末尾的字符
  • J:   删除两行之间的换行符 (亦可用于合并两行)
  • dd:  删除当前行
  • dw:  删除从当前位置到下一个空格的字符
  • d3w: 删除从当前位置到后三个空格的字符

 

删除行尾多个空格:  :%s/\s\+$//g

删除行首多个空格:  :%s/^\s*//g

删除所有数字:     :%s/\d//g

删除重复行:       :sort u

 

四、恢复与复制

u:   撤销上一命令对编辑缓冲区的修改

U:   恢复当前行(一次性撤销对当前行的全部修改,不包括删除)

.:   重复上一命令对编辑缓冲区的修改

p:   复制上一次删除的内容,插入到光标的后面

P:   复制上一次删除的内容,插入到光标的前面

 

标签:aa,AA,删除,vi,vim,查找,大小写,Linux,foo
From: https://www.cnblogs.com/kingdomer/p/9410475.html

相关文章

  • SpringMVC源码(九):无异常View视图解析
    在MVC请求流程中,处理Controller控制器逻辑后获取到的ModelAndView对象并不能直接返回到浏览器,需要通过对ModelAndView中的View属性做解析获取视图,并用Model属性中的数......
  • ERROR: Could not install packages due to an EnvironmentError: [WinError 5] 拒绝
     找到pip.ini的配置地址配置user和清华地址  配置 解决 ......
  • Linux操作系统课程笔记
    1.配置安装源什么是安装源?安装源类似于一个软件仓库,绝大部分系统软件和工具都可以从软件仓库中自动下载和安装。Ubuntu安装后默认的官方源是美国的服务器,因此访问速度很......
  • 【IMX6ULL学习笔记】十四、Linux调用设备树
    一、设备树在系统中的体现Linux内核启动的时候会解析设备树中各个节点的信息,并且在根文件系统的/proc/device/tree目录下根据节点名字创建不同文件夹,如图所示:上图就......
  • Linux基础 - 解压缩
     tarzcvftd2.tar.gz./testdir/--exclude=df.sh--exclude=a*  #备份时,排除文件和文件目录tar-N'2023-02-1918:00:00'-zcvf/tmp/r.tar.gz/root/   ......
  • vivado程序示例
    //full_add.v全加器modulefull_add(inputa,inputb,inputcarry,outputsum,outputcount);assign{count,sum}=a+b+carry;......
  • linux交换分区
    开启swap虚拟交换内存会影响性能,如果内存足够用的话,不建议开启,开启swap主要是为了解决实际内存太小,内存容量不足的情况。swap分区在系统的物理内存不够用的时候,把硬盘空......
  • linux源码解析13- 反向映射RAMP详解
    1.什么是反向映射是一种物理地址反向映射虚拟地址的方法;正向映射:用户访问的虚拟地址,经过多级页表转化,最终映射到物理页面;反向映射:根据物理页面,找到所有映射到这个页面的......
  • linux数据恢复方法
    1 块设备挂载目录后分区丢失后数据恢复方法1.1问题产生操作步骤:分区:fdisk/dev/sdb;n;然后一路回车;最后w保存;可以看到sdb有了一个分区sdb1格式化:mkext3.fs/dev/sdb1......
  • 配置LINUX服务器和GEO数据处理
    1.服务器端Anaconda安装&配置1.1下载Anaconda安装包wgethttps://repo.anaconda.com/archive/Anaconda3-2022.05-Linux-x86_64.sh1.2安装bashAnaconda3-2022.05......