我正在尝试在 VIM 中映射 Ctrl-y 以删除它在从光标下开始匹配的括号之间找到的任何内容。它有效,但它也删除了括号。这是我目前正在使用的:
imap <c-y> <Esc><Right>d%<Insert>
这很好用,除了我说它也删除了光标下的内容(即匹配的括号)。我确实找到了这个:
diX
X
成为您正在寻找的支架;[
, (
,'
等
该i
命令的问题是我不想为我定期执行此操作的每个括号映射一个新键,我喜欢%
它匹配光标下的任何内容,s
甚至是一个字母。
有什么办法可以保留括号吗?
编辑:对不起,一个例子。我有以下文本示例,(* 代表光标):
(*text to be erased between brackets)
"*text to be erased between brackets"
'*text to be erased between brackets'
[*text to be erased between brackets]
{*text to be erased between brackets}
基本上在每个示例中,我希望我的光标位于相关括号的顶部,然后当我点击Ctrl-y
它时,它会从插入模式移动到普通模式,删除所有文本或光标下括号之间的任何内容(在那个点下因为我移动到正常模式然后<Right>
)到同一个括号的下一个。
所以上面所有的都会变成:
()
""
''
[]
{}
无需卸下周围的支架。随着d%
括号被删除。