Vim:当下一个字符不在同一行时删除到下一个字符

时间:2012-09-26 21:46:06

标签: vim

我确信我会因为提出重复的问题而受到嘲笑;有人必须先问过这个问题!但在一个小时的搜索中,我还没有找到它。我一定在寻找错误的东西。

在Vi(或Vim)中,如果我想删除括号,我可以通过键序列}(或dt})删除最多df}个字符的所有字符)。

但是,仅当}字符位于当前行时才有效。我想要做的是删除下一个}的所有内容,即使它首次出现在后续行上。

我在想d/}之类的东西(其中任何其他上下文中的斜杠/}<enter>会将我带到下一次出现的})。由于显而易见的原因,这不起作用,但我希望目的很明确。

==编辑==

好的没关系...抱歉。你没事,它确实有效(在我的清洁安装机器上)。可能是配置文件中的一些混乱的映射,但它不适用于我的另一个。

羞愧地抬头

3 个答案:

答案 0 :(得分:15)

d/}<cr>有效。这是一种规范的删除方法,直到下一个}不在同一行。顺便说一句,d?{<cr>做同样的事情,但方向相反。

答案 1 :(得分:3)

这个plugin可以为您节省一些按键。它扩展了fFtT的功能,所以他们跨界工作。

答案 2 :(得分:1)

如果字符位于行的开头}{,则一种方法可能是使用文本对象动作,因此像{{1}这样的命令也可能有用。