代码之家  ›  专栏  ›  技术社区  ›  luqui

Vim:如何将所选文本作为Vim命令执行

vim
  •  28
  • luqui  · 技术社区  · 14 年前

    当我编写文档时,我发现自己已经习惯了一个适合于该文档的组织约定,我希望vim能够语法突出显示该约定。但是,制作一个ftplugin太“全局”了,我希望文档附带语法着色,所以如果我把它发送到没有该插件的地方,它们仍然可以得到着色。我发现你不能通过模型来做,因为它只接受选项。

    现在,我试图找出是否有一种方法可以在可视化模式下选择一些文本(或者其他什么,但是我对所有内容都使用可视化行模式,这样会很好),并将其作为一系列vim命令执行。

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

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

    我如何选择文本并说“砰,执行它”,而不是必须重新键入它?

    3 回复  |  直到 14 年前
        1
  •  43
  •   Baramin    14 年前

    您可以选择行,拖动选择并使用

    :@"
    
        2
  •  2
  •   Jake    9 年前

    我喜欢进行此映射,它将要求您首先进行可视化选择,并且不会覆盖您的未命名寄存器:

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

    如果您想编写带有行连续性的vim命令:

    vmap <space> :w! /tmp/x.vim<CR>:so /tmp/x.vim<CR>
    
        3
  •  1
  •   Markus Jarderot    6 年前

    我已经定义了 a few mappings 基于 lh-vim-lib 不涉及任何登记。 这确实是一个过度的解决方案,但对于映射来说是一个很好的解决方案——因为它永远不会修改默认寄存器。