我已经使用了vi几十年了,现在正在练习使用vim,期待 最终完全切换到它。 我有很多问题,但我会从 麻烦最多的问题开始。我在vi中长期完成的工作是在我正在编辑的文件中键入 的底线命令,将其命名为 (例如,使用击键"ayy
)并执行该缓冲区(使用 :@a^M
)。这允许我编辑复杂的命令,直到它们正常工作,并保留我将多次使用的命令,因为我在文件中工作了 。 (我有 在我的.exrc文件减少这种使劲-和执行的 一个按键的映射;但这是不相关的我的问题。)在vim中执行命名缓冲区时处理特殊字符
我发现,在VIM,我需要很多更多^V
s比vi。这个 一方面意味着当我在一个文件 中有一些命令行,我希望这样使用时,我现在需要保留在两个版本中,一个用于vi,一个用于vim。此外, 额外^V
的要求似乎不雅:显然当在vim中执行命名缓冲区时解释一次被解释一次的各种特殊字符 在vim中执行时会被解释两次 - 但为什么?
作为一个实例,形式
map =f :w^V|e foo^M
(映射键击序列=f
来写入当前文件 并转到文件foo
)的命令以这种方式工作,在vi,但是具有有形式
map =f :w^V^V|e foo^V^M
。 (在这两个命令中,^ V通过输入^ V^V获得, 并且通过键入^ V^M获得^ M;因此键入第一个版本 涉及输入三个^V
s,并且第二个,七个)。准确地说:第一个版本在vim中可以正常工作,如果其中一个实际上是 将其输入到最后一行(附加^V
s); ,但后者在执行的命名缓冲区中是必需的。
任何解释?我可以设置什么来解决这个问题? (“兼容” 似乎没有这样做。)任何希望它将在未来 发布中得到修复? (我是该系统采用7.0版。)
(我应该承认,我不是一个程序员。只是谁拥有 成为精通VI的用户)