ভিম থেকে বের না হয়ে একটি বাফার বন্ধ এবং আনলোড করুন


54

প্রায়শই, আমি কিছু তথ্য অস্থায়ী বাফারে লোড করব এবং তারপরে এটি বন্ধ করব :clo!। তবে এটি nohiddenসেট করে নিলেও পুরোপুরি আনডোল করার চেয়ে এটি বাফারটি গোপন করে । আমি এই ক্লান্তিকরটিকে খুঁজে পাই যেহেতু আমি ভিম ছাড়ার সময় অতিরিক্ত কনফার্মেশন পাই, আমি ইতিমধ্যে (ভেবেছিলাম) ফেলে দেওয়া সামগ্রী সম্পর্কে।

আমি কেবল :q!পরিবর্তে এটি ব্যবহার করতে পারি , তবে এটি aোকা একটি খারাপ অভ্যাস কারণ এটি কেবলমাত্র ভিম থেকে প্রস্থান করবে যদি কেবল একটি বাফার বাকি থাকে, যা বিরক্তিকরও হয়। সবচেয়ে খারাপ, যদি আমি টাইপ করি তবে আমি :qa!অনেক কাজ হারাতে পারি।

একটি মধ্যম স্থল আছে কি? আমি সত্যিই এমন কিছু কমান্ড চাই যা বর্তমান বাফারটিকে হত্যা করে তবে ভিম থেকে বের হয় না। আমি এটি ভিমস্ক্রিপ্টে লেখার বিরোধী নই, তবে আদেশটি ইতিমধ্যে উপস্থিত থাকলে আমি এড়াতে চাই।

উত্তর:


69

ঠিক তা করার জন্য কমান্ড রয়েছে: :bdeleteবা ঠিক :bd। ডিফল্টরূপে এটি বর্তমান বাফারটি আনলোড করবে। অন্যান্য বাফারটি আনলোড করতে, প্রথমে :buffersকমান্ড সহ সমস্ত বাফারগুলির তালিকা পান এবং তারপরে আপনি :bdএটি সরিয়ে দেওয়ার পরে নম্বরটি নির্দিষ্ট করতে পারেন । এছাড়াও :bd+ space+ tabবাফার নাম ব্যবহার করে সম্পূর্ণ করার অনুমতি দেয়।


1
এটি সর্বশেষ উন্মুক্ত বাফারে কাজ করবে যা আমি যা চেয়েছিলাম ঠিক তা নয় তবে যেহেতু এটি ছাড়েনি, এটি আমার উদ্দেশ্যগুলির পক্ষে যথেষ্ট ভাল।
কেভিন

ভিএম-বিবি প্লাগইনটি আপনি যা খুঁজছেন তা হতে পারে: github.com/moll/vim-bbye
alxndr

1
এই কাজ করে না VI
স্মৃতিভারাতুর

এছাড়াও, অন্তর্নির্মিত :ls:buffers
উপন্যাসটি

এটি বাফারটি আনলোড করে না। এটি আসলে এটি বন্ধ করে না। এটি কেবল 'বুফলিস্ট' আনসেট করে। vim.wikia.com/wiki/Vim_buffer_FAQ
বিটিআরইউ

27

আপনি: bwipeout (বা: bw) কমান্ডটি ব্যবহার করে কোনও বাফার পুরোপুরি মুছতে পারেন। এটি আপনি এতে যুক্ত করেছেন এমন কোনও চিহ্ন, বিকল্প সেটিংস ইত্যাদি মেমরি থেকে বাফারটিকে পুরোপুরি সরিয়ে দেয়। একইভাবে: বিডিলেট (বা: বিডি) বাফারটি সরিয়ে দেয় তবে এটিকে মেমোরিতে রেখে দেয় এবং চিহ্ন এবং বিকল্পের সেটিংস রাখে।

টম হেলের মন্তব্য অনুসারে, ভিম ডকুমেন্টেশনগুলি: বিডি ওভার: বিডব্লিউটি ব্যবহার করার পরামর্শ দেয় যতক্ষণ না আপনি জানেন যে আপনি কী করছেন। আমি ব্যবহার করার ঝোঁক: বিডব্লু কারণ মেমরি থেকে বাফারকে পুরোপুরি মুছে ফেলার মত ধারণা, এবং আমি আমার বাফারটি বন্ধ করার পরেও এগুলি আবশ্যক হওয়ার জন্য প্রয়োজনীয় চিহ্নগুলি, বাফার-নির্দিষ্ট বিকল্প সেটিংস ইত্যাদি ব্যবহার করি না।

ছাড়ুন (: q) কমান্ডের মতো, বাফার পরিবর্তিত হলে ভিম একটি ত্রুটি দেবে। এটির উদ্দেশ্যে, আপনি প্রম্পটটি দমন করার জন্য আদেশের পরে একটি বিস্ময়বোধক পয়েন্ট যুক্ত করতে পারেন। অন্য একটি বিকল্প, প্রত্যেকটিতে বিস্ময়বোধক পয়েন্ট যুক্ত করার পরিবর্তে, আপনার ভিআইএমআরসিতে "সেট কনফার্ম" যুক্ত করা। এই সেটটি দিয়ে, ভিএম আপনাকে ফাইলের পরিবর্তনগুলি সংরক্ষণের জন্য অনুরোধ করবে।

: বুফডো একটি দরকারী কমান্ড যা সমস্ত সক্রিয় বাফারগুলিতে অন্য একটি কমান্ড সম্পাদন করে। বিউডফো:: বিডি কমান্ডের সাথে: বুফডো কমান্ডের সংমিশ্রণ আপনাকে একবারে সমস্ত সক্রিয় বাফারগুলি মুছে ফেলতে দেয়। ত্রুটিগুলি দমন করতে আপনি এখনও বিস্ময়বোধক পয়েন্টটি ব্যবহার করতে পারেন তবে আপনি এটি পরে রাখেন কিনা: বুফডো, পরে: বিডাব্লু, বা উভয়ের পরেও প্রতিটিটির জন্য পৃথক ফলাফলের কারণ রয়েছে:

:bd          - deletes the current buffer, error if there are unwritten changes
:bd!         - deletes the current buffer, no error if unwritten changes
:bufdo bd    - deletes all buffers, stops at first error (unwritten changes)
:bufdo! bd   - deletes all buffers except those with unwritten changes
:bufdo! bd!  - deletes all buffers, no error on any unwritten changes

:bw          - completely deletes the current buffer, error if there are unwritten changes
:bw!         - completely deletes the current buffer, no error if unwritten changes
:bufdo bw    - completely deletes all buffers, stops at first error (unwritten changes)
:bufdo! bw   - completely deletes all buffers except those with unwritten changes
:bufdo! bw!  - completely deletes all buffers, no error on any unwritten changes

:set confirm - confirm changes (Yes, No, Cancel) instead of error

এখানে আরও কয়েকটি দরকারী বাফার কমান্ড রয়েছে:

:ls          - list open buffers
:b N         - open buffer number N (as shown in ls)
:tabe +Nbuf  - open buffer number N in new tab
:bnext       - go to the next buffer (:bn also)
:bprevious   - go to the previous buffer (:bp also)

বাফার হ্যান্ডলিংয়ে আরও অনেক কিছু রয়েছে যা এই প্রশ্নের আওতার বাইরে। এক
নজরে দেখুন: http://vim.wikia.com/wiki/Vim_buffer_FAQ http://vimdoc.sourceforge.net/htmldoc/windows.html#buffers


আপনি দয়া করে এই উত্তরে কিছু ব্যাখ্যা যোগ করতে পারেন?
চিরসবুজ

সহায়তা বলছে "আপনি কী করছেন তা যদি না জানেন তবে এটি ব্যবহার করবেন না", যা :bdবেশিরভাগ ক্ষেত্রে পছন্দ হয়
টম হেল

1
@ টমহেল :bw"বাফারের সাথে সম্পর্কিত সমস্ত কিছুই হারিয়ে গেছে। এই বাফারের সমস্ত চিহ্নই অবৈধ হয়ে যায়, বিকল্পের সেটিংসটি হারিয়ে যায় ইত্যাদি" এর বাইরে আর কী করে তা জানতে পেরে ভালো লাগবে " এটি আমার কাছে পুরোপুরি যুক্তিসঙ্গত বলে মনে হচ্ছে যদি আমি কোনও বাফার 'বন্ধ' করতে চাই তবে আমি ভিমকে পুরোপুরি ছেড়ে দিলে এমন হবে।
কেনি এভিট

আমি পছন্দ করি: বিডব্লু ওভার: বিডি কারণ আপনি যদি ব্যবহার করেন: বিডি এবং তারপরে শেষ ব্যবহৃত বাফারে যেতে <ctrl - press> টিপুন, এটি এটিকে স্মৃতি থেকে তুলে আনবে। : বিডব্লিউ আমাকে আরও নিয়ন্ত্রণ দেয় এবং আমি যা চাই তা করি ^^
li

এটা অসাধারণ! ধন্যবাদ @ Soylent17!
অ্যাপোলো
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.