vim删除空行、注释、换行符替换和重复行

一、删除空行

:g/^$/d

删除空行以及只有空格的行

:g/^\s*$/d

删除以 # 开头或 空格# 或 tab#开头的行

:g/^\s*#/d

对于 php.ini 配置文件,注释为 ; 开头

:g/^\s*;/d

删除从第二行到包含 bbs 的区间行

:2,/bbs/d

删除从包含 bbs 的行到最后一行区间的行

:/bbs/,$d

删除匹配 bbs 且前面只有一个字符的行

:g/.bbs/d

(phpstorm 批量删除空行 是^\n 替换为空)

二、gvim 换行符替换

用 VIM 编辑文本文件,想在每一行的换行之前,添加一个字符,比如 “;”。

想到替换命令:

:%s/\n/;\n/g

结果总是出错。

后来找到解决方案:

:%s/\n/;\r/g

有人总结的结论:

When searching: \n is newline, \r is CR (carriage return = Ctrl-M = ^M)

When replacing: \r is newline, \n is a null byte (0×00).

意思是:

字符串查找时,”\n” 是换行,”\r” 是回车,也就是经常会看到的 ^M(备注-1)。

字符串替换时,”\r” 是换行,’\n” 是空字符(0×00)。

三、gvim 删除每一行?后面的所有字符,包括?

在 Vim (或者相应的图形界面版本 gVim)中,你可以使用搜索和替换命令去删除每一行中的问号 `?` 及其后面的所有字符。Vim 中处理正则表达式时,某些字符拥有特殊含义,比如 `?` 在 Vim 正则表达式中通常表示前面的部分是可选的。

要修正这个错误并在 Vim 中执行这项操作,你需要正确地转义 `?` 符号,以便它被当作一个普通字符进行匹配。这里有几种方法可以处理这个问题,下面是常见的方法之一:

:%s/\?.*//g

在上面的命令中:

- `:%s` 是 Vim 中的替换命令,`%` 代表整个文件。
- `\?` 表示匹配字面上的 `?` 字符(反斜杠 `\` 用于转义 `?`)。
- `.*` 表示匹配问号 `?` 后的任何字符(`.` 表示任何单个字符,`*` 表示零个或多个前面的元素)。
- `//` 表示将匹配到的内容替换为空,也就是删除它。
- `g` 标志表示全局替换,作用于每一行中的所有匹配项。

在 gVim 中执行这个命令,你可以在命令模式中输入冒号 `:` 来开始命令,然后输入剩余的部分,并按 `Enter` 运行。

如果发现 `?` 没有被正确识别,那么可能是因为你启用了 "very magic" 模式,此时需要进一步转义。在非常罕见的情况下,如果遇到意料之外的行为,可以考虑使用以下命令:

:%s/\v\zs\?.*//g

在这个命令中,`\v` 表示 "very magic",使得正则表达式中只有字母、数字和下划线需要转义,其他特殊符号都按特殊含义处理。`\zs` 设置匹配开始的位置为紧跟其后的模式,这使得替换从 `?` 开始而非之前。这种情况下,`\?` 应无需转义。 这条命令在大多数情况下是不必要的,常规转义通常足以处理上述需求。

确保已经进入 gVim 的命令模式(通常是按下了 Esc 键),然后输入对应的命令并按 `Enter`。如果你依然遇到错误,请再次检查你的 Vim/gVim 配置和相关的语法。

四、清除所有 ^M 的替换命令

:%s/CTRL+V CTRL+M//g

就是 Control 键+V,然后再 Control 键 + M,就变成了 ^M,然后替换为空就可以了。

清除所有空格的命令

:%s/^\s*\n//g

:%s/CTRL+V CTRL+M//g:%s/CTRL+V CTRL+M//g:%s/CTRL+V CTRL+M//g

:%s/CTRL+V CTRL+M//g

五、删除重复行

1):sort u  最简单的命令,使用该命令会对所有行进行排序,并只保留完全相同的行的第一行;它适用于无序重复行的情况,但要求重复行完全相同。

2)输入命令 :g/^\(.*\)$\n\1$/d ,该命令会删除连续重复的行,只保留最后一行。其中:
g 表示全局命令(global),即对匹配到的所有行进行操作。
^ 表示行的开头。
\(.*\) 表示匹配任意字符零次或多次,并将其捕获到分组 \1 中。
\n 表示换行符。
\1 表示引用前面捕获到的分组 \1,即匹配与前面相同的内容。

### 回答1: 在vim中,可以使用以下命令进: 1. 在插入模式下,按下“Enter”键即可换。 2. 在普通模式下,可以使用“o”或“O”命令进。其中,“o”命令会在当前的下方插入一个新,并将光标移动到新开头;“O”命令会在当前的上方插入一个新,并将光标移动到新开头。 3. 在普通模式下,可以使用“:s/\n/替换的内容/g”命令进。其中,“\n”表示换行符替换的内容可以是任意字符串。这个命令会将所有的换行符替换为指定的字符串。 希望这些方法能够帮助你在linux中使用vim命令进。 ### 回答2: 在Linux中使用vim,换是一个常用的操作。当我们需要在一代码中输入多个命令或子命令时,我们需要换以便于阅读和管理。换是通过以下几种方式实现的: 1. 按下“Enter”键:按下“Enter”键将会在当前光标位置处进。这意味着你的代码会被拆分成两,并且新的缩进将与原有一致。 2. 按下“Shift”和“Enter”键:如果你需要在不同的语句之间进,而不是在同一内输入多个命令,那么你可以使用“Shift+Enter”键。这将会在光标所在的下一插入一个新,并且不会继承前一的缩进。 3. 使用“\”符号:如果你需要将代码写成多且不希望在换时进缩进,你可以使用反斜杠“\”符号。在当前的结尾处插入“\”,然后按下“Enter”键,这将会让你在下一的开始处继续输入你的命令。注意反斜杠符号需要放在结尾处,不能放在首。 以上是在Linux中使用vim的三种方式。 总结一下,换操作在代码编辑中非常重要,可以提高代码的可读性,让代码更加结构化。Linux中的vim编辑器提供了多种实现方式,支持快速有效地进操作。同时,在日常工作中熟练掌握这些技巧可以提高工作效率,提高程序员的编写代码的效率。 ### 回答3: 在Linux操作系统中,vim是一款非常强大的文本编辑器。通常在使用vim时,我们可能需要插入一个换行符,将一句话分成多显示或者添加一个空行。不同于其他编辑器vim在换时有相应的命令和快捷键。下面就来谈一下如何在vim中进操作。 1. 插入新vim中,可以使用快捷键"o"或"O"来插入新的一。在普通模式下按下"o"键,会在当前光标的下方插入一个新的空行,并且自动进入插入模式,可以直接在新的一上面开始输入。按下大写字母"O"会在光标的上方插入一个新的空行,并进入插入模式。 2. 换 在正文中,我们经常需要将一句话拆分成多编辑和展示。在vim中,可以使用"J"键进的操作。在普通模式下,将光标移动到想要换的位置,按下"J"键,vim会将当前和下一合并,即在当前的末尾添加一个空格和下一的内容。这个操作会保留空格和符号(如标点符号),不会改变原来的格式。 3. 自动换 当我们打开一个较长的文件时,如果一过长超出了标准编辑界面,vim会自动显示水平滚动条,需要不停地水平滚动来查看文本。因此我们需要手动设置自动换。在vim中,可以使用"set wrap"命令实现自动换。输入"set wrap"后,vim会自动将长折成多并自动换,便于查看和编辑文本。 总之,以上是vim中实现换的几种方式:插入新操作,"J"键换操作,以及自动换的设置。在日常编写文本过程中,可以灵活运用这些操作,提高效率和效果。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

戴国进

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

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

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

打赏作者

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

抵扣说明:

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

余额充值