在vim中沿左空白创建4-5个字符的列

时间:2019-02-07 19:32:59

标签: vim

作为一点背景,我正在考虑为vim制作一个插件,该插件将在左边距(最好是数字列的左侧)内嵌特定的调试和/或配置文件信息,宽度必须为4-5个字符。但是,我找不到实现此目的的任何方法。我进行了搜索,找到的最接近的是vimscript代码,用于在符号列中插入符号,但是符号列固定为2个字符宽。

我已经考虑过创建自己的临时列(在通常可编辑的文本区域中,在数字列的处)的可能性,并以某种方式将其标记为只读,但这不是从我所读的内容来看,似乎有可能-整个缓冲区必须是只读的;您不能只有一部分是只读的。

为完整起见,下面是一个示例。我想以编程方式在一些文本(设置了数字)之前插入4-5个字符的列

1 Text buffer
2 with some
3 text

制作

My   1 Text buffer
own  2 with some
text 3 text

有什么办法可以完成这项任务?

1 个答案:

答案 0 :(得分:2)

此功能的内置功能是 sign列,但是可以,它仅限于两个字符。

根据您的用例,可以通过工具提示弹出窗口来增强标志(:help balloon-eval明确提到此功能允许调试器或其他外部工具根据位置显示动态信息)。 ),也可以将其他信息放在quickfix或位置列表中。


修改实际缓冲区有很多缺点(因为它有效地阻止了编辑,而Vim的主要目的就是如此)。一些插件的作用是在垂直拆分中显示一个临时(即,非持久性,不可修改)缓冲区,并设置'scrollbind'选项,使其内容位于原始缓冲区之后。例如,看看VCSCommand plugin,它使用它来用提交信息注释缓冲区。