প্রমান
কোনও বিকল্প ফাইল না থাকায় আপনি প্রকৃতপক্ষে কেবল প্লেইন ওল চালাচ্ছেন :bd, বর্তমান বাফারটি মোছা হচ্ছে ... এটি ছাড়া চেষ্টা করে #দেখুন এবং ফলাফলটি দেখতে পাবেন একই। অনুরূপ একটি জিনিস ঘটে থাকে :buffer, :sbufferএবং অন্ততপক্ষে দু'জন কমান্ড যা #যুক্তি হিসাবে গ্রহণ করে : তারা নীরবে এমন আচরণ করে যেন কোনও যুক্তি পাস না হয়ে যায়।
একই যুক্তি ব্যবহার করে, আপনি চেষ্টা যদি :bunload #এই ত্রুটি পাবেন: E90: Cannot unload last buffer। চালান :bunloadআবার কোন যুক্তি এবং, সঙ্গে, আপনি একই ফলাফল পাবেন।
দস্তাবেজগুলি
সুতরাং আমাদের কাছে প্রমাণ রয়েছে যে #"কিছুই না" (সম্ভবত একটি খালি স্ট্রিং) দ্বারা প্রতিস্থাপন করা হচ্ছে। আমরা কোথায় এখানে থেকে যান? আমি এই আচরণের উল্লেখ খুঁজতে চেষ্টা করার জন্য সাহায্যের ফাইলগুলির আশেপাশে কিছুক্ষণ তাকিয়েছিলাম। সুস্পষ্ট কিছুই ছিল না তবে :h cmdline-linesবলে (একটি পৃষ্ঠা বা দুটি পৃষ্ঠাতে স্ক্রোল করুন) ...
যখন '%' বা '#' অক্ষর ব্যবহার করা হয় যেখানে কোনও ফাইলের নাম প্রত্যাশিত হয়, সেগুলি বর্তমান এবং বিকল্প ফাইলের নামের কাছে প্রসারিত হয়।
আমি পড়েছি যে ভিমটি ফাংশনটি (যেমন ) বা কমপক্ষে সেখানে ব্যবহৃত একই অন্তর্নিহিত কোডের #মধ্য দিয়ে রাখছে ।expand()expand('#')
:h expand() বলেছেন:
প্রসারিত করুন .. বিশেষ কীওয়ার্ড। .. '%' বা '#' ব্যবহার করার সময় এবং বর্তমান বা বিকল্প ফাইলের নাম সংজ্ঞায়িত করা হয়নি, খালি স্ট্রিং ব্যবহার করা হয়।
পরিচিত শব্দ.
কোড
এখন উপরোক্তগুলির কোনওটিই চূড়ান্ত নয় বা কারণ সম্পর্কে কোনও ধারণা দেয় না কেন? তাই আমি খননের জন্য আরও কিছু সময় ব্যয় করেছি ... এবার কোডে in আমার সি খুব মরিচা এবং আমি কোন ভাল টুলস ইনস্টল না কিন্তু আমি একটি ফাংশন যে জন্য কিছু সেটআপ করে এটি পরিচালিত :bdeleteনামক do_bufdel()। এটি কমান্ড লাইন আর্গুমেন্ট প্রেরণ করে buflist_findpat()যার মাধ্যমে যদি #মুখোমুখি হয় তবে মানটি ফেরত দেয় curwin->w_alt_fnum। এটি বিকল্প বাফারের "বাফার নম্বর" ... যা আমাদের দৃশ্যে ইতিবাচক মান হতে পারে না। (এই রিটার্ন মানটি নির্বাচনের আগে Alt ফাইলটি বৈধ / অস্তিত্ব রয়েছে কিনা তা নিয়ে কোনও পরীক্ষা নেই))
আউট ব্যাক do_bufdel()একটি চেক 0 যে ক্ষেত্রে প্যারামিটার প্রক্রিয়াকরণ গোষ্ঠীর বাইরে নষ্ট হয়ে গেছে কম একটি বাফার সংখ্যার জন্য যে ফিরতি মূল্য বিরুদ্ধে তৈরি করা হয়। এর ফলে কোন :bdeleteকোডটি প্যারামিতিগুলি মূল কোডের কাছে উপস্থাপিত হবে না ... যা আমার পূর্ববর্তী অন্তর্দৃষ্টিগুলির সাথে সামঞ্জস্যপূর্ণ।
এরপর কি?
এটি এমনভাবে নকশাকৃতভাবে কাজ করছে বলে মনে হচ্ছে যে আমি কোনও পরিষ্কার ত্রুটির মতো দেখতে দেখলাম না। সম্ভবত বাদ দেওয়ার পাপ, যদিও ... একটি কর্নার কেস যা উপেক্ষা করা হয়েছে এবং এইভাবে কোনও ক্রেফিস হ্যান্ডলিং নেই। তবে কেবল এটি বিকাশকারীগণ যা এটি লিখেছেন তা নিশ্চিতভাবেই জানেন। সুতরাং চূড়ান্ত পদক্ষেপটি হবে তাদের ইনপুট পাওয়ার চেষ্টা করা। খ্রিস্টান বি হিসাবে যেমন ভিম-দেব তালিকায় জিজ্ঞাসা করা যায় সেই উপায়।
(নোট যে buflist_findpat()একটি ইউটিলিটি ফাংশন তাই এটি অনুমান করা যে কল্পনা একটি প্রসারিত প্রয়োজন হয় না হবে :bunload, :bufferইত্যাদি এটি ব্যবহার করা হয়, অত্যধিক ... যেটা থেকে সম্মান সঙ্গে তাদের সাধারণ আচরণ ব্যাখ্যা করবে #।)
NVIM v0.3.0-dev, আমি চেক করেছিলাম।