আমি সম্পাদনার সময় সম্পর্কে কীভাবে প্রাচীনতম বাফার পেতে পারি তা নিশ্চিত নই, তবে তার পরিবর্তে, প্রাচীনতম অশিক্ষিত বাফারগুলি বন্ধ করার চেষ্টা করা যেতে পারে। কিছুটা এইরকম:
function CloseLast ()
python <<EOF
import vim
N = 10
listed_buffers = [b for b in vim.buffers if b.options['buflisted'] and not b.options['modified']]
for i in range (0, len (listed_buffers) - N):
vim.command (':bd' + str (listed_buffers[i].number))
EOF
endfunction
autocmd BufNew * call CloseLast()
মন্তব্য:
vim.buffersবর্তমান অধিবেশনে খোলা প্রতিটি বাফারের একটি তালিকা, সুতরাং এটিতে তালিকাভুক্ত বাফারগুলিও অন্তর্ভুক্ত রয়েছে। তালিকাটি যেভাবে ফিরে এসেছে তা একই নয় :ls।
- অতএব, আমাদের অবশ্যই লুকানো বা মোছা বাফারগুলি ফিল্টার করতে হবে। এটি ব্যবহার করে চেক করা যায়
options['buflisted']।
- একইভাবে,
options['modified']আমাদের বাফারটি সংশোধন করা হয়েছে কিনা তা পরীক্ষা করতে দিন।
N আপনি যে খোলার চান তা নামবিহীন, তালিকাভুক্ত বাফারগুলির সংখ্যা।
লাক হার্মিটের উত্তর থেকে ধন্যবাদ জানলাম যেখান থেকে আমি কীভাবে টাইমস্ট্যাম্পগুলি পেতে পারি, আপনি তার পরিবর্তে নিম্নলিখিতটি ব্যবহার করতে পারেন, প্রাচীনতম নিষ্ক্রিয়কে প্রথমে লাথি মেরে বের করার জন্য:
listed_buffers = (b for b in vim.buffers if b.options['buflisted'] and not b.options['modified'])
oldest_buffers = sorted (listed_buffers, key = lambda b: eval('getftime("' + b.name + '")'))
for i in range (0, len (oldest_buffers) - N):
vim.command (':bd' + str (oldest_buffers[i].number))