Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/vim/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用vim删除每行中的最后一个字符_Vim_Editor - Fatal编程技术网

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

如何使用vim删除每行中的最后一个字符,vim,editor,Vim,Editor,我有一个文件: 12345a 123456b 1234567c 12345678d 123456789e 如何删除每行中的最后一个字符。 并且该文件将是 12345 123456 1234567 12345678 123456789 您可以使用:%s/\{1}$/删除每行末尾的1个字符。使用:g命令: :g/^/norm $x ^匹配将要操作的每一行 norm是normal的缩写,位于要执行的普通命令之前 $x移动到行尾,在正常模式下删除字符 :%normal$x :使您进入命令行模式

我有一个文件:

12345a
123456b
1234567c
12345678d
123456789e
如何删除每行中的最后一个字符。
并且该文件将是

12345
123456
1234567
12345678
123456789

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

使用
:g
命令:

:g/^/norm $x
  • ^
    匹配将要操作的每一行
  • norm
    normal
    的缩写,位于要执行的普通命令之前
  • $x
    移动到行尾,在正常模式下删除字符

    • :%normal$x

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

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

      TLDR:
      :%s/$/

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

      • :%s/$/
        • 删除所有行末尾的任何字符(或者更确切地说:用零替换结尾的任何字符)
        • s
          =命令
        • =任何字符
        • 如果要删除
          (不是任何字符),请使用
          \.$
          而不是
          $

      • :“你不需要
        {1}
        − 只要
        :%s/$/
        就可以了;-)@毛毯冒烟者,这里的
        是什么意思?@SangminKim,根据Vim的文档,
        匹配任何字符。请参见本节,
        %norm
        %normal
        的使用非常有用。你也可以在每一行后面加上
        %norm A
        ,并在前面加上
        %norm I
        添加你想要添加的字符。我如何删除最后两个字符?@Ted
        :%normal$x$x
        @Ted@tjstankus
        :%norm$xx
        用更少的字符实现同样的效果(最后两个字符为2x)