我会试着通过例子解释..
如果我们在vim中有这样的代码:
if ($feck == true && $drink == false)
{
echo 'They lie in wait like wolves..';
}
我进入视觉模式并选择“$drink
”例如,有没有办法:
请注意我正在考虑vim脚本而不仅仅是简单的编辑,所以这两个“动作”都在一个函数中,源自我的.vimrc
另外,我需要在不破坏视觉选择或移动光标的情况下执行此操作(或者,如果确实无法避免,则还原选择和光标位置)。
答案 0 :(得分:1)
这个问题在Hannibal Lecter博士this other question的背景下才有意义。
我认为你想要实现的目标是可能的,但它需要一些工作。其他答案中给出的信息以及对帖子的评论已经指出了正确的方向。
从“扩展选择”键映射调用的vim函数必须执行以下操作:
检查当前选择可能代表的内容(标记'<和'>,因为dwc描述和vim函数应该对此有所帮助)。必须回答这样的问题:是'<和'>在同一条线上? '<之间的所有字母都是和'> iskeyword字符?选择的第一个和最后一个字符是特殊分隔符,如'{','('等等?等等 - 没有内置功能可以自动检查它。另请参阅:help visualmode(
确定之后,您必须考虑,然后您希望如何进一步扩展您的选择 - 但是这个逻辑在ReSharper中有效。
您需要注意将光标放回原位,具体取决于您用于扩展选择的命令。
通常,帮助eval.txt中显示的命令将有助于实现此目的。
答案 1 :(得分:0)
在进行视觉选择后,'<
和'>
可用于接受“范围”的任何内容。