我想删除以许多括号结尾的序列,而不是计算括号的确切数量来执行d[count]f),我想删除到一行中倒数第二个字符之前。我尝试过dt$,但没有成功。编辑:最终,我们可以排除更多的字符吗?
所以,我认为真正的问题是“如何删除直到(但不包括)行末最后一个字符。”
答案是:dv$
。详见:h exclusive
和:h o_v
。
您可以使用标记或可视选择。例如,使用标记:
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
是必需的,因为视觉选择会选择当前字符,而这个字符应该被排除在外。
v$hd
这样的可视选择对我来说已经足够了。我如何将其制成一个带有计数器的命令? - Dimitri Lesnoff
:h sentence
中的那个吗?还是其他什么意思? - Mattv$hh...d
或者类似的方式。 - Matt