নিম্নলিখিতটি কেবলমাত্র একটি দ্রুত মক-আপ উত্তর (অর্থাত্ কার্যকর না হওয়া পর্যন্ত এটি কার্যকর) অথবা এটি কিছু না ভাঙার আগে পর্যন্ত :), তবে এটি দেখায় যে "এটি সম্ভব":
augroup completion
autocmd!
autocmd CompleteDone * call PostCompletion()
augroup END
function! PostCompletion()
if !empty(v:completed_item)
"check if text after current cursor position is part of the match
let crt_word = expand('<cWORD>')
let compl_word = v:completed_item['word']
let lcw = len(compl_word)
let leftover = strpart(crt_word, lcw)
let lfl = len(leftover)
if lfl > 0
let endcompl = strpart(compl_word, lcw - lfl)
if leftover ==# endcompl
let cpos = getcurpos()
normal dW
call setpos('.', cpos)
endif
endif
endif
endfunction
উপরের কোডটি যা করার চেষ্টা করে তা হ'ল: সমাপ্তির পরে , কার্সারের অধীনে থাকা ডাব্লুআরআরটি সম্পূর্ণ শব্দের চেয়ে দীর্ঘ হয় কিনা তা যাচাই করে এবং যদি তাই হয় তবে এটির 'বাকী' সম্পূর্ণ হওয়ার শেষ অংশের সাথে মিলে যায় কিনা তা আরও পরীক্ষা করে (উদাহরণস্বরূপ, "ফাংশন")। যদি এটি হয় তবে বাকী বাক্সটি মুছে ফেলা হবে (এটি কার্সার অবস্থান সম্পর্কে কিছু জিনিস ধরে নেয়)।
(আমি নিশ্চিত যে এগুলি সম্পাদন করার আরও চতুর উপায় রয়েছে এবং আমি সেগুলি দেখতে চাই!)