如何删除直到(不包括)该行的最后一个字符
How to delete until (and not including) the last char on the line
我想删除一个以大量括号结尾的序列,而不是计算括号的确切数量来执行 d[count]f),我想删除一行中的前一个字符。
我尝试了 dt$ 但没有成功。
编辑:最终,我们可以排除更多字符吗?
您可以使用 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
。例如:
mahd`a
视觉选择:
vhx
用一个必需的参数定义一个命令:
function! DelToEOL(n)
execute 'normal v$' . string(a:n + 1) . 'hx'
endfunction
command -nargs=1 DelToEOL :call DelToEOL(<args>)
+ 1
是必需的,因为视觉选择会选择应排除的当前字符。
所以我看到真正的问题是“如何删除直到(不包括)行中的最后一个字符。
答案是:dv$
。参见 :h exclusive
和 :h o_v
。
我想删除一个以大量括号结尾的序列,而不是计算括号的确切数量来执行 d[count]f),我想删除一行中的前一个字符。
我尝试了 dt$ 但没有成功。
编辑:最终,我们可以排除更多字符吗?
您可以使用 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
。例如:
mahd`a
视觉选择:
vhx
用一个必需的参数定义一个命令:
function! DelToEOL(n)
execute 'normal v$' . string(a:n + 1) . 'hx'
endfunction
command -nargs=1 DelToEOL :call DelToEOL(<args>)
+ 1
是必需的,因为视觉选择会选择应排除的当前字符。
所以我看到真正的问题是“如何删除直到(不包括)行中的最后一个字符。
答案是:dv$
。参见 :h exclusive
和 :h o_v
。