首页 > 其他分享 >vim 替换操作和特定行删除

vim 替换操作和特定行删除

时间:2023-04-27 12:13:12浏览次数:31  
标签:bar 删除 vim 字符串 foo bbs 替换

字符串替换

1.先按Esc进入命令模式,然后再打出‘:’(英文输入模式下)

2.输入格式:  首行数,末行数s/要替换的字符串/替换的字符串/g   ;        常用操作为      :start_line, end_line  s/xxx/xxx/

(不加g只替换每行的第一个要替换的字符串,后面的不会替换, s代表字符串的意思)

 

:{作用范围}s/{目标}/{替换}/{替换标志}    %s(substitute)命令用来查找和替换字符串
:12,22s/abc/123/g  %将12行到22行的字符串’abc‘替换成’123‘,加g一行可以替换多次
:%s/abc/123/  %将文中所有的abc都替换为123,不加g只替换每行的第一个要替换的字符串
:%s/^/\/\//g %行首加注释符号‘//’
:%s/xxx/xxx/  %首行为1,末行为$的替换,默认一行只替换一次
%s/xxx/xxx/g  %全部替换
r  替换光标所在的字符
cl 修改当前字符
cc:修改当前行
c$  修改到行尾的内容
=ddp:上下两行交换(其实是先dd,然后执行p)
%s/foo/bar/g           会在全局范围(%)查找 foo 并替换为 bar,所有出现都会被替换(g)
:%s/foo/bar/gc         将每个 'foo' 更改为 'bar',但首先要求确认
:s/foo/bar/g           查找每次出现的“foo”(仅在当前行中),并将其替换为“bar”
:%s\</foo\>/bar/gc        将每个 'foo' 更改为 'bar',但首先要求确认
:%s/foo/bar/gci        将每个“foo”(由于标志不区分大小写i)更改为“bar”;要求确认
:%s/foo\c/bar/gc        是相同的,因为\c使搜索不区分大小写,在使用:set noignorecase使搜索区分大小写(默认)后可能需​​要这样做
:%s/foo/bar/gcI        将每个'foo'(由于标志区分大小写I)更改为'bar';要求确认
:%s/foo\C/bar/gc       是相同的,因为\C使搜索区分大小写,:set ignorecase在使用使搜索不区分大小写之后可能需要这样做
:5,12s/foo/bar/g    将第 5 行到第 12 行(含)的所有行的每个 'foo' 更改为 'bar'。
:'a,'bs/foo/bar/g 对于从标记 a 到标记 b 的所有行,将每个 'foo' 更改为 'bar'(请参见下面的注释)。
:'<,'>s/foo/bar/g    使用+visual 编译时,将可视visual选择中所有行的每个 'foo' 更改为 'bar'。当您选择一个区域并输入 :.时,Vim 会自动为任何 ex 命令附加可视选择范围('<,'>)
:.,$s/foo/bar/g    对于从当前行 (.) 到最后一行 ($) 的所有行,将每个 'foo' 更改为 'bar'。
:.,+2s/foo/bar/g    将当前行 (.) 和下两行 (+2) 的每个 'foo' 更改为 'bar'。
:g/^baz/s/foo/bar/g    将以“baz”开头的行中的每个“foo”更改为“bar”。

注意:从 Vim 7.3 开始,默认情况下,应用于由标记或可视选择(使用特殊类型的标记 '< 和 '>)定义的范围的替换不受标记的列位置限制。相反,Vim 将替换应用于每个标记出现的整行,除非\%V原子用于以下模式::'<,'>s/\%Vfoo/bar/g.

/word:向光标之下寻找一个名称为 word 的字符串。例如要在档案内搜寻 vbird 这个字符串,就输入 /vbird 即可! (常用)
?word:向光标之上寻找一个字符串名称为 word 的字符串。
n:这个 n 是英文按键。代表重复前一个搜寻的动作。举例来说, 如果刚刚我们执行 /vbird 去向下搜寻 vbird 这个字符串,则按下 n 后,会向下继续搜寻下一个名称为 vbird 的字符串。
  如果是执行 ?vbird 的话,那么按下 n 则会向上继续搜寻名称为 vbird 的字符串! N:这个 N 是英文按键。与 n 刚好相反,为『反向』进行前一个搜寻动作。 例如 /vbird 后,按下 N 则表示『向上』搜寻 vbird 。 n<space>:那个 n 表示『数字』,例如 20 。按下数字后再按空格键,光标会向右移动这一行的 n 个字符。例如 20<space> 则光标会向后面移动 20 个字符距离。 0 或功能键[Home]:这是数字『 0 』:移动到这一行的最前面字符处 (常用) $ 或功能键[End]:移动到这一行的最后面字符处(常用) H:光标移动到这个屏幕的最上方那一行的第一个字符 M:光标移动到这个屏幕的中央那一行的第一个字符 L:光标移动到这个屏幕的最下方那一行的第一个字符 G:移动到这个档案的最后一行(常用) nG:n 为数字。移动到这个档案的第 n 行。例如 20G 则会移动到这个档案的第 20 行(可配合 :set nu) gg:移动到这个档案的第一行,相当于 1G 啊! (常用) n<Enter>:n 为数字。光标向下移动 n 行(常用)

跳到指定行:命令行输入“ : n ” 然后回车

删除特定行

删除空行            :g/^$/d
删除空行以及只有空格的行    :g/^\s*$/d
删除以 # 开头或 空格# 或 tab#开头的行
:g/^\s*#/d    对于 php.ini 配置文件,注释为 ; 开头
:g/^\s*;/d    使用正则表达式删除行
如果当前行包含 bbs ,则删除当前行  :/bbs/d
删除从第二行到包含 bbs 的区间行  :2,/bbs/d
删除从包含 bbs 的行到最后一行区间的行
:/bbs/,$d  删除所有包含 bbs 的行
:g/bbs/d  删除匹配 bbs 且前面只有一个字符的行
:g/.bbs/d   删除匹配 bbs 且以它开头的行
:g/^bbs/d  删除匹配 bbs 且以它结尾的行
:g/bbs$/d  .ini 的注释是以 ; 开始的,如果注释不在行开头,那么删除 ; 及以后的字符
:%s/\;.\+//g  删除 # 之后所有字符
%s/\#.*//g

 

标签:bar,删除,vim,字符串,foo,bbs,替换
From: https://www.cnblogs.com/lanlancky/p/17358540.html

相关文章

  • 使用arcpy替换工程文件中的栅格图层数据源异常
    参考:https://www.cnblogs.com/Leechg/p/10668992.html前面的1月1日到1月31日输出正常但是从2月1日开始就开始重复输出1月1日的图片到3月1日开始也是输出1月1日的图片。。难道每个月的必须分开存放?原因是???......
  • Linux文件和目录删除
    今天只讲一个命令,这个命令已经让万千运维人既爱又恨。rm删除文件或者目录基本用法:-i显示删除提示信息-f 强制删除文件-r进行目录的递归删除在公司里为了保证数据安全,一般会创建一个alias;aliasrm='rm-i'也有时候我们会写一个脚本来防止误删除,不过作为运维人员,备份很重要,......
  • mdadm彻底删除software RAID 0
    有没有朋友感觉今天的文章有点难,如果觉得难的朋友可以在下面留言,后面我会给大家安排一些简单的文章,让大家可以循序渐进。基础稍微薄弱的童鞋也可以投稿,这样你就慢慢成长起来了。在我们社区,我希望你们都可以成为大牛,很大很大的大牛哈。加油!Linux系统中可以通过使用mdadm这个简单高效......
  • 15.mybatis-plus的QueryWrapper的查询、更新、删除的用法
    1.条件构造查询: 2.主装的查询语句:  3.主装排序的查询语句:   4.删除语句:  5.更新语句的应用:userMapper.update(A,B);QueryWrapperuserWrapper=newQueryWrapper <>();Useruser=newUser();应用:update(user,userWrapper)user:封装的是修改的内容;userWr......
  • jQuery HTML-删除元素
    <!DOCTYPEhtml><html><head><metacharset="utf-8"/><title></title><scriptsrc="../../Scripts/jquery-3.4.1.min.js"></script><scriptsrc="delete.js">&l......
  • 删除链表的倒数第N个节点
    题目:给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。输入:head=[1,2,3,4,5],n=2输出:[1,2,3,5]本题需要使用双指针,需要注意的点:1、双指针都指向头结点2、快指针提前移动n+1个点3、结束条件:快指针指向空指针4、慢指针指向要删除结点的前一个结点5、删除结点时......
  • navicat删除表中重复数据的sql语句
    DELETEFROM`hao123`WHEREir_urlIN(SELECTir_urlFROM(SELECTir_urlFROM`hao123`GROUPBYir_urlhavingcount(ir_url)>1)a)ANDir_idNOTIN(SELECT*FROM(SELECTmin(ir_id)FROM`hao123`GROUPBYir_urlHAVINGcount(ir_url)>1)b);hao123:表名。ir_......
  • 暗藏的比特币白皮书已删除!苹果其实与Web3“格格不入”?
       据悉,Apple已从其最新的MacOSVenturabeta中删除了比特币白皮书,虽然该公司从未对白皮书的存在提供任何官方解释,但许多人猜测这是对加密货币日益增长的重要性的认可。   4月上旬,科技专家AndyBaio偶然发现,自己的Mac电脑上隐藏着比特币白皮书文件。众多网友纷纷猜测,究竟是......
  • 一统天下 flutter - widget 列表类: Dismissible - 滑动删除
    源码https://github.com/webabcd/flutter_demo作者webabcd一统天下flutter-widget列表类:Dismissible-滑动删除示例如下:lib\widget\list\dismissible.dart/**Dismissible-滑动删除**支持左滑/右滑/上滑/下滑删除,一般在列表中使用,当然也可以不依托列表......
  • 583. 两个字符串的删除操作
    classSolution{public:intf[510][510];//f[i][j]表示将s1前i个字符和s2前j个字符的最长公共子序列长度intminDistance(stringword1,stringword2){intn=word1.size(),m=word2.size();word2=''+word2;word1=''+word1;for(inti=......