Vim 如何使用可视块删除字符?

Vim 如何使用可视块删除字符?,vim,Vim,我通常使用visualblock在行尾插入分号,方法是:G$a。这很有效。但是,当我想使用类似的按键删除分号时,G$A,它只在第一行起作用,如下所示: 结果: var foo = 1 var bar = 'a'; var baz = 'z'; var foobar = foo + bar; var foobarbaz = foo + bar + baz; var foo = 1 var bar = 'a' var baz = 'z' var foobar = foo + bar var foo

我通常使用
visualblock
在行尾插入分号,方法是:
G$a。这很有效。但是,当我想使用类似的按键删除分号时,
G$A
,它只在第一行起作用,如下所示:

结果:

var foo = 1
var bar = 'a';
var baz = 'z';
var foobar = foo + bar;
var foobarbaz = foo + bar + baz;
var foo = 1
var bar = 'a'
var baz = 'z'
var foobar = foo + bar
var foobarbaz = foo + bar + baz
预期结果:

var foo = 1
var bar = 'a';
var baz = 'z';
var foobar = foo + bar;
var foobarbaz = foo + bar + baz;
var foo = 1
var bar = 'a'
var baz = 'z'
var foobar = foo + bar
var foobarbaz = foo + bar + baz

我做错了什么?

一个可视范围加上一个命令就足够了吗

:<','>norm $x
:norm$x

将在可视选择的每一行上运行
$x
(删除行上的最后一个字符)。

可视范围加上命令是否足够

:<','>norm $x
:norm$x

将在可视选择的每一行上运行
$x
(删除行上的最后一个字符)。

可视范围加上命令是否足够

:<','>norm $x
:norm$x

将在可视选择的每一行上运行
$x
(删除行上的最后一个字符)。

可视范围加上命令是否足够

:<','>norm $x
:norm$x
将在视觉选择的每一行上运行
$x
(删除行上的最后一个字符)。

以下是发生这种情况的原因: 这基本上是因为Vim不知道该做什么,一旦编辑的文本比原始行短,它就会中止块编辑

我想将此问题修复到,但尚未找到解决此问题的好方法。

以下是发生这种情况的原因: 这基本上是因为Vim不知道该做什么,一旦编辑的文本比原始行短,它就会中止块编辑

我想将此问题修复到,但尚未找到解决此问题的好方法。

以下是发生这种情况的原因: 这基本上是因为Vim不知道该做什么,一旦编辑的文本比原始行短,它就会中止块编辑

我想将此问题修复到,但尚未找到解决此问题的好方法。

以下是发生这种情况的原因: 这基本上是因为Vim不知道该做什么,一旦编辑的文本比原始行短,它就会中止块编辑


我想将此问题修复到,但尚未找到解决此问题的好方法。

是的,这将按预期工作。我只是好奇为什么
可视块
的工作方式与插入字符的工作方式不同。@LVarayut我假设它是因为它应该在行尾附加一个字符串。删除一个字符实际上不是一个字符串。是的,这将按预期工作。我只是好奇为什么
可视块
的工作方式与插入字符的工作方式不同。@LVarayut我假设它是因为它应该在行尾附加一个字符串。删除一个字符实际上不是一个字符串。是的,这将按预期工作。我只是好奇为什么
可视块
的工作方式与插入字符的工作方式不同。@LVarayut我假设它是因为它应该在行尾附加一个字符串。删除一个字符实际上不是一个字符串。是的,这将按预期工作。我只是好奇为什么
可视块
的工作方式与插入字符的工作方式不同。@LVarayut我假设它是因为它应该在行尾附加一个字符串。删除一个字符实际上不是一个字符串。ftr-我切换到使用
:%norm a追加到每一行。这对我来说只是稍微好一点。ftr-我改用
:%norm a追加到每一行。这对我来说只是稍微好一点。ftr-我改用
:%norm a追加到每一行。这对我来说只是稍微好一点。ftr-我改用
:%norm a追加到每一行。对我来说效果更好。谢谢你的回复。至少我从你的回答中知道了原因。谢谢你的回答。至少我从你的回答中知道了原因。谢谢你的回答。至少我从你的回答中知道了原因。谢谢你的回答。至少我从你的回答中知道了原因。