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执行,则会安装matplotlibpylab等绘图包依赖。
如果是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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 使用BRVAH RecycleView 嵌套RecycleView点击Item里面内容无法响应

    使用BRVAH RecycleView 嵌套RecycleView点击Item里面内容无法响应

    2021年3月12日
    155
  • 一篇文章弄懂Java多线程基础和Java内存模型

    一篇文章弄懂Java多线程基础和Java内存模型文章目录一、多线程的生命周期及五种基本状态二、Java多线程的创建及启动1.继承Thread类,重写该类的run()方法2.通过实现Runnable接口创建线程类3.通过Callable和Future接口创建线程三、Java内存模型概念四、内存间的交互操作五、volatile和synchronized的区别写在前面:提起多线程大部门同学可能都会皱起眉头不知道多线程到底是什么、什么时候可以用到、用…

    2022年5月22日
    37
  • java8 list.sort 排序

    java8 list.sort 排序//按照List中对象的id属性升序list.sort(Comparator.comparing(User::getId))//按照List中对象的id属性降序list.sort(Comparator.comparing(User::getId).reversed());//多个条件升序list.sort(Comparator.comparing(User::getId).thenComparing(User::getDeId));//id升序,deId降序

    2022年8月12日
    5
  • cannot find the class file for_canyoufindtina

    cannot find the class file for_canyoufindtina今天第一次使用javah這個命令,一直報"Couldnotfindclassfile"這個錯誤,網上找了很多帖子,都是在說類名前面要加包的名字,還要設置什麼-classpath,最後發現其實這是個很違和的錯誤提示。我們一般會在.java文件所在目錄下用javac產生類文件.class,然後試圖使用javah命令產生c的頭文件.h,這個時候就會報上述錯誤了,即使加了-classpat…

    2022年9月24日
    1
  • MySql数据库导入sql错误 Unknown collation: ‘utf8mb4_0900_ai_ci‘

    MySql数据库导入sql错误 Unknown collation: ‘utf8mb4_0900_ai_ci‘

    2021年6月1日
    127
  • 记忆化搜索专题

    记忆化搜索专题什么是记忆化搜索呢?搜索的低效在于没有能够很好地处理重叠子问题;动态规划虽然比较好地处理了重叠子问题,但是在有些拓扑关系比较复杂的题目面前,又显得无奈。记忆化搜索正是在这样的情况下产生的,它采用搜索的形式和动态规划中递推的思想将这两种方法有机地综合在一起,扬长避短,简单实用,在信息学中有着重要的作用。  用一个公式简单地说:记忆化搜索=搜索的形式+动态规划的思想。  动态规划:就是一个最优化

    2022年7月26日
    9

发表回复

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

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