Bạn có thể sử dụng cơ chế hồ sơ riêng của vim:
vim --cmd 'profile start profile.log' \
--cmd 'profile func *' \
--cmd 'profile file *' \
-c 'profdel func *' \
-c 'profdel file *' \
-c 'qa!'
Sau khi chạy ở trên, bạn sẽ tìm thấy một tệp có tên profile.log trong thư mục hiện tại với tất cả các thông tin cần thiết. Để có được bảng thông tin cho mỗi tập lệnh tương tự như trình bày từng chức năng, hãy sử dụng (sau khi mở tệp này trong vim):
" Open profile.log file in vim first
let timings=[]
g/^SCRIPT/call add(timings, [getline('.')[len('SCRIPT '):], matchstr(getline(line('.')+1), '^Sourced \zs\d\+')]+map(getline(line('.')+2, line('.')+3), 'matchstr(v:val, ''\d\+\.\d\+$'')'))
enew
call setline('.', ['count total (s) self (s) script']+map(copy(timings), 'printf("%5u %9s %8s %s", v:val[1], v:val[2], v:val[3], v:val[0])'))
Nó sẽ không được sắp xếp, nhưng bạn luôn có thể sử dụng :sort
lệnh tích hợp nếu số lượng tập lệnh quá lớn.