আমি কীভাবে ভিমে একটি একক বাফারটি বন্ধ করব (অনেকের মধ্যে)?


445

আমি ভিমে বেশ কয়েকটি ফাইল খুলি, উদাহরণস্বরূপ, চলমান

vim a/*.php

যা 23 টি ফাইল খোলে।

আমি তারপরে আমার সম্পাদনা করব এবং নিম্নলিখিতটি দু'বার চালাব

:q

যা আমার সমস্ত বাফার বন্ধ করে দেয়।

আপনি কীভাবে ভিমে কেবল একটি বাফার বন্ধ করতে পারেন?


9
মনে রাখবেন যে আপনি পৃথক Vim উইন্ডোতে ফাইলগুলি vim -o a/*.php(বা -Oউল্লম্ব উইন্ডো ব্যবহার করতে) খুলতে এবং বাফার নেভিগেশন এড়াতে পারবেন - এটি কয়েকটি কয়েকটি ফাইলের জন্য দুর্দান্ত পদ্ধতি তবে 23 টি ফাইলের সাথে তাদের কেবল কয়েকটি লাইন / কলাম থাকবে প্রতিটি।
ক্যাসকেবেল

1
@ জেফ্রমি: এটি নির্দেশ করার জন্য আপনাকে ধন্যবাদ! আমি আগে কখনও অপশনটি ব্যবহার করি নি।
লিও লোপোল্ড হার্টজ 준영

উইন্ডো বিভাজনের বিষয়ে। আপনি যদি ইতিমধ্যে Vim এ থাকেন এবং একটি বিভাজনে অন্য ফাইলটি খুলতে চান: অনুভূমিক জন্য esp: উল্লম্ব জন্য evsp।
লান্জাফাম

উত্তর:


558

সাবধানতার একটি শব্দ: "ডাব্লুডাব্লু ইন বিডব্লিউ লেখার জন্য নয় তবে ওয়াইপাউটের পক্ষে!"

ম্যানুয়াল থেকে আরও:

: BD

বাফারটি আনলোড করুন [এন] (ডিফল্ট: বর্তমান বাফার) এবং এটি বাফার তালিকা থেকে মুছুন। যদি বাফারটি পরিবর্তন করা হয়, তবে [!] সুনির্দিষ্ট না করা হলে, যদি এই ক্ষেত্রে পরিবর্তনগুলি হারিয়ে যায় তবে এটি ব্যর্থ হয়। ফাইলটি প্রভাবিত নেই।

আপনি যদি জানেন যে আপনি কী করছেন, আপনি এছাড়াও ব্যবহার করতে পারেন: বিডাব্লু

: BW

লাইক |: বিডিলেট | তবে সত্যই বাফার মুছুন।


4
এছাড়াও ': এম, এনবিডি' করার বাফার নম্বরগুলি এম থেকে এন বা ': বিডি এন 1 এন 2 ...' করার সম্ভাবনা রয়েছে যেখানে এন # একটি বাফার নাম্বার
স্নোবাউন্ড

61
ম্যানুয়ালটি কেবলমাত্র :bw"যদি আপনি জানেন যে আপনি কী করছেন" ব্যবহার করতে বলেছিলেন যা আমি করি না, তাই আমি অনুমান করি যে আমি এটি ব্যবহার করব :bd
jbodyman

1
আমি প্রথমে এর দ্বারা বিভ্রান্ত হয়ে পড়েছিলাম - আমি বাফারগুলি বন্ধ করার জন্য একটি নতুন ট্যাব খুলছিলাম ... তবে ট্যাবে বাফারটি বন্ধ করে (সরাসরি ব্যবহার করে :bd) ট্যাবটিও বন্ধ করে দেয়। আপনি সম্ভবত যা চান তা হ'ল :bd n .. [m]বা :n,mbdনির্দিষ্ট সংখ্যা বা সংখ্যার পরিসীমা বন্ধ হওয়ার জন্য যা আপনি বাফারকে না
দেখেই

5
wwriteভিম ম্যানুয়াল অনুসারে কমান্ডের জন্য সংক্ষিপ্ত , এখানে "ওয়াইপআউট" এর উল্লেখ নেই। কমান্ডের বিবরণ ( help write) দিয়ে "বর্তমান ফাইলটিতে পুরো বাফারটি লিখুন" দিয়ে শুরু হয়।
amn

3
@amn আমি খুব বিভ্রান্ত করেছেন, কিন্তু তিনি অভিপ্রেত wমধ্যে bwকমান্ড মানে সম্পূর্ণ বিনাশ সে সম্পর্কে কথা হয় না wকমান্ড। তিনি এই সতর্কতাটি সেখানে রেখেছিলেন যাতে লোকেরা ভাবতে পারে না যে bwআদেশটি বাফার লিখনকে বোঝায় (এটি এর অর্থ বাফার মোছা মানে না means)
জন

351

এটি পূর্ববর্তী উত্তরগুলির দ্বারা সুস্পষ্ট না হলে:

: বিডি বর্তমান বাফারটি বন্ধ করে দেবে। আপনি বাফার তালিকাটি দখল করতে না চাইলে।


4
সন্ধানের আগে: বিডি এটি আমার কাছে কখনই বোঝায় না যে লোকেদের একটি করতে সমস্যা হয় না: এলএস -> ডক সংখ্যার জন্য স্ক্যান করুন -> নম্বর দ্বারা বাফার আনলোড করুন। লোকেরা কি আসলে এটি কার্যকর বলে মনে করে?
সোভেন্ড

3
@ স্যাভেন্ডটি অনেকগুলি বাফারের জন্য নিশ্চিত, তবে একাকী একের জন্য: বিডি সম্ভবত আরও কার্যকর।
ফারাউন


10
:bdকেবল বাফারটি বন্ধ করে (যেখানে :bwতার অর্থ) যেখানে সমস্ত ভেরিয়েবলগুলি সাফ করবে এবং এটি lsবাফার থেকে একেবারে মুছে ফেলবে ।
রেডএক্স

1
নীচে এইচএইচএইচের উত্তরটি আরও

103

আপনার বাফার আইডিটি পরীক্ষা করে দেখুন: বাফারগুলি

আপনি সেখানে পছন্দ মত বাফার তালিকা দেখতে পাবেন

1  a.php
2  b.php
3  c.php

আপনি যদি বাফার থেকে b.php অপসারণ করতে চান

:2bw

আপনি যদি বাফারগুলি থেকে সমস্ত সরিয়ে / বন্ধ করতে চান তবে

:1,3bw

4
আপনি এর সাথে সমস্ত বাফার মুছতে পারেন:% bw
cdleonard

7
বাফার আইডি চেক করতে শর্ট কাট: 2 সিটিআরএল-জি
স্নোবাউন্ড

43

Ls কমান্ডের ওউপুটটি ব্রাউজ করার পরিবর্তে বাফারের সংখ্যা উল্লেখ করে মুছে ফেলুন (আনলোড, মোছা ..) মুছে ফেলুন, আমি দেখতে পেলাম যে ফাইলের নাম ব্যবহার করা প্রায়শই কার্যকর।

উদাহরণস্বরূপ, আমি কিছু সূক্ষ্ম পয়েন্টের স্মৃতিগুলিকে রিফ্রেশ করার জন্য .txt ফাইল দুটি খোলার পরে .. বিভিন্ন ধরণের টেমপ্লেট হিসাবে ব্যবহার করতে কয়েকটি লাইন পাঠ্য অনুলিপি করুন এবং আটকান .. আমি নিম্নলিখিতটি টাইপ করব:

:bd txt <Tab>

নোট করুন ফাইলের নামের শুরুতে ম্যাচিং স্ট্রিংটি থাকা উচিত নয়।

উপরেরটি ফাইলের নামের তালিকা প্রদর্শন করে যা স্ক্রিনের নীচে 'txt' এর সাথে মেলে এবং: বিডি কমান্ডটি আমি প্রথমে টাইপড টাইপ করেছি, সম্পূর্ণ হওয়ার জন্য প্রস্তুত।

এখানে একটি উদাহরণ:

doc1.txt doc2.txt
:bd txt 

আমি 'txt' বিট দিয়ে ব্যাকস্পেস করতে পারি এবং ফাইলটি মুছতে চাইলে টাইপ করতে পারি, তবে যেখানে এটি সত্যিই সুবিধাজনক হয় তা হ'ল আমার দরকার নেই: আমি যদি দ্বিতীয়বার ট্যাব কীটি চাপি, তবে ভিম স্বয়ংক্রিয়ভাবে আমার আদেশটি সম্পূর্ণ করে প্রথম ম্যাচের সাথে:

:bd doc1.txt

যদি আমি এই বিশেষ বাফারটি থেকে মুক্তি পেতে চাই তবে কেবল এন্টার টিপুন।

এবং আমি যে বাফারটি মুছতে চাইছি তা যদি দ্বিতীয় (তৃতীয় .. ইত্যাদি) ম্যাচ হয়ে যায় তবে আমার কেবলমাত্র বিডি কমান্ড চক্রকে ম্যাচের তালিকাগুলি তৈরি করতে আমার ট্যাব কীটি চাপতে হবে।

স্বাভাবিকভাবেই, এই পদ্ধতিটি যেমন: বি ..: এসবি .. ইত্যাদি কমান্ডের মাধ্যমে প্রদত্ত বাফারে স্যুইচ করতে ব্যবহার করা যেতে পারে etc.

এই গোপনীয়তাটি 'লুক্কায়িত' ভিম বিকল্পটি সেট করার সময় বিশেষভাবে কার্যকর হয় কারণ বাফার তালিকাটি বেশ কয়েকটি স্ক্রিনটি .েকে দেয় এবং আমি যে বিশেষ বাফারটি সন্ধান করছি তা স্পষ্ট করে তোলে quickly

এই বৈশিষ্ট্যটির সর্বাধিক উপার্জন করতে, নিম্নলিখিত Vim সহায়তা ফাইলটি পড়া এবং সেই অনুযায়ী ট্যাব কমান্ড-লাইন সমাপ্তির আচরণটি সামঞ্জস্য করা ভাল যাতে এটি আপনার কর্মপ্রবাহের পক্ষে সবচেয়ে উপযুক্ত হয়:

:help wildmode

নীচের সেটিং থেকে আমি উপরে বর্ণিত আচরণের ফলাফল, যা আমি বাশ সম্পূর্ণকরণ অনুকরণ করার জন্য ধারাবাহিকতার জন্য বেছে নিয়েছিলাম:

:set wildmode=list:longest,full

বাফার নম্বর ব্যবহার করার বিপরীতে, এই পদ্ধতির যোগ্যতাটি হ'ল আমি সাধারণত প্রদত্ত ফাইল নামের কমপক্ষে কিছু অংশ মনে রাখি যে আমাকে প্রথমে: ls কমান্ডের মাধ্যমে তার নম্বরটি সন্ধান করার চেয়ে সরাসরি বাফারকে লক্ষ্য করতে দেয়।


40

ব্যবহার করুন:

  • :ls - বাফার তালিকা করতে
  • :bd#n- # বাফার নম্বর যেখানে বাফার বন্ধ করতে ( lsএটি পেতে ব্যবহার করুন )

উদাহরণ:

  • বাফার 2 মুছতে:

    :bd2
    

16

আপনি বাফারগুলির মাধ্যমে সাইকেল চালিয়ে বাতাস তৈরি করে ফাংশন কীগুলিতেও পরবর্তী এবং পূর্ববর্তী মানচিত্র করতে পারেন

map <F2> :bprevious<CR>
map <F3> :bnext<CR>

আমার ভিএমআরসি থেকে


2

কেমন

vim -O a a

এইভাবে আপনি আপনার বামে একটি ফাইল সম্পাদনা করতে পারেন এবং ডানদিকে পুরো দির নেভিগেট করতে পারেন ... সমাধান নয়, কেবল একটি চিন্তা ...


2

[সম্পাদনা: এটি একটি বোকামি পরামর্শ ছিল এমন সময় থেকে আমি ভিমকে ভালভাবে জানতাম না। দয়া করে বাফারের পরিবর্তে ট্যাবগুলি ব্যবহার করবেন না; ট্যাবগুলি হ'ল ভিমের "উইন্ডো বিন্যাস"]

ট্যাব ব্যবহার করে স্যুইচ করতে পারেন?

vim -p a/*.php ট্যাবগুলিতে একই ফাইলগুলি খোলে

gtএবং gTসামনে এবং পিছনে ট্যাব স্যুইচ করুন

:q কেবলমাত্র বর্তমান ট্যাবটি বন্ধ করে দেয়

:qa সবকিছু বন্ধ করে প্রস্থান করে

:tabo বর্তমান ট্যাব বাদে সবকিছু বন্ধ করে দেয়


2
আপনি কেন বলছেন যে ট্যাবগুলি ব্যবহার করা একটি মূর্খ পরামর্শ? আমি কেবলমাত্র জিজ্ঞাসা করি কারণ আমি সমস্ত সময় ট্যাব ব্যবহার করি ...: ^ /
নাট


1
এটি একটি দুর্দান্ত পোস্ট ছিল - এটি আমাকে আরও গভীর খনন করতে অনুপ্রাণিত করেছিল - আপনি কি তাকিয়েছেন wildmenu? এটি লাস্টিযুগলারের মতো (যদিও এটি সহজ) তবে এটি অন্তর্নির্মিত (যা আমার পক্ষে ভাল ছিল, কারণ লাস্টি জাগলারের প্রয়োজন হয় +ruby, এবং উবুন্টু ওয়ানরিক জাহাজের জন্য ডিফল্ট ভিম -ruby)।
নাট

@ নাট: হ্যাঁ, আমি ফাইলগুলি খোলার জন্য ওয়াইল্ডম্যানু ব্যবহার করছি, তবে যখন আপনার প্রকল্পে অনেকগুলি ফাইল থাকে, তখন এটি স্কেল করে না। এছাড়াও, vim-noxউবুন্টু থেকে প্রাপ্ত প্যাকেজের রুবি সমর্থন রয়েছে।
লিওনিড শেভতসভ

1

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

আমি ব্যবহার করি:

"" Buffer Navigation                                                                                                                                                                                        
" Toggle left sidebar: NERDTree and BufferGator                                                                                                                                                             
fu! UiToggle()                                                                                                                                                                                              
  let b = bufnr("%")                                                                                                                                                                                        
  execute "NERDTreeToggle | BuffergatorToggle"                                                                                                                                                              
  execute ( bufwinnr(b) . "wincmd w" )                                                                                                                                                                      
  execute ":set number!"                                                                                                                                                                                    
endf                                                                                                                                                                                                        
map  <silent> <Leader>w  <esc>:call UiToggle()<cr>   

যেখানে NERDTreeToggleএই তালিকার " " টাইপ করার মতোই :NERDTreeToggle। আপনার নিজের কনফিগারেশনের সাথে সংহত করতে আপনি এই ফাংশনটি সংশোধন করতে পারেন।


এর জন্য, বিবিআই প্লাগইনটি উপযুক্ত বা যা আপনার উইন্ডো বিন্যাসটি ব্যবহার করার সময় :bdeleteবা সংরক্ষণ করে :bwipeoutআমার উত্তর দেখুন ।
ওল্ফসন

0

উইন্ডোটি বন্ধ না করে বাফারটি বন্ধ করুন

আপনি যদি নিজের উইন্ডো বিন্যাস (বিভাজনের উপর ভিত্তি করে বর্তমান লেআউট) বিনষ্ট না করে বাফারটি বন্ধ করতে চান তবে আপনি বিবিয়ের মতো একটি প্লাগিন ব্যবহার করতে পারেন । এর ভিত্তিতে, আপনি কেবল ব্যবহার করতে পারেন

:Bdelete (instead of :bdelete)
:Bwipeout (instead of :bwipeout)

অথবা আপনার .vimrcমতো সহজে অ্যাক্সেসের জন্য একটি ম্যাপিং তৈরি করুন

:nnoremap <Leader>q :Bdelete<CR>

ভিমের উপর উপকার: বিডিলেট এবং: বিউইপআউট

থেকে প্লাগইন এর ডকুমেন্টেশন :

  • বাফারটি বন্ধ করুন এবং সরান।
  • সেই উইন্ডোতে অন্য ফাইলটি দেখান।
  • আপনার যদি অন্য কোনও ফাইল খোলা না থাকে তবে একটি খালি ফাইল দেখান।
  • যদি আপনি সেই উইন্ডোতে অন্য কোনও ফাইল সম্পাদনা করার সিদ্ধান্ত নেন তবে অকেজো [কোনও ফাইল নয়] বাফারগুলি ছেড়ে যাবেন না।
  • একাধিক উইন্ডোতে কোনও ফাইল খোলা থাকলেও কাজ করুন।
  • বিভিন্ন বাফার এক্সপ্লোরার এবং ট্যাববারগুলির সাথে এক-ওকে কাজ করুন।

: বিডিলেট বনাম: বিউইপআউট

থেকে প্লাগইন এর ডকুমেন্টেশন :

ভিফের একটি বাফার বন্ধ করার জন্য দুটি কমান্ড রয়েছে: :bdeleteএবং :bwipeout। প্রাক্তন বাফার তালিকা থেকে ফাইলটি সরিয়ে দেয়, এর বিকল্পগুলি, ভেরিয়েবলগুলি এবং ম্যাপিংগুলি সাফ করে। তবে এটি জাম্পলিস্টে থেকে যায়, তাই Ctrl-oআপনাকে আবার নিয়ে যায় এবং ফাইলটি আবার খোলে। যদি আপনি এটি চান না তবে ব্যবহার করুন :bwipeoutবা বিয়ের সমতুল্য :Bwipeoutযেখানে আপনি ব্যবহার করেছেন :bdelete

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