vim定位有问题的脚本/插件的一般方法

在使用vim的过程中可能会遇到一些报错或其他不符合预期的情况,本文介绍一些我自己常用的定位有问题脚本/插件的方法(以下方法同样适用于neovim)

执行了某些命令的情况

这种情况最简单,使用:h 命令,如果插件有文档的话,可以很快的找到对应插件。

使用了快捷键的情况

使用:verbose nmap/imap 快捷键来查看最后一次设置该快捷键的脚本, 这在解决快捷键冲突的情况很有用。具体使用nmap还是imap需要根据使用快捷键时的模式来确定。

其他情况

有时候仅看问题的触发条件不能很好的确定问题所在,这种情况下采用先稳定复现,再逐步缩小范围的方法来排查。以我曾经遇到的一个问题为例,当时是在vue文件下,进入可视模式,选中一段文本后复制,跳转到目标位置后粘贴,发现粘贴的内容不是原来复制的文本,执行:reg后,发现匿名寄存器的内容被莫名其妙的修改了,因为这个问题我只在vue文件中发现过,所以怀疑这和某个vue相关的脚本有关,而这样的脚本我有不只一个。vim有个命令叫:scriptnames,可以列出当前加载的所有脚本,执行后大概有177个,排查起来比较繁琐,好在把vue文件后缀删掉后重新打开,问题就不在了,重新设置文件类型:set ft=vue问题再次出现,对比设置前后加载的脚本,相同的部分大概有157个,这部分就可以排除了,问题有很大可能就出在剩下的20个脚本中,这些脚本大概有三种来源,一种是自己写的,一种插件的,还有就是vim自带的,出问题的概率从左到右依次递减,重点关注前两种,注掉你觉得比较可疑的,或者使用二分法,每次注掉一半,不用几次就能找到了。

相关推荐
Apipi*4 小时前
30天速通Linux 第六章信号及信号处理
linux·运维·信号处理
天启HTTP5 小时前
爬虫防封核心原理:IP轮换机制与风控规避逻辑
linux·服务器·网络·爬虫·tcp/ip
广州浮点FLOATLIC7 小时前
许可证服务器迁移后软件打不开:研发 IT 怎样定位连接问题
linux·服务器·数据库
BLUcoding8 小时前
接口服务公网超时排查记录:SecureRandom 阻塞问题分析与解决
java·linux·springboot·aes·securerandom
AIgorithmGEEK8 小时前
[Linux]从手写报头到内核套路:序列化、反序列化与自定义协议全链路
linux·运维·服务器·网络·序列化·反序列化
Nil2088 小时前
leetcode 139单词拆分
linux·运维·服务器
Starry-sky(jing)8 小时前
BUG: unable to handle kernel paging request 完整排查:dmesg 四要素与三路定罪
linux·运维·服务器·内核·排障
mounter6258 小时前
从硬件互连到操作系统变革:CXL 技术演进与 Linux 内核工程挑战
linux·运维·服务器
xh didida10 小时前
Linux -- 基础IO
linux·服务器·开发语言·c++
zly350010 小时前
centos7 mount设备挂载 /dev/sda1/硬盘挂载
linux·运维·服务器