【问题标题】:Vim breaking when searching for certain files搜索某些文件时 Vim 中断
【发布时间】:2014-07-10 17:15:38
【问题描述】:

我更新了这个问题以更好地反映情况,当我第一次发布它时,我忽略了提供足够的信息。希望以下内容就足够了...

注意:我不会将我的 bundle 文件夹提交到 GitHub。如果您想查看我使用的插件,请参考这个 sn-p:https://github.com/Integralist/Fresh-Install/blob/master/provision-complete.sh#L28-L70


我的 Vim 编辑器中有一个与 CtrlP 插件相关的错误。搜索并非一直发生的文件时出现错误(其中,并非我输入的所有模式都会导致此错误)。因此,似乎只有某些模式会导致错误出现。

错误是:

cgetexpr bm#location_list(). 
E21: Cannot make changes, 'modifable' is off

确实重现该错误的示例模式是搜索文件“ni_council_map.js”。

我的 Vim 和 Shell 配置文件可以在这里看到:https://github.com/Integralist/Fresh-Install/tree/master/Shell

下面是发生错误的屏幕截图...

我花了几天时间(断断续续地)研究这个问题,但无法确定它的来源。任何关于问题原因是什么以及如何解决它的想法都将不胜感激。

【问题讨论】:

  • 您的配置似乎没有 CtrlP 甚至没有 bundle 目录,所以我们看不到您有哪些插件以及 bm#location_list() 函数来自哪里。
  • 可能你的 repo 不是最新的,因为我试过你的配置,似乎没有安装 ctrlP,但它没有显示任何错误
  • @romainl 请看我上面的更新
  • @AlexGuerrero 请看我上面的更新
  • 只有一个人投了反对票,不要这么快概括。我没有投反对票,但我认为这是因为您没有表现出自己寻找原因的意愿。您是否甚至尝试在您的配置中寻找 bm#location_list() 或者您是否希望我们查看该功能的 30 多个存储库?另外,您使用会话吗?

标签: vim terminal vim-plugin


【解决方案1】:

好的,所以这个问题的答案如下……

  • 当从剪贴板粘贴到 CtrlP 时,Vim 尝试模拟打字...但在 NORMAL 模式下
  • 我有 vim-bookmarks 插件,它映射 ma 以打开 QuickFix 窗口
  • 所以文件名ni_council_map.js 导致ma 部分触发QuickFix 窗口
  • 从那里开始尝试将文件名的其余部分作为命令p.js 执行
  • 这会导致出现E21 可修改错误

为了解决这个问题,我要么将ma 重新映射到<leader>ma,要么(更有可能)使用 CtrlP 的内置功能来处理粘贴:<Ctrl-\>,它允许您选择从哪里粘贴(在这种情况下是选项 @ 987654329@ 是剪贴板选项)。

我很少遇到其他插件出现这个问题,但很高兴知道它为什么会发生以及如何解决它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-09-26
    • 1970-01-01
    • 1970-01-01
    • 2010-12-17
    • 2010-10-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多