为什么文件恢复后vim无法正常工作?

问题描述

我去在vim中打开一个日志文件,但被警告已找到交换文件。警告之一提示我可能要使用vim -r filename.log打开文件。我是这样做的,但是现在当我在文件中“ vim”时,我必须键入“ GG”(而不是“ G”)以使其结束,并键入“ gg”(而不是“ g”) ),让我重新开始。当我使用j和k上下移动一行时,它会高亮显示该行的一部分(请参见下面的屏幕快照中的蓝色和绿色光标),而之前没有高亮显示。任何线索可能会发生什么?

enter image description here

谢谢!

解决方法

我必须输入“ GG”(而不是“ G”)才能将其带到最后,

这很奇怪...前一个G是否有可能被挂起的按键消耗掉了?例如,如果键入gG,则该命令无效,将被忽略。因此,您实际上需要gGG到文件末尾,因为第一个G被忽略了……这可能是正在发生的事情吗?

否则,是否有可能为G或以G为前缀的内容进行映射? :map G是否显示已定义的任何映射?

和“ gg”(而不是“ g”)来使我入门。

这是正常现象。 gg是Vim中的命令(也是原始vi中的命令),用于转到文件顶部。

您可能会想到less会以单个g到达顶部吗?

当我使用j和k上下移动一行时,它会突出显示该行的一部分(请参见下面的屏幕快照中的蓝色和绿色光标)

这是Vim附带的matchit插件的作用(在Vim的最新版本中,但是我相信Vim附带了相当长的一段时间。)默认情况下已启用,已加载作为启动的一部分。

只要您将光标放在一对matchit插件上,它就会突出显示匹配的括号,括号或括号。因此,由于将光标放在[上,Vim将突出显示相应的]

而之前没有亮点。任何线索可能会发生什么?

即使启用了matchit,您也可能没有注意到它的效果,因为只有当光标在方括号上方时,它才会被触发。也许此日志文件的不同之处在于所有行都以方括号开头,这就是为什么它如此突出?

或者您的计算机中可能具有不同版本或风格的Vim,并且其中一些无法加载matchit(也许您的“最小” Vim不支持插件?)也许您拥有命令vimviview,其中一些将加载行为不同的Vim的不同版本。在大多数情况下,您倾向于使用其他版本,但是这一次,由于收到有关恢复文件并显式使用vim -r的消息,您最终使用了确实可以加载文件的特定版本吗?

您可以使用:version命令来检查您正在使用的Vim版本以及可用的功能。 (特别是,寻找“最小”,或检查+eval是否已启用,如果它被列为-eval,则意味着对外部插件文件的支持将在很大程度上被禁用。)

您还可以检查:scriptnames来查看Vim加载的脚本文件列表,还可以检查该列表中是否包含matchit.vim