首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Vim -如何替换为没有最后一个字符的匹配?

在Vim中,可以使用正则表达式来替换文本。要替换为没有最后一个字符的匹配,可以使用以下步骤:

  1. 进入Vim编辑器,按下冒号(:)进入命令行模式。
  2. 输入以下命令来进行替换操作::%s/正则表达式/替换内容/g
    • %s 表示对整个文件进行替换操作。
    • 正则表达式 是你要匹配的模式,可以使用.来表示任意字符,.*表示任意数量的字符。
    • 替换内容 是你要替换成的内容。
    • g 表示全局替换,如果不加该标志,只会替换每行的第一个匹配项。
  3. 在正则表达式中使用\zs来指定替换的起始位置,使用\ze来指定替换的结束位置。
    • 例如,如果要替换为没有最后一个字符的匹配,可以使用正则表达式:.*\zs.,其中\zs表示替换的起始位置,.表示任意字符。
    • 替换内容可以为空,即删除匹配的最后一个字符。
  4. 将命令修改为::%s/.*\zs.//g,执行该命令即可替换为没有最后一个字符的匹配。

这样,Vim会将文本中所有匹配正则表达式的内容替换为没有最后一个字符的匹配。

关于Vim的更多信息和使用技巧,你可以参考腾讯云的产品介绍链接地址:Vim产品介绍

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Linux —vim 编辑器

vi编辑器可以执行输出、删除、查找、替换、块操作等众多文本操作,而且用户可以根据自己需要对其进行定制,这是其他编辑程序所没有的。 vim是vi增强版,比vi更容易使用。...: 命令模式—>输入模式 i:insert,在当前光标所在字符前面,转为输入模式 I:大写i,在当前光标所在行行首转换为输入模式 a:append,在当前光标所在字符后面转换为输入模式...//打开文件 vim +n filename //打开文件并定位到第n行 vim +/pattern filename //打开文件并定位到第一次被/pattern匹配内容行首...^:跳转到行首一个非空白字符 $:跳转到绝对行尾 行间跳转 gg:跳转到第一行 G:跳转到最后一行 #gg:跳转到第#行...pattern:从下往上查找匹配内容 n:从上往下查找匹配内容下一条 N:从下往上查找匹配内容下一条 末行模式下查找并替换:s s命令只能在末行模式下使用 语法:ADDR1,ADDR2

5.1K20

vim和vi中查找和替换字符

例如,要在当前行中搜索字符串 foo一个匹配项,并将其替换为 bar,则可以使用: :s/foo/bar/ 要替换当前行中所有出现搜索模式,请添加g标志: :s/foo/bar/g 如果要搜索并替换整个文件中所有匹配模式...此字符表示从文件第一行到最后一行范围: :%s/foo/bar/g 如果省略{string}部分,则将其视为空字符串,并删除匹配模式。...下面的命令将所有以 foo开头行替换为 Vim is the best: :%s/^foo.*/Vim is the best/gc ^(脱字符)符号与行开头匹配,....例如,要将从第3行到第10行所有行中所有出现 foo替换为 bar,你可以使用: :3,10s/foo/bar/g 该范围包括所有内容,这意味着该范围包括第一行和最后一行。...点.字符表示当前行,而$-美元符号表示最后一行。在从当前行到最后一行所有行中替换 foo: :.,$s/foo/bar/ 还可使用 +或-符号来设置行说明符,其后是从前一个行号中添加或减去数字。

12.5K21

Vim查找替换

大家好,又见面了,我是你们朋友全栈君。 1、查找 /pattern :向下查找pattern匹配字符串 ?...pattern:向上查找pattern匹配字符串 使用了查找命令之后,使用如下两个键快速查找: n:按照同一方向继续查找 N:按照反方向查找 除此之外,pattern还可以使用一些特殊字符,包括(/...,其中前三个这两个是vi与vim通用,“/”为转义字符。 在查找模式中加入\c表示大小写不敏感查找,\C表示大小写敏感查找。...E与Y是光标移动快捷键,参考: Vim如何快速进行光标移 1、 : s/vivian/sky/ #替换当前行第一个 vivian 为 sky 2、 : s/vivian/sky/g #替换当前行所有...,表示从当前行开始到最后一行) 5、 :%s/vivian/sky/ #(等同于:1,$s/vivian/sky/ :g/vivian/s//sky/) 替换每一行一个 vivian 为 sky

3K10

史上最全VIM使用手册

vim一个向上兼容于vi文本编辑器,可用于编辑各种纯文本。它对编辑程序特别有用。...#指定个数单词; 行首行尾跳转 ^:跳转至行首一个非空白字符; 0:跳转至行首; $:跳转至行尾; 行间跳转 G:跳转至由#指定行; 1G, gg:第一行; G:最后一行; 句间跳转: ) 下一句...; cb:删除光标所在位置到当前单词或上一个单词单首字符并且切换为输入模式; ce:删除光标所在位置到当前单词或下个单词词尾字符并且切换为输入模式; cw:删除光标所在位置到下个单词词首字符并且切换为输入模式...1,$:范围为第一行至最后一行 %:全文 /pattern/:从光标所在处起始向文件尾部第一次被模式所匹配行; /first/,$:从光标所在处起始,第一次由pat1匹配行开始,至最后一行中间所有行...PATTERN:从当前光标所在处向文件首部查找能够被当前模式匹配所有字符串; n:下一个,与命令方向相同; N:上一个,与命令方向相反; (3) 查找并替换 s:末行模式命令; 使用格式:

2.7K10

Visual Studio中安装viemu后,vim vax 快捷键大全

这表示,你可以输入一个长词一部分,然后按一下某个键,然后VIM你完成了这个长词输入了。举个例子:你有一个变量名为 iAmALongAndAwkwardVarName 在你写代码某个地方。...如果VIM没有给出你想要词,基本按,直到你满意为止,VIM会一直循环它找到匹配字符串。 聪明进入插入模式 很多新手进入插入模式都只是用i。...比如,dw会剪切一个词而dfS会将从当前光标到下一个S之间字符剪切至剪贴板。 y{motion}:和上面类似,不过是拷贝。 c{motion}:和d{motion}类似,不过最后进入插入模式。...C:和D类似,最后进入插入模式。 x:剪切当前字符到剪贴板。 s:和x类似,不过最后进入插入模式。 粘贴 粘贴很简单,按p。 使用多重剪贴板 很多编辑器都只提供了一个剪贴板。VIM有很多。...这表示前面一项可以被匹配一次或多次。          /ab\+ 匹配 “ab”,”abb”,”abbb”,等等。它不匹配 后面没有跟随 “b”  “a”。 要匹配一个可选项,用 “\=”。

1.1K50

IDEA + Vim,竟可以这么牛逼!!

F -从光标位置到光标左边某个字符首次出现位置,包括该字符 /正则表达式-从光标位置到下一个匹配正则表达式位置(跨行) ?...正则表达式-从光标位置到上一个匹配正则表达式位置(跨行) aw -一个单词加一个空格(a可理解为“一个”,下同) iw -一个单词(i可理解为in,下同) a" -一个字符串包括双引号 i" -一个字符串内部文本...用;或,在匹配间切换 t或T跳转到本行某个字符之前,小写t向右查找,大写T向左查找。用;或,在匹配间切换 /正则表达式跳转到下一个匹配。用n或N在匹配间切换。 ?正则表达式跳转到上一个匹配。...^p回车 16.一些在目前版本已知没有实现一些常用Vim功能 (如果对Vim不熟悉可以跳过这节) a)let命令(没有let命令就无法导出/导入寄存器内容,也就是无法导入宏) b):g命令(在文本处理中很有用一个命令...命令(执行shell命令) d)大部分正则表达式标记(例如\%V,\v等等) e)某些多键命令双击最后一个字符表示作用于当前行。

2.6K10

vim 文本编辑器

【:next】切换至下一个文件 【:prev】切换至前一个文件 【:last】切换至最后一个文件 【:first】切换至第一个文件 4.2.3 vim命令模式(编辑模式)常用快捷键 1)...b) 【^】光标移动到当前行首一个非空白字符 c) 【&】光标移动到当前行行尾 6) 行间跳转(相当于上下跳转) a) 【G】跳转到最后一行(整个文档最后一行...,一直到第一次被pat2匹配行结束 【:#,/pat/】从第#行开始,一直到第一次被pat匹配行结束 【:/pat/,$】从第一次被pat匹配行开始,一直到最后一行 地址界定后面可跟随编辑命令...(注意:如果匹配结果是多行,只会删除最后一行) 【y】例如:【:/pat1/,/pat2/y】 表示,从光标位置开始向下匹配,第一次匹配到“pat1”位置到第一次匹配到“pat2”位置直接...g】或者【s@a@Good@g】查找当前光标所在行“a”字符,全部替换成“Good”字符 替换后: 例如:【s#/boot#/#i】将光标所在行【/boot】替换成【/】,默认只会替换一个匹配时会忽略大小写

4.2K10

VIM编辑命令技巧

Vim替换与批量修改  1 简单替换表达式 :%s/four/4/g “%” 范围前缀表示在所有行中执行替换。 最后 “g” 标记表示替换行中所有匹配点。...substitute” 命令匹配模式是 “s+$”。这表示行末($)前一个或者多个(+)空格(s)。替换命令 “to” 部分是空:”//”。这样就会删除那些匹配空白字符。...因此 “ab*” 匹配 “a”,”ab”,”abb”,”abbb”,等等。 如要多次重复整个字符串,那么该字符串必须被组成一个项。组成一项方法就是在它前面加 “(”,后面加 “)”。...这表示前面一项可以被匹配一次或多次。        /ab+ 匹配 “ab”,”abb”,”abbb”,等等。它不匹配 后面没有跟随 “b” “a”。 要匹配一个可选项,用 “=”。...只是要替换字符与替换为字符要互换:   如,       取消C++源文件中10~20行注释,指令为:   :10,20s/^//////g   取消Python源文件中10~20行注释,指令为

97520

vim 从嫌弃到依赖(19)——替换

substitute 简介 substitute 允许我们先查找一段文本并用新文本将匹配文本进行替换。它使用比较复杂,需要提供一个匹配模式和一个替换字符串。...手动选择是否需要替换 有的时候我们并不希望盲目的对所有内容进行替换,而只替换其中部分内容。例如上述文本中,我们只想替换第二行最后一个 python 为vim。那么可以使用 c 标志。...有一个办法就是将上次模式存储到寄存器中,在匹配时候从寄存器中取数据填充 {pattern} 部分。 上次匹配成功之后如何将对应模式放到寄存器呢,这里我们介绍一个内容——命令窗口。...这个时候我们会想有没有什么办法能让vim知道我只想将寄存器中特殊符号作为普通字符串呢?当然是有办法,我们可以借助vim script 来实现这一需求。...最后总结 在这篇文章我着重讨论了 substitute 这个命令使用,介绍了该命令对应标志位,并通过一些例子演示了如何使用这些标志位。相信各位对替换命令有了一定认识。

2.8K10

vim 超强编辑器

在当前光标所在行行首输入; A:在当前光标所在行行尾输入; O:在光标所在行上一行打开一个新行,并转换为输入模式; 编辑模式 – – > 输入模式 输入模式 – – > 编辑模式...; (:跳转至上一个句子; 段落间移动: }:跳转至下一段 {:跳转至上一段 3. vim编辑命令: 字符编辑: x:删除光标处单个字符; #x:删除光标处起始...#,+#:从左侧#表示行开始,加上右侧#表示行数; .当前行; $:最后一行; %:全文;相当于(1,$) /pat1/,/pat2/:表示从第一次被pat1匹配行开始...查找并替换 s/要查找内容/替换为内容/修饰符 查找替换中分隔符/可替换为其它字符,例如: i:忽略大小写 g:全局替换;默认情况下,没一行只替换第一次出现内容;...多文件模式 vim FILE1 FILE2 FILE3 … :next 切换至下一个文本 :prev 切换至前一个文本 :first 切换至前一个文本 :last 切换至最后一个文本

71610

vim 乱码问题解决及原理全面分析

现在来看看Vim字符编码方式支持是如何工作: 启动Vim,根据.vimrc文件中设置encoding值来设置buffer、菜单文本、消息文字符编码方式。...其中fenc是当前文件编码,也就是说,一个vim里面已经正确显示了文件(前提是你系统环境跟你enc设置匹配),你可以通过改变 fenc后再w来将此文件存成不同编码。...这一趟下来,如果中间某次解码从头到尾都没有出错,那么 vim就认为这个文件是这个编码,不会再进行后面的尝试了。这个时候,fenc值就会被设为vim最后采用编码值,可以用:set fenc?...不管最后文件是什么编码vim都会将其转换为当前系统编码来进行处理,这样才能在当前系统里面正确地显示出 来,因此enc就是干这个。...最后再来说一下新建空文件默认编码。看文档好像说会采用fencs里面的第一个编码作为新建文件默认编码。

3.5K10

【基础拾遗】编辑器之神-VIM

光标跳转: 字符间跳转: h,j,k,l h:左 l:右 k:上 j:下 #COMMAND:跳转由#指定个数字符; 单词间跳转: w:跳转至下一个单词或后一个单词词首; e:跳转至当前或下一个单词词尾...跳转至由#指定行; G:跳转至最后一行; 1G,gg:跳转至第一行; 句间移动: ):跳转至下一个句子; (:跳转至上一个句子; 段落间移动: }:跳转至下一段 {:跳转至上一段 3. vim编辑命令...$:最后一行; %:全文;相当于(1,$) /pat1/,/pat2/:表示从第一次被pat1匹配行开始,一直到pat2匹配行结束 使用方式: 后跟一个编辑命令: d:删除指定范围内容 y:复制指定范围内容..."引用前面查找时查找到整个内容; 修饰符: i:忽略大小写 g:全局替换;默认情况下,没一行只替换第一次出现内容; 查找替换中分隔符/可替换为其它字符,例如: s@@@ s### 六、vim文件模式...多文件模式 vim FILE1 FILE2 FILE3 … :next 切换至下一个文本 :prev 切换至前一个文本 :first 切换至前一个文本 :last 切换至最后一个文本 :wall 保存所有

1.3K50

从零开始配置 vim(9)——初始配置

虽然本系列文章叫做从0开始配置vim,似乎我们从一开始就要写vimrc配置文件,但是我们并没有这么做。...我们先经过几篇文章了解了下面的几个内容 如何设置vim属性,从而改变vim特征 配置快捷键,以提高我们使用效率 使用自动命令,以便使用vim来自动化我们相关操作 这些既有vimscript东西...拥有这些基础知识之后,在阅读其他人写配置或者自己配置将会变得更加容易。当然关于vim我们还有很多内容没有讲,例如该如何自定义命令,如何弹出一个窗口,以及到最后如何编写自己插件。...vim.o.ruler = true -- 边输入边搜索 vim.o.incsearch = true -- 开启搜索匹配高亮 vim.o.hlsearch = true -- 搜索时自行判断是否需要忽略大小写...1000条 vim.o.history = 1000 -- 显示空白字符 vim.o.list = true -- 样式 vim.o.background = "dark" vim.o.termguicolors

1.1K10

浅谈Vim

即使文件没有被修改也强制写入,并更新文件修改时间。 x 写入文件并退出。仅当文件被修改时才写入,并更新文件修改时间,否则不会更新文件修改时间。...四、Other 部分命令解释: % 全文(“%”是“1,$”范围缩写) :g 代表在全文档范围内 ^代表行开始 \s*代表空白字符 &代表行结束 d代表删除 s /搜索字符串开始 /搜索字符串结束.../g 替换字符串结束,g表示替换每一行所有匹配结果。...n 查找下一个& (当在vim用//查找字符时候,字符串有多个时候,按n,光标会跳到下一个字符串) :g/^\s*$/d 删除所有空白行 批量注释或取消注释文本 注释文本: 一般模式下按下Ctrl...+v,上下箭头选中每行,然后按大写I,插入#号,然后按两下ESC即可 取消注释: 一般模式下按Ctrl+v,然后上下箭头全内容(选每行#),按下x即可 当用/查找字符时候,n为下一个字符串,N为上一个字符

1K40

关于在vim查找和替换

1,查找 在normal模式下按下/即可进入查找模式,输入要查找字符串并按下回车。 Vim会跳转到第一个匹配。按下n查找下一个,按下N查找上一个。...Vim查找支持正则表达式,例如/vim$匹配行尾"vim"。 需要查找特殊字符需要转义,例如/vim\$匹配"vim$"。...例如当前为foo, 可以匹配foo bar中foo,但不可匹配foobar中foo。 这在查找函数名、变量名时非常有用。 按下g*即可查找光标所在单词字符序列,每次出现前后字符无要求。...即foo bar和foobar中foo均可被匹配到。 5,查找与替换 :s(substitute)命令用来查找和替换字符串。...^E与^Y是光标移动快捷键,参考: Vim如何快速进行光标移 大小写敏感查找 在查找模式中加入\c表示大小写不敏感查找,\C表示大小写敏感查找。

22.8K40

说实话,Intellij IDEA 自带 Vim 插件真心不错。。。

> - 自动缩进范围内文本 gU - 将范围内字符换为大写 gu - 将范围内字符换为小写 > - 将范围中内容缩进一格 - 将范围中内容取消缩进一格...,包括该字符 F - 从光标位置到光标左边某个字符首次出现位置,包括该字符 /正则表达式 - 从光标位置到下一个匹配正则表达式位置(跨行) ?...用;或,在匹配间切换 t 或 T 跳转到本行某个字符之前,小写t向右查找,大写T向左查找。用;或,在匹配间切换 /正则表达式 跳转到下一个匹配。用n或N在匹配间切换。 ?...一些在目前版本已知没有实现一些常用Vim功能 (如果对Vim不熟悉可以跳过这节) a)let命令 (没有let命令就无法导出/导入寄存器内容,也就是无法导入宏) b):g命令 (在文本处理中很有用一个命令...命令 (执行shell命令) d)大部分正则表达式标记 (例如 \%V, \v 等等) e) 某些多键命令双击最后一个字符表示作用于当前行。

12.6K42

linux文本编辑器-VIM基本使用方法

+/PATTERN:打开文件后,直接让光标处于第一个被PATTERN匹配行首 vim + file 直接打开file,光标在最后一行 三种主要模式:          命令模式:移动光标,剪切粘贴等...p2              第一次被p1匹配行到第一次被p2匹配行 扩展模式字符串查找:          /world      从上向下查找world          ?...world 从下向上查找world          n       定位下一个匹配字串          N      定位上一个匹配字串  扩展模式字符串替换:          :s/old/...new                将当前行中查找到一个字符“old” 串替换为“new”          :s/old/new/g             将当前行中查找到所有字符串“old...:next  下一个          :prev  前一个          :first  第一个          :last  最后一个          :wall  保存所有

93130

Vim,牛逼

上下左右移动:对应上下左右键 按照词移动:w(下一个词),b(单词一个字母),e(单词最后一个字母),不适合中文 按照行移动:0(第一行),$(行尾),:+行数直接跳转到指定行(此处+意味着按下...键入 dd 删除当前行,并把删除行存到剪贴板里。 键入 x 删除当前光标所在一个字符。 键入 p 可用于粘贴上一次复制内容。 键入 yy 可以复制当前行内容。 键入 u 可用于撤销当前操作。...相信我,试玩之后,你会“哇”。 妙,实在是妙。除此之外,你还可以键入: % 匹配括号来移动,包括 {[(,前提条件是你需要把光标移动到括号上。 * 匹配单词来向下一个移动。...(中文就无法使用了) # 匹配单词来向上一个移动。(同上) 记住光标的移动就可以脱离鼠标的束缚了。...原来一边编辑,一遍预览,在 Vim 下,只需要键入三四个字符! 04、结语 如果你想在手头备一份 Vim 帮助手册,免得在用 Vim 时候四处搜索,实话告诉你,我你准备了,就是这么贴心。

41110

Linux Vi编辑器和find命令使用

+#:打开文件后在第#号行首 +:打开文件后在最后一行 光标移动: 单字符移动: h:左 l:右 j:下 k:上 可以和数字组合 单词间移动: w:调至下一个单词词首 b:当前或前一个词首...e:当前或下一个词尾 行内移动: 0:绝对行首 ^:第一个非空白字符 $:绝对行尾 句子间移动: ):上一句 (: 下一句 段落间移动: }:上一段 {:下一段 行间移动:...#G:第几行 #gg G:最后一行 编辑操作: x:删除光标所在处字符 #x:删除光标所在处向后#个字符 r:替换光标所在处字符 d:删除命令 结果光标跳转命令使用...配置文件: 全局:/etc/vimrc 个人:~/.vimrc 查找替换: :地址定界s/查找模式/替换为内容/gi g:全局替换 i:不区分大小写 :地址定界s@查找模式@替换为内容...@gi &:用于在替换为内容部分中引用前面匹配所有内容 find: 实时查找工具,通过遍历指定路径下文件系统完成文件查找。

3.9K20

vim 学习笔记(四)—— 常用命令汇总

b"命令则将光标向后移动到前一个word字符上。 “e"命令会将光标移动到下一个word最后一个字符。命令"ge”,它将光标移动到前一个word最后一个字符上。...没有指定命令计数作为参数的话, "G"会把光标定位到最后一行上。“gg"命令是跳转到第一行快捷方法。...28.替换单个字符 "r"命令不是一个操作符命令。它等待你键入下一个字符用以替换当前光标下那个字符。“r"命令前辍以一个命令记数是将多个字符都替换为即将输入那个字符。...要把一个字符换为一个换行符使用"r”。它会删除一个字符并插入一个换行符。在此处使用命令记数只会删除指定个数字符:"4r"将把4个字符换为一个换行符。 29.重复改动 "....要移到最后一个文件":last",到第一个":first".不过没有":wlast"或者":wfirst"这样命令。可以在":next"和":previous"命令前面使用一个命令计数。

73330
领券