我有一个文件:
12345a
123456b
1234567c
12345678d
123456789e
我该如何删除每行的最后一个字符。
文件内容如下:
12345
123456
1234567
12345678
123456789
:%s/.\{1}$//
来删除每行末尾的一个字符。:%normal $x
:
进入命令行模式%
表示整个文件范围normal
表示我们在运行正常模式命令$x
删除行中的最后一个字符与其他答案有些重叠,但对我来说,这是最简单易懂的一种阅读方式。
%norm
或 %normal
的使用非常实用。你也可以在每行中附加 %norm A
,并在前面添加 %norm I
,加入你想要添加的字符。 - Jools:%normal $x$x
- tjstankus:%norm $xx
用更少的字符实现相同的功能(最后2个字符用2个x表示)。 - chrizTLDR: :%s/.$//
如需解释和更多示例,请继续阅读。
:%s/.$//
s
= 替换 命令.
= 任意字符.
(不是任意字符),请使用\.$
代替.$
:'<,'>s/.$//g
'<,'>
= 当前选择(通过SHIFT + V
,然后选择行,最后按下:
获得):%s/;$//
;
使用 :g
命令:
:g/^/norm $x
^
匹配要操作的每一行。norm
是 normal
的简写,位于你想执行的正常命令之前。$x
移动到行尾并在正常模式下删除一个字符。
{1}
− 只需:%s/.$//
就可以了,;-) - Martin Tournoij.
是什么意思? - SangminKim.
匹配任何字符。请参见 http://vimdoc.sourceforge.net/htmldoc/pattern.html。@SangminKim - jabalazs