gpt4 book ai didi

debugging - 如何调试 VimL 中的问题?

转载 作者:行者123 更新时间:2023-12-03 06:47:01 26 4
gpt4 key购买 nike

我想了解更多有关 vim 调试的信息。 vim 有哪些功能可以帮助我诊断我可能遇到的问题?

我基本上想知道:

  • 如何诊断 .vimrc 和其他配置文件的问题?
  • 在 VimL 中调试脚本有哪些策略?

最佳答案

如何诊断 .vimrc 和其他配置文件的问题?

如果您在 vim 中遇到一些意外行为,并且您不确定问题出在哪里问题是根源,有几种方法可以追根溯源的问题。最好的第一步是查明您的问题是否是正常的 vim 行为,由插件引起或由您的 .vimrc 引起。

如果您的 vim 实例正在设置特定的'option'并且您不确定其设置位置。您可以使用 :verbose 命令来查找。为了实例

:verbose set nocompatible?
nocompatible
Last set from ~/.vimrc

在没有任何插件或配置文件的情况下运行 vim 实例

vim -N -u NONE

我在我的 .bashrc 文件中将其设置为名为 cleanvim 的别名。 -u NONE 是这里有什么魔力。 -N 只是将 vim 置于 no兼容 模式,这通常是所期望的。您还可以使用选项 NORC 仅排除你的 vimrc.请注意,如果您使用诸如 Pathogen 或 vundle 之类的东西从 vimrc 中实例化您的插件,然后您的插件也将无法正确加载。

如果您使用的是诸如pathogen或vundle之类的插件管理器,那么排除您的插件很简单;只需注释掉 .vimrc 中调用的行病原体或病毒。但是,如果您从 .vim 加载了其他插件目录中,您可以使用 --noplugin 标志排除它们。

如果您的问题是由插件引起的,请尝试一一添加回插件以确定是哪个问题引起的。从那里您可以报告将错误报告给插件的维护者或尝试自己诊断问题使用本答案其余部分的提示。

如果您的问题是由 .vimrc 引起的,有一些方法可以磨练问题进一步。简单的方法就是在某个位置添加finish命令指向您的 .vimrc 。一旦遇到此命令,脚本将停止正在被获取并且之后不会执行任何命令。这样你就可以排除 .vimrc 的大部分内容并尝试找出一般区域问题从何而来。

在 VimL 中调试脚本有哪些策略?

Vim 在 :h debug-scripts 处有关于此主题的帮助部分。这描述了vim 的 Debug模式详细信息,该模式允许您设置断点和单步执行通过源文件或用户函数。您可以在特定的位置添加断点函数或文件中的特定行。例如...

" set a breakpoint on the function MyCoolFunc
:breakadd func MyCoolFunc

" set a breakpoint on line 43 of your .vimrc
:breakadd file 43 .vimrc

" set a breakpoint at this location
:breakadd here

设置断点后,您可以再次获取文件以开始 Debug模式那条线。如果你想在整个文件上使用 Debug模式,请使用以下命令启动 vim-D 标志。您还可以对特定命令运行 Debug模式。例如,假设您在使用特定命令 :MyCommand 时遇到问题。你可以开始了使用 :debug MyCommand 对此命令进行 Debug模式。

启动 Debug模式后,您可以使用常用的 vim 命令集。这很有用,因为您现在可以使用以下命令检查变量的值echo 命令来尝试诊断问题。您还可以使用详细选项提供有关以下行的额外信息。请参阅:h '详细'其选项。

关于debugging - 如何调试 VimL 中的问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21771522/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com