Vim:管理多种措辞选择

Vim:管理多种措辞选择

(阅读本文后,请建议另一种措辞来回答这个问题,因为我无法想出更好的措辞)

在使用 Vim 编写和编辑时,无论是供人类阅读的文本还是供人类和计算机阅读的文本(代码),我经常无法立即确定某些文本块的最终版本,无论是带有大量同义词的单词(在散文中)还是用途尚不明确的函数名称(在代码中)。例如,在散文中:

我已成功说服他使用 Linux 而不是 Windows。

或者用代码:

def count/countEven/somethingElse(input)
  ...
  ...

这就是我当前的工作流程。我想跟踪文本最终版本的所有可能候选者,所以我把它们放在斜线后面。但这种方法存在问题:

  1. 这使得文本难以阅读。比较一下我的工作流程:

    通过将繁琐/单调和复杂/困难的工作委托/分配到计算机的能力/能力增强/放大了这一点。

    正常人是如何写作的:

    将单调而困难的工作委托给计算机的能力进一步增强了这一优势。

  2. 我当前的方法不会以任何方式突出显示这些未完成的文本块:它们看起来像文本的正常部分。

  3. 我无法确定尚未确定的文本块在哪里结束以及“正常”文本在哪里开始。尤其是当某些块候选中有空格时,例如:

    ... 说服/争辩/劝说...

    它可能暗示我有以下四个选择:

    说服

    说服

    争论

    争论说服

    而实际上选择是

    说服

    争论

    说服

那么,您知道以下形式的解决方案吗:

  • 内置 Vim 功能
  • 一个插件
  • 放入我的 .vimrc 中
  • 还要别的吗

解决将所有这些块组合成一个“盒子”的问题,同时又不会分散人们阅读文本的注意力?

如果没有,我应该在 Vimscript 文档(从未在其中编程)中从哪里开始查找以实现下拉菜单解决方案,如下所示?

提前致谢。

PS:一个可能的解决方案。比如,我有以下文本:

我已成功说服他使用 Linux 而不是 Windows。

解决方案如下:

我已经成功了劝说[3]他使用Linux而不是Windows。

主要特点:

  1. 它只显示我选择的块候选,同时隐藏其他块
  2. 它可以选择性地显示还有多少其他候选人
  3. 文本中的这个位置已突出显示,可能使用了不同的文本颜色。

要访问其他候选人,我必须将光标放在劝说[3],单击一个特殊键,它会弹出一个包含所有其他候选词的下拉菜单,就像自动完成功能一样:

I've managed to *persuade[3]* him to use Linux instead of Windows.
                convince
                argue into

然后我就可以选择(例如,按 Ctrl-N 或 Ctrl-P)更合适的选项。如果能够删除候选,那就太好了。

这只是可能的解决方案之一。

答案1

首先,不要忘记 Vim 是一个文本编辑器,而您的用例在定制编辑方面已经走了很远。所以我想,就现成的解决方案而言,不会有太多。

插件建议

我所拥有的是我的TextFormComplete 插件,这样您就可以以这种形式编写替代方案:

I've managed to [convince|argue into|persuade] him to use Linux instead of Windows.

然后,选项上的q|(或<C-x>|插入模式)会询问你一个选项,并用它替换原始选项。这将有助于你进行最终编辑,但除了使用内置撤消。因此,这将允许您在输入句子时推迟选择替代方案,但您必须在那之后尽快做出决定。

实现指针

听起来可以实现你所描述的过程,但我不建议 Vimscript 的初学者这样做。隐藏功能(参见:help conceal),您确实可以从视图中隐藏/折叠选项。“选定”的选项必须以某种方式标记,例如*convince。您可以编写映射以轻松将*标记更改为另一个选项。问题是,隐藏是基于语法突出显示的,可能会干扰通常的文件类型突出显示,例如当您尝试在(Java 等)注释中使用选项时。您只能通过清除所有其他语法元素来避开它。

相关内容