暂时禁用vim插件而不重新启动
我在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状态,并且还会在插件加载后执行此操作(由于存在完成,抛出,尝试|<代码有一些错误> ;你不能只在插件的末尾添加这个功能),可能是在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 .这是在源脚本的上下文中执行一行代码所必需的.通过需要保存的“状态”我的意思是 >映射 对于每个项目,可以还原插件所做的更改,但编码并不容易.并且< script>的存在映射的参数与nore的存在无法区分,尽管它们具有不同的行为. 如果你想写它,不要忘记如果资源是脚本,你的代码将重新启动. 另外,请注意SourcePre事件.它将有助于自动将线条添加到所有插件中. 不要忘记有更多地方可以修改,无法轻松保存和恢复:文件系统,解释器状态,打开的插件缓冲区等. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |