【问题标题】:Why is vim not working properly after a file recover?为什么文件恢复后vim不能正常工作?
【发布时间】:2020-12-07 00:57:05
【问题描述】:

我在 vim 中打开一个日志文件,但被警告说已找到交换文件。其中一个警告表明我可能想使用 vim -r filename.log 打开文件。我这样做了,但是现在当我在文件中“vim”时,我必须输入“GG”(而不是“G”)才能让它带我到最后,并且“gg”(而不是“g” ) 让它带我到开始。当我使用 j 和 k 向上/向下移动一行时,它会突出显示该行的一部分(请参见下面屏幕截图中的蓝色和绿色光标),而之前没有突出显示。有什么线索吗?

谢谢!

【问题讨论】:

    标签: vim putty swapfile


    【解决方案1】:

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

    这很奇怪......第一个G 是否可能正在被挂起的击键消耗?例如,如果您键入 gG,则该命令无效并被忽略。所以你需要gGG 才能真正走到文件的末尾,因为第一个G 被忽略了......这可能是正在发生的事情吗?

    否则,您是否有 G 的映射或使用 G 作为前缀的映射? :map G 是否显示定义的任何映射?

    和“gg”(而不是“g”)让它把我带到开头。

    这是正常的。 gg 是 Vim 中的命令(在原始的 vi 中也是如此)转到文件顶部。

    您是否在想less 与单个g 一起到达顶部?

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

    这是matchit 插件的效果,它是随 Vim 一起提供的(在最近的 Vim 版本上,但我相信它已经随 Vim 一起提供了很长一段时间。)它默认启用,作为一部分加载启动时间。

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

    而之前没有亮点。有什么线索吗?

    即使matchit 已启用,您可能也没有注意到它的效果,因为它仅在您的光标位于括号顶部时才会触发。也许这个日志文件的不同之处在于所有行都以括号开头,这就是它如此突出的原因?

    或者你的机器中可能有不同版本或风格的 Vim,其中一些无法加载 matchit(也许你有一个不支持插件的“最小”Vim?)也许你有命令 @ 987654338@,viview,其中一些将加载行为不同的不同版本的 Vim。在大多数情况下,您倾向于使用其他版本,但这次因为您收到有关恢复文件并明确使用 vim -r 的消息,您最终使用了加载它的特定版本?

    您可以使用:version 命令检查您正在使用的 Vim 版本以及可用的功能。 (特别是找“min​​imal”,或者查看+eval是否开启,如果列为-eval则表示对外部插件文件的支持将大部分关闭。)

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

    【讨论】:

    • 哦兄弟!我混合了 vim 和更少。亲爱的我,我需要更多的睡眠。谢谢@filbranden
    • @mike_butak 或者更多咖啡! ☕
    猜你喜欢
    • 2010-09-20
    • 1970-01-01
    • 2019-08-29
    • 2016-07-16
    • 2019-01-04
    • 2020-09-03
    • 2016-10-10
    • 2016-10-24
    • 2017-02-27
    相关资源
    最近更新 更多