ভিআইএম আবেদন ছাড়াই ফাইল বন্ধ করবেন?


258

আমি ব্যবহার :eএবং :wসম্পাদনা করতে এবং ফাইলটি লিখতে কমান্ড। আমি নিশ্চিত নই যে ভিম না রেখে বর্তমান ফাইলটি বন্ধ করার জন্য "ক্লোজ" কমান্ড আছে কিনা?

আমি জানি যে :qকমান্ডটি কোনও ফাইল বন্ধ করতে ব্যবহৃত হতে পারে তবে এটি যদি শেষ ফাইল হয় তবে ভিমও বন্ধ হয়ে যায়; আসলে ম্যাক ওএসে ম্যাকভিম ছাড়তে পারে না। কেবলমাত্র Vim উইন্ডোটি বন্ধ আছে এবং আমি ব্যবহার করতে পারি Control- Nখালি Vim উইন্ডোটি আবার খোলার জন্য। আমি চাই যে ভিম ফাঁকা স্ক্রিন সহ খোলা থাকবে।

উত্তর:


343

এটি বাফার মুছে দেয় (যা ফাইলটি বন্ধ করার জন্য অনুবাদ করে)

:bd 

6
আপনার চেয়ে ওপি যা চেয়েছিল তার চেয়ে আমার চেয়ে ভাল, যদিও আমি পছন্দ করি: এনিউ কারণ আমি বাফার তালিকায় বাফার পছন্দ করি। :)
রাইটমিস

2
আমি যখন এটি করি, ভিম প্রথম বাফার দেখায় তবে আমি এখনও বাফারটি অ্যাক্সেস করতে পারি
মার্টিন অ্যান্ডারসন

18
বাফারকে পুরোপুরি মুছে ফেলার জন্য @ মার্টিন, ব্যবহার করুন :
বিডব্লু

43

ইতিমধ্যে উল্লিখিত হিসাবে, আপনি খুঁজছেন :bd, তবে এটি সম্পূর্ণরূপে বাফারটিকে সরিয়ে দেয় না, এটি এখনও অ্যাক্সেসযোগ্য:

:e foo
:e bar
:buffers
  1 #h   "foo"                          line 1
  2 %a   "bar"                          line 1
Press ENTER or type command to continue
:bd 2
:buffers
  1 %a   "foo"                          line 1
Press ENTER or type command to continue
:b 2
2   bar

আপনি :bwএটির পরিবর্তে এটি পুরোপুরি সরিয়ে ফেলতে চাইতে পারেন।

:bw 2
:b 2 
E86: Buffer 2 does not exist

:bwবেশ কিছুক্ষণ ধরে আমাকে বুগড করা সম্পর্কে জেনে নেই ।


3
শুধু মনে রাখবেন যে ভিআইএমের সহায়তা এটি সম্পর্কে বলছে :bw- "আপনি কী করছেন তা যদি না জানেন তবে এটি ব্যবহার করবেন না।"
মাটো

22

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

map fc <Esc>:call CleanClose(1)

map fq <Esc>:call CleanClose(0)


function! CleanClose(tosave)
if (a:tosave == 1)
    w!
endif
let todelbufNr = bufnr("%")
let newbufNr = bufnr("#")
if ((newbufNr != -1) && (newbufNr != todelbufNr) && buflisted(newbufNr))
    exe "b".newbufNr
else
    bnext
endif

if (bufnr("%") == todelbufNr)
    new
endif
exe "bd".todelbufNr
endfunction

12
এখন এই স্নিপেট কী করে?
dolzenko

1
কমান্ডগুলি প্রকৃতপক্ষে কমান্ডটি কার্যকর করার জন্য আপনি সম্ভবত <CR> চান>
dma

2
@ ডলজেনকো এটিকে 'মোডে' এফসি 'এবং' এফকিউ 'মানচিত্রটি সাধারণ মোডে বৈকল্পিকভাবে বর্তমান বাফারটি সংরক্ষণ করতে হবে তবে আসলটি মুছে ফেলার আগে একটি নতুন বাফারে স্যুইচ করুন। এটি আপনার সেট আপ করা যে কোনও বিভাজন সংরক্ষণ করে।
dma

একটি ভাল ধারণা মত মনে হচ্ছে। যদিও আমি এটি চেষ্টা করার পরে, আমি নিম্নলিখিত ত্রুটি বার্তাটি পাই: "ক্লিনক্লোজ ফাংশনটিকে নতুন করে সংজ্ঞায়িত করতে পারছি না: এটি ব্যবহৃত হচ্ছে"
জোনোনো

2
"চ" পুনর্নির্মাণ করবেন না। । । "চ" আসলে অতি কার্যকর super এই ম্যাপিংয়ের সাহায্যে আপনি কখনই "সি" বা "কিউ" এর জন্য "সন্ধান" করতে পারবেন না।
tandrewnichols

17
: [এন] বিডি [একাদশ] [!] *: বিডি * *: বিডেল * *: বিডিলেট * * ই 5716 *
: বিডি [একাদশ] [!] [এন]
                বাফারটি আনলোড করুন [এন] (ডিফল্ট: বর্তমান বাফার) এবং এখান থেকে মুছুন
                বাফার তালিকা। যদি বাফারটি পরিবর্তন করা হয় তবে এটি ব্যর্থ হয়,
                [!] সুনির্দিষ্ট না করা অবধি যদি কোন ক্ষেত্রে পরিবর্তনগুলি হারিয়ে যায় are
                ফাইলটি প্রভাবিত নেই। এই বাফারটির জন্য কোনও উইন্ডো
                বন্ধ করে দেয়। যদি বাফার [এন] হ'ল বর্তমান বাফার, অন্য একটি বাফার
                পরিবর্তে প্রদর্শিত হবে। এটি সর্বাধিক সাম্প্রতিক এন্ট্রি
                লাফের তালিকাটি যা লোড হওয়া বাফারকে নির্দেশ করে।
                আসলে, বাফার পুরোপুরি মুছে ফেলা হয় না, এটি সরানো হয়
                বাফার তালিকা থেকে | তালিকাভুক্ত-বাফার | এবং বিকল্প মান,
                বাফারের জন্য ভেরিয়েবল এবং ম্যাপিং / সংক্ষিপ্তকরণগুলি
                সাফ করা হয়েছে।

9

আপনি যদি ইতিমধ্যে শেষ ফাইলটি সংরক্ষণ করে থাকেন তবে :enewতা আপনার বন্ধু ( :enew!যদি আপনি শেষ ফাইলটি সংরক্ষণ করতে না চান)। নোট করুন যে মূল ফাইলটি এখনও আপনার বাফার তালিকায় থাকবে (যার মাধ্যমে এটি অ্যাক্সেসযোগ্য এক :ls)।


6

আপনি যদি কোনও ফাইল সংশোধন করেন এবং ভিম ছাড়াই এবং সংরক্ষণ না করে এটি বন্ধ করতে চান তবে আপনার টাইপ করা উচিত :bd!


3

:bdম্যাপ করা যায় আমি এটিকে ম্যাপ করি F4, Shift- F4কিছু পরিবর্তনের কারণে যদি আমাকে জোর করে বন্ধ করতে হয় তবে আমি আর চাই না।


2

Bufkill.vim প্লাগইন যোগ করা BD(যেমন কোন টুকরা বন্ধ না করেই বাফার মুছে ফেলতে ইত্যাদি bd) একা would।


1

আপনার .vimrc ফাইলটিতে নিম্নলিখিতটি সন্নিবেশ করুন এবং টিপে F4, এটি বর্তমান ফাইলটি বন্ধ করে দেবে।

:map <F4> :bd<CR>


-1

আমার একই সমস্যা আছে তাই আমি প্লাগইনটি তৈরি করেছি। এই প্লাগইনটি প্রতিস্থাপন: q এবং অন্যান্য কমান্ড এবং তারপরে উইন্ডোটি বন্ধ করে দেয়।

যদি আপনার এখনও সমস্যা থাকে তবে দয়া করে নিম্নলিখিত প্লাগইনটি ব্যবহার করার চেষ্টা করুন। https://github.com/taka-vagyok/prevent-win-closed.vim

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