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

echo命令(vim)的语法突出显示文件?

  •  0
  • SystematicFrank  · 技术社区  · 14 年前

    我正在写一个VIM脚本。我的一个函数需要一个时间显示,就像你在输入时得到的那样。” 克里斯特 “。我不想要一个全新的缓冲区,因为我太懒了,我宁愿只键入一个键来删除信息。

    我一直在强调echo命令的语法。我想应用一个完整的语法文件,但到目前为止,我刚刚看到” 回声 “有了它,我只能应用一个语法规则。我尝试过语法集群,但也不起作用。

    “回声 “语法集群的发展方向是否正确?

    1 回复  |  直到 14 年前
        1
  •  1
  •   DrAl    14 年前

    我不确定您是否能用echo和消息列表来实现这一点。

    解决这个问题的一个好方法是创建一个新的缓冲区,并将您感兴趣的内容放入那个缓冲区。然后将缓冲区设置为 nomodifiable , nomodified buftype=wipe . 如果需要向缓冲区添加更多数据, set modifiable ,添加数据,然后 set noma nomod bh=wipe . 将文件类型设置为自定义类型,并根据需要的语法编写语法文件。

    将缓冲区名称设置为特定于您的需求的名称。

    最后,将键盘快捷方式或命令映射到如下内容:

    map @ :exe 'bufdelete' bufnr('MyBufferName')<CR>
    

    这将使 @ 键关闭缓冲区(从而为您提供删除信息的单键方法)。当然,您可以在删除缓冲区之前,通过将其插入函数并检查它是否存在来改进这一点,但现在我将把它作为练习留给您(如果您有任何问题,请告诉我)。

    一个与此相当类似的现有插件是 Dr Chip's RunView plugin . 看看源代码,看看它是否有帮助。如果您需要更多帮助,请添加评论。