VIM加速

VIM加速

使用VIM内置命令查看加载时间

参考:vim 启动速度优化的一些经验

$ vim --startuptime /tmp/vim.log ~/.vimrc +qall && cat /tmp/vim.log |sort -nrk 2

然后就能看到各个环节加载时间,以ms毫秒为单位,即小数点前面是毫秒数。
其中第一列是时间点,第二列是时长,我们主要关注第二列。
一般标准: ”200ms 以下感觉是很好的,超过 500ms 会觉的有点卡,如果超过 1s 就会觉得非常难受了“

一般影响速度的元素:

  • 语法高亮插件
  • 系统函数调用: has()和system()都属于系统级查询,效率极低,尽量减少使用。
  • Nerdtree等文件浏览插件相比于tagbar、fzf等都要多用10倍时间,出乎意料

image

使用第三方脚本分析VIM加载

startuptime.vim

参考:tweekmonster/startuptime.vim

安装好后直接用:StartupTime显示分析结果,非常快。

image

vim-plugins-profile

参考:hyiltiz/vim-plugins-profile

git clone https://github.com/hyiltiz/vim-plugins-profile.git
cd vim-plugins-profile

# 用Ruby生成分析结果 (较少依赖)
ruby ./vim-plugins-profile.rb   #命令行显示结果 无需依赖

# 用Ruby生成NeoVim的分析结果
ruby ./vim-plugins-profile.rb nvim

# 用Python生成分析结果(图片)
python vim-plugins-profile.py    #命令行显示结果
python vim-plugins-profile.py -p # 生成条形图,需要matplotlib和SciPy的Pylab依赖

# 命令行中查看分析结果
bash ./vim-plugins-profile.sh  #需要R语言和其插件依赖,较慢

如果是Bash执行,则会自动安装R语言等依赖R:ggplot2 。
如果是Python执行,则会安装matplotlib和pylab等绘图包依赖。
如果是Ruby执行,暂时不需要依赖。

推荐使用Ruby。

Ruby生成的命令行结果:
image

Python生成的命令行结果:
image

根据系统判断使用哪些插件

注意:VIM的has()属于系统级查询,效率极低,拖慢速度。尽可能减少使用。

完整OS列表:win32, win64, mac, macunix, unix

如果是Mac,则加载这个插件:

if has('mac')
    Plug 'xxxxxx'
endif
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/101215.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • ubuntu pycharm2021.12 profession激活码【2021.10最新】

    (ubuntu pycharm2021.12 profession激活码)本文适用于JetBrains家族所有ide,包括IntelliJidea,phpstorm,webstorm,pycharm,datagrip等。https://javaforall.net/100143.htmlIntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,上面是详细链接哦~F…

    2022年3月30日
  • XMind快捷键汇总

    XMind快捷键汇总在XMind:ZEN中,快捷键是可以大大提高绘图效率的存在。掌握常用的快捷键组合,就可以在键盘上运指如飞,快速地进行思维导图的绘制。还在等什么?感兴趣的朋友,下面就和小编一起来看看吧!XMind快捷键汇总在XMind:ZEN中,主要的快捷键类型有四种,分别是:文件(File)、插入(Insert)、编辑(Edit)和查看(View)。文件文件快捷键,指的是对当前…

    2022年6月6日
  • springmvc的执行流程详解[通俗易懂]

    1.什么是MVCMVC是ModelViewController的缩写,它是一个设计模式 2.springmvc执行流程详细介绍 第一步:发起请求到前端控制器(DispatcherServlet)第二步:前端控制器请求HandlerMapping查找Handler        可以根据xml配置、注解进行查找第三步:处理器映射器Handle

    2022年4月4日
  • c++反编译工具_pc下载软件

    c++反编译工具_pc下载软件  昨天在逆向某App的时候,发现有个加密工具类中的native方法是用C语言编写的,隐藏在so文件中。某大佬推荐逆向工具unidbg,能在pc端直接调用so文件中的函数,最终成功解决了问题。逆向工具之unidbg目录一、`unidbg`引入二、`unidbg`概述三、`unidbg`使用姿势1、下载`unidbg`项目2、导入到IDEA中①、解压压缩包②、打开`IDEA`,导入解压的项目3、测试`unidbg`4、运行自己的`so`文件①、编写`EncryptUtilsJni`类②、参数说明③、执行结果

    2022年9月18日
  • 拉链表实现及使用

    拉链表实现及使用一、概念历史拉链表,就是记录一个事务从开始一直到当前状态的所有变化的信息,拉链表可以避免按每一天存储所有记录造成的海量存储问题,同时也是处理缓慢变化数据的一种常见方式。假设企业拥有1000万的会员信息,每天有20万的会员资料变更,我们需要记录所有会议的历史变化记录,并至少保留两年,该怎么办?储存两年就是2x365x1000万=7300000000(70亿),如果储存…

    2022年10月16日
  • linux rhel7下安装python

    1.查看是否已经安装PythonCentos7默认安装了python2.7.5因为一些命令要用它比如yum它使用的是python2.7.5。使用python-V命令查看一下是否安装Pytho

    2021年12月29日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号