如何删除直到(不包括)行中的最后一个字符

时间:2020-08-31 08:45:05

标签: vim shortcut

我想删除一个以大量括号结尾的序列,而不是计算括号的确切数目以进行d [count] f),我想删除一行中的最后一个字符。

我尝试了dt $,但没有成功。

编辑:最终,我们可以排除更多字符吗?

2 个答案:

答案 0 :(得分:4)

因此,正如我所看到的,真正的问题是“如何删除直到(且不包括)行中的最后一个字符。

答案是:dv$。参见:h exclusive:h o_v

答案 1 :(得分:0)

您可以使用marks或视觉选择。例如带有标记:

ma$d`a

拆分命令:

ma Mark the current cursor position with mark a
$ Go to the last character in the line
d`a Delete back to the mark a

如果需要在行末保留几个字符,请在Nh之后添加$。例如:

ma$3hd`a

视觉选择:

v$3hx

使用一个必填参数定义命令:

function! DelToEOL(n)
    execute 'normal v$' . string(a:n + 1) . 'hx'
endfunction

command -nargs=1 DelToEOL :call DelToEOL(<args>)

+ 1是必需的,因为视觉选择会选择要排除的当前字符。

相关问题