vi 中的可视模式删除多行末尾的字符

vi 中的可视模式删除多行末尾的字符
builder.append("sss");
builder.append("aaaaaaaaa");

我想删除 ;在最后。我可以使用 sed 中的各种脚本或替换 vim 中的所有脚本来完成此操作。

但是,我想知道如何使用视觉模式。

我知道如何在前面或后面添加进入视觉模式,j,Shift + i,在开头添加,然后类似 Shift + $ 结尾。

但是,当我尝试使用 j、Shift + $、Shift + a、退格键和 esc 删除它时,它不起作用,我得到以下信息:

   builder.append("sss")
   builder.append("aaaaaaaaa");)

我究竟做错了什么?

答案1

听起来对多行执行此操作的最简单方法是在视觉模式下标记块,然后:

:'<,'>s/;$//

请注意,这'<,'>意味着“从视觉块的开头到结尾”,并且当您:在视觉模式下按时自动添加。

答案2

将光标置于分号上并使用x将其删除。

(我假设您指的是 vi 的视觉模式(与其 ex 模式不同),而不是 Vim 的VISUAL模式。)

如果您确实想一次对多行执行此操作,那么您将不得不求助于冒号命令。如果您使用 Vim,那么 @Greg Hewgill 的答案就是适合您的答案。如果您使用 vi,则必须用 标记第一行,用ma标记最后一行mb,然后用 处理所有这些行:'a,'bs/;$//

相关内容