vim删除到行尾之前的一个字符

时间:2018-10-05 10:17:44

标签: vim

我可以按$到行尾,因此,如果要删除所有内容,直到EOL,我可以执行d$(或D)。如果我要删除直到EOL列-1个字符(或更广泛地说-n个字符)怎么办?

示例

我有一行1234.567890,其中.代表光标,并且想要1234.0.再次代表光标)。

3 个答案:

答案 0 :(得分:2)

怎么样

d/.$<CR>

这将删除,直到EOL前一个字符。

答案 1 :(得分:1)

如果两者之间没有相同的字符(或者很容易确定字符的数目),则$this->app->resolving(LengthAwarePaginator::class, function ($paginator) { return $paginator->appends(array_except(Input::query(), $paginator->getPageName())); }); f命令非常有用,因为它们只涉及两次击键(命令和目标字符,可能由t开头,并且(不同于更通用的[count])它们仅限于当前行。对于您的示例,则为/...<CR>

对于更复杂的场景,在我停下来并仔细考虑可能的解决方案之前,可视模式是一种快速的替代方法,可让您反复微调区域,然后再应用命令。我认为这是对 vi 原始命令集的一个非常实用的补充。以您的示例为例,dt0

答案 2 :(得分:1)

没有内置的动作,但是您可以创建 :omap轻松实现自己的目标。它将与任何 运算符。

:onoremap <silent> q :<C-U>normal! v$hh<CR>

现在dq会做您想做的事,以及cq会进行更改 直到最后一个字符vqyq等。

通过将q替换为:normal 启动视觉选择,直到行尾 (v$)和后两个字符(这是因为$选择了 直到换行符本身)。 <C-U>清除所有可能的 范围。