加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

暂时禁用vim插件而不重新启动

发布时间:2020-12-15 21:45:51 所属栏目:安全 来源:网络整理
导读:我在Vim中使用 c-support.其中一个功能是自动 comment expansion. 当我从外部编辑器将代码粘贴到Vim中时,注释会被扩展(这会给我双重评论并弄乱粘贴 – 例如见下文).我希望能够禁用插件,粘贴,然后重新启用它,而无需重新启动Vim.我不确定这是否可行. SO问题her
我在Vim中使用 c-support.其中一个功能是自动 comment expansion.

当我从外部编辑器将代码粘贴到Vim中时,注释会被扩展(这会给我双重评论并弄乱粘贴 – 例如见下文).我希望能够禁用插件,粘贴,然后重新启用它,而无需重新启动Vim.我不确定这是否可行.

SO问题here,here和here都描述了禁用插件的方法,但它们都要求我关闭Vim,弄乱我的.vimrc或者类似的东西,并重新启动;如果我必须关闭Vim,我不妨cat file1>> MYFILE; vim myfile,然后在内部移动线,这将同样快.

是否有可能在运行vim时禁用插件而不重新启动,最好是以允许我映射热键toggle-plugin的方式(所以重新获取?/ .vimrc是好的;这可以映射到热键[我想,还没试过呢))?

搞砸了评论:

/*
 *  *  Authors:
 *   *    A Name 
 *    *
 *     *  Copyright:
 *      *    A Name,2012
 *       */

编辑:事实证明你可以:设置粘贴,:设置nopaste(引用:帮助粘贴,将“避免意外的影响[粘贴]”.(见评论).
但是,我仍然很好奇你是否可以根据原始问题禁用/启用插件,所以我将保持问题开放.

解决方法

没有修改插件源就没有通用的方法.一些插件(像我的所有插件)可以添加此功能(我的框架中有“卸载”功能,但主要用于更新而不重新启动vim,而不是暂时禁用某些功能).你可以肯定做的是为每个源插件文件添加一个函数调用,它将保存当前的vim状态,并且还会在插件加载后执行此操作(由于存在完成,抛出,尝试|<代码有一些错误&gt ;你不能只在插件的末尾添加这个功能),可能是在VimEnter,FileType和Syntax事件上.然后你需要有一个函数来恢复对插件所做的更改以及每个插件中的s:Execute函数定义,如下所示:

function s:Execute_I_do_not_expect_function_with_this_suffix_to_be_defined_by_the_plugin_so_I_add_it_to_avoid_name_collisions(s)
    execute a:s
endfunction

.这是在源脚本的上下文中执行一行代码所必需的.通过需要保存的“状态”我的意思是

>映射
>命令
>迹象
>功能
>菜单
>事件(自动命令)
>语法(在插件运行之前可能为空)
>选项
>一些vim,全局,缓冲区,制表符和窗口变量
> //脚本局部变量.虽然这里很简单:在脚本脚本的开头 – 本地范围是空的,您只需要在禁用时清空它.

对于每个项目,可以还原插件所做的更改,但编码并不容易.并且< script>的存在映射的参数与nore的存在无法区分,尽管它们具有不同的行为.

如果你想写它,不要忘记如果资源是脚本,你的代码将重新启动.

另外,请注意SourcePre事件.它将有助于自动将线条添加到所有插件中.

不要忘记有更多地方可以修改,无法轻松保存和恢复:文件系统,解释器状态,打开的插件缓冲区等.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读