Tôi đã nhận thấy rằng phương pháp gấp của vim ảnh hưởng đến hiệu quả của tự động hoàn thành, ví dụ như C-N
chậm và cực kỳ C-X L
chậm trong các tệp có kích thước trung bình với foldexpr
s tương đối đắt tiền .
Tôi không thể thấy giá trị khi tham khảo Foldexpr trong khi chạy qua tự động hoàn thành, vì vậy tôi muốn tắt tính năng này bằng cách nào đó để tôi có thể tự động hoàn tất có thể sử dụng lại.
Bất kỳ đề xuất?
EDIT: Trường hợp thử nghiệm
Một trường hợp thử nghiệm: Không có plugin; và chỉ điều này, phải là hàm Foldexpr tối thiểu nhất có thể (và hoàn toàn vô dụng, ngoại trừ việc đếm các yêu cầu) trong .vimrc
:
let g:c = 0
function! Myfoldexpr()
let g:c = 1 + g:c
return '0'
endfunction
Bây giờ bắt đầu vim với một tài liệu trống. Chúng tôi sẽ sao chép 100 dòng tệp trợ giúp riêng của Vim và sau đó chạy dòng tự động hoàn thành, chọn đề xuất thứ 10, sau đó xem số lần gọi của Foldexpr.
:help
y100j:q
P:set foldexpr=Myfoldexpr()
:set fdm=expr
O<C-X><C-L><C-L><C-L><C-L><C-L><C-L><C-L><C-L><C-L><C-L><Esc>
:echo g:c
2088
Bây giờ, đó là một tệp 100 dòng, với các dòng tương đối ngắn và Foldexpr được gọi là 2088 lần (mặc dù 100 trong số này được thực hiện khi lần đầu tiên thiết lập Foldexpr). Foldexpr hiệu quả rõ ràng là tốt, nhưng các lập trình viên yêu cầu rất nhiều Foldexpr của chúng tôi, vì vậy chúng nhất thiết không tầm thường, và khi thời gian thực hiện của chúng được nhân lên vài nghìn, nó khiến bạn chọn giữa tự động hoàn thành hoặc thụt lề cho năng suất. Tham lam / lười biếng Tôi muốn có thể sử dụng cả hai! Ngoài việc cố gắng viết lại một số plugin gấp dựa trên Foldexpr được thiết lập khá tốt (Tôi đã thử viết lại php-Folding và sau nhiều ngày cố gắng tối ưu hóa nó thành trạng thái khả thi, tôi đã từ bỏ Foldexpr cho php), có lẽ có một cách để sử dụng ánh xạ để bật fdm=manual
trước khi tự động hoàn thành hoặc một số như vậy?
iHello<Esc>
, g:c
biến cũng được tăng lên 20
, sau đó thực oWorld<Esc>
hiện nó 38
... Vì vậy, số lượng đánh giá foldexpr
dường như không liên quan đến việc sử dụng hoàn thành ... Hãy thử tải Vim với một vimrc tối thiểu tập tin và xem nếu sự cố vẫn xảy ra, đó có thể là một cài đặt khác hoặc một plugin.
p
), tôi nghĩ những gì nó đang làm là làm điều đó cho mỗi nhân vật của ứng cử viên chèn.