如何在Vim中选择线的一部分

如何在Vim中选择线的一部分,vim,ex,Vim,Ex,我有一行文字看起来像这样 foo bar http://www.example.com -> baz 我想用ex猛拉url部分。有人知道怎么做吗 澄清。我想从命令行执行类似于:y/http:.\.com/的操作。但这不起作用。如果我在另一行,我会使用/http从URL的开头开始,如果我在同一行,则从fh开始,然后是yt(最后一个键是空格)。URL符合单词的定义,因此,当光标位于行首时,可以使用yW执行此操作。当光标位于行首时 wwviWy 将在不更改光标位置的情况下拖动URL部分 如

我有一行文字看起来像这样

foo bar http://www.example.com -> baz
我想用ex猛拉url部分。有人知道怎么做吗


澄清。我想从命令行执行类似于
:y/http:.\.com/
的操作。但这不起作用。

如果我在另一行,我会使用
/http
从URL的开头开始,如果我在同一行,则从fh开始,然后是yt(最后一个键是空格)。

URL符合单词的定义,因此,当光标位于行首时,可以使用
yW
执行此操作。

当光标位于行首时

wwviWy
将在不更改光标位置的情况下拖动URL部分


如果你想把它当作命令来做

做同样的事情。

normal/http^v^m^v^mv2fm
normal /http^v^m^v^mv2fm <Enter>

其中^v=Ctrl+v和^m=Enter

是的,但是如何从命令行执行呢。我希望能够做一些类似
:y/http:.\.com/
的事情,但这不起作用。完美,这正是我所需要的。为什么
:执行
:而不是
:正常直接?有了@Benoit建议,它可以短到
:norm!2WyE
@sidyll-我相信它可以在很多方面被缩短/改进。然而,这是我第一次想到的,我很少使用前置数字,所以。。。OP得到了他的解决方案。继续…@我明白了。然而,我评论的真正目的是(无用地)使用
:execute
作为“包装器”。您可以直接调用
:normal
:-)@西迪尔-哦,是的,你说得对。我更喜欢这种方式,因为我不必考虑两种情况;有转义字符和没有转义字符。这样“它就可以工作了”
t
“部分通常更好地表示为
E
@bitmask我通常更喜欢
t
,因为它是通用的(也就是说,我并不总是寻找空格),而不仅仅是与单词相关的。这样我就不必使用两种不同的快捷方式,也不必关心单词分隔符。
normal /http^v^m^v^mv2fm <Enter>