如何将当前视觉选择短语插入命令行?

时间:2010-09-01 15:42:24

标签: vim

在命令中输入参数时,我知道我可以键入<C-R><C-W>以在光标下插入单词,并<C-R><C-A>在光标下插入WORD。

有没有办法插入当前的视觉选择?

谢谢!

3 个答案:

答案 0 :(得分:34)

您可以在ex或search命令行上使用<C-R>后跟寄存器名称的任何寄存器的内容。通过yanking您的视觉选择,它被放入0寄存器,因此<C-R>0会将您的选择添加到当前命令行。

这是我所知道的唯一方式,但我仍然每天使用它。

答案 1 :(得分:4)

有几种方法可以解释您的问题。最简单的是,如果您要将所选文本作为范围参数提供给ex命令。我怀疑这是你的问题,因为如果你输入以下内容会自动发生:使用视觉选择,但是这个的前语法

:'<,'>

我认为你的问题可以解释的第二种方式是你想要将视觉选择的文本本身作为参数插入ex命令;我不认为这可以做到。如果您阅读了vim手册部分40.2,其中描述了范围参数,则允许命令从范围参数中获取的唯一内容是第一行和最后一行的编号(使用标记{{ 1}}和<line1>)。

最后,如果您想运行 shell 命令行中的所选文本,您只需选择它并输入

<line2>

:!sh 部分应该在:和!之间插入。你可以用命令替换'sh'来启动你最喜欢的shell。)

答案 2 :(得分:0)

是的,注册表*包含当前的视觉选择......

您可以输入<C-R>*从插入或命令模式中获取它......

但是,在命令行中使用它并不是很方便,因为从可视模式进入命令模式时无法避免'<,'>