2011-11-22 49 views
3

线的一部分,我有一行文字,看起来像这样如何选择在Vim中

foo bar http://www.example.com -> baz 

我想抽出使用前的URL的一部分。任何人有任何想法如何做到这一点?

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

回答

6

虽然上线之初,

wwviWy 

同时不改变光标位置将抽出的URL的一部分。


如果你想这样做作为命令

:execute "normal! wwviWy0" 

做同样的事情。

+0

完美,这正是我需要的。 –

+4

更短:'2WyE' – Benoit

+1

为什么':execute'而不是':normal!'直接?有了@Benoit的建议,它可以和':norm!一样简短! 2WyE' – sidyll

0

我会用/http获得在URL的开头,如果我是在另一条线路,或˚F^h如果我是在同一条线上,然后ÿ吨(最后关键是空间)。

+0

的 “''吨” 部分通常是更好的表示为'E'。 – bitmask

+0

@bitmask我通常更喜欢't',因为它是通用的(即不是我总是寻找空间),而不仅仅是与词相关。这样我就不必使用2个不同的快捷方式或关心分词器。 – deviousdodo

2

该URL符合WORD的定义,所以您可以在光标位于开头时使用yW来完成。

+0

是的,但是如何从命令行完成。我想能够做一些像':y/http:。* \。com /'这样的功能,但这不起作用。 –

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

凡^ V = Ctrl键 + v和^ M = 输入