Vim

快速添加空行

nnoremap [<space>  :<c-u>put! =repeat(nr2char(10), v:count1)<cr>'[
nnoremap ]<space>  :<c-u>put =repeat(nr2char(10), v:count1)<cr>

设置之后,连续按下 5 [ 空格 在当前行上方插入 5 个空行。

运行时检测

需要的特性:+profile

VIM 提供了一个内置的运行时检查功能,能够找出运行慢的代码。:profile 命令后面跟着子命令来确定要查看什么。如果你想查看所有的:

:profile start /tmp/profile.log
:profile file *
:profile func *
<do something in Vim>
<quit Vim>

VIM 不断地在内存中检查信息,只在退出的时候输出出来。(Neovim 已经解决了这个问题用 :profile dump 命令)

看一下 /tmp/profile.log 文件,检查时运行的所有代码都会被显示出来,包括每一行代码运行的频率和时间。大多数代码都是用户不熟悉的插件代码,如果你是在解决一个确切的问题, 直接跳到这个日志文件的末尾,那里有 FUNCTIONS SORTED ON TOTAL TIMEFUNCTIONS SORTED ON SELF TIME 两个部分,如果某个 function 运行时间过长一眼就可以看到。

查看启动时间

感觉 VIM 启动的慢?到了研究几个数字的时候了:

vim --startuptime /tmp/startup.log +q && vim /tmp/startup.log

第一栏是最重要的因为它显示了绝对运行时间 ,如果在前后两行之间时间差有很大的跳跃,那么是第二个文件太大或者含有需要检查的错误的 VimL 代码。