如何使用vim删除每行中的最后一个字符

Lar*_* Lu 24 vim editor

我有一个文件:

12345a
123456b
1234567c
12345678d
123456789e
Run Code Online (Sandbox Code Playgroud)

如何删除每行中的最后一个字符.
而文件将是

12345
123456
1234567
12345678
123456789
Run Code Online (Sandbox Code Playgroud)

小智 41

您可以使用:%s/.\{1}$//从每行末尾删除1个字符.

  • 你不需要`{1}` - 只是`:%s /.$//`会正常工作;-) (27认同)

tjs*_*kus 20

:%normal $x

  • : 让你进入命令行模式
  • % 是表示整个文件的范围
  • normal 说我们正在运行普通模式命令
  • $x 删除行中的最后一个字符

有些与其他答案重叠,但对我来说,这个答案最简单.

  • 使用`%norm`或`%normal`非常有用.您还可以使用`%norm A`附加每行,并在前面添加`%norm I`添加您想要添加的字符. (3认同)

Moe*_*Pad 7

域名注册地址: :%s/.$//

有关解释和更多示例,请继续阅读。

  • :%s/.$//
    • 删除所有行末尾的任何字符(或者更好地说:用空替换末尾的任何字符)
    • s=替换命令
    • . = 任何字符
    • 如果你想删除.(不是任何字符)使用\.$而不是.$
  • :'<,'>s/.$//g
    • 删除当前选择的所有行末尾的任何字符
    • '<,'>= 当前选择(你通过 得到这个SHIFT+V,然后选择行,然后:
  • :%s/;$//
    • ;在所有行的末尾删除
    • 如果您将代码从一种需要的语言复制并粘贴;到不需要的语言中,则很有用


Wra*_*eng 5

使用:g命令:

:g/^/norm $x
Run Code Online (Sandbox Code Playgroud)
  • ^ 匹配将要操作的每一行。
  • norm是的简写normal,比您要执行的普通命令更早。
  • $x 移至行尾,然后在普通模式下删除字符