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

时间:2016-03-28 14:43:36

标签: vim editor

我有一个文件:

12345a
123456b
1234567c
12345678d
123456789e

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

12345
123456
1234567
12345678
123456789

4 个答案:

答案 0 :(得分:36)

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

答案 1 :(得分:16)

:%normal $x

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

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

答案 2 :(得分:4)

使用:g命令:

:g/^/norm $x
  • ^匹配将要操作的每一行。
  • normnormal的简写,在您要执行的正常命令之前。
  • $x移至行尾,并以正常模式删除字符

答案 3 :(得分:2)

TLDR: :%s/.$//

有关说明和更多示例,请继续阅读。

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