2010-11-24 95 views
25

当我编写文档时,我发现自己决定适合该文档的组织惯例,并且我希望vim能够突出显示该约定。但是制作一个ftplugin太“全球化”了,我想让文档附带语法着色,所以如果我把它发送到没有插件的地方,他们仍然可以得到着色。我发现你不能通过模式行,因为它只接受选项。Vim:如何将选定的文本作为vim命令执行

现在我试图找出是否有一种方法来选择一些文本在视觉模式(或任何,但我使用视觉线模式的一切,所以它会很好),并将它作为一系列的vim命令。

例如,在一个文档的底部我:

vim highlighting: 
    syn match Comment "^>.*$" 

如何选择文本,并说“热潮,执行它”,而不是重新键入它?

+0

伟大的问题 - 我一直希望你可以为各种事情启用扩展模式,如自定义匹配或类似的东西。用于为此写入临时ftplugins。 – progo 2011-04-14 12:25:14

回答

37

您可以选择行,猛拉选择与

:@" 
+1

另请参阅[http://stackoverflow.com/questions/3997078/how-do-you-paste-text-into-a-vim-colon-command/3997110#3997110](此答案)以获得更多关于如何使用寄存器 – Benoit 2010-11-24 16:00:37

1

我基于lh-vim-lib不涉及任何寄存器定义a few mappings执行它。 这实际上是一个矫枉过正的解决方案,但它是一个整洁的映射 - 因为它永远不会修改默认寄存器。

2

我喜欢做这种映射,这将需要你做一个视觉选择第一和不会覆盖无名寄存器:

vmap <space> :w! /tmp/x.vim<CR>:so /tmp/x.vim<CR> 

vmap <space> "xy:@x<CR> 

如果你喜欢写VIM与行延续命令