আমি কীভাবে ডিস্ক থেকে বর্তমান ওপেন ফাইলটি ভিএম এর মধ্যে থেকে মুছতে পারি? বাফারটি বন্ধ করেও ভাল লাগবে।
আমি দেখতে পাচ্ছি যে আপনি এর জন্য NERDTree ব্যবহার করতে পারেন , তবে আমি এই প্লাগইনটি ব্যবহার করি না।
আমি কীভাবে ডিস্ক থেকে বর্তমান ওপেন ফাইলটি ভিএম এর মধ্যে থেকে মুছতে পারি? বাফারটি বন্ধ করেও ভাল লাগবে।
আমি দেখতে পাচ্ছি যে আপনি এর জন্য NERDTree ব্যবহার করতে পারেন , তবে আমি এই প্লাগইনটি ব্যবহার করি না।
উত্তর:
বাহ্যিক সরঞ্জাম যেমন rm (1) ব্যবহার করা ভাল, তবে delete()
ফাইলগুলি মোছার জন্য ভিমের নিজস্ব কার্যকারিতাও রয়েছে। এটি পোর্টেবল হওয়ার সুবিধা রয়েছে।
:call delete(expand('%'))
এটি প্রকাশ করার একটি বিকল্প উপায় হ'ল :call delete(@%)
এটি %
(বর্তমান ফাইল) নিবন্ধক (@ অ্যাকোলেড দ্বারা টিপ) ব্যবহার করে।
বর্তমান বাফারকে পুরোপুরি শুদ্ধ করার জন্য, ডিস্কে ফাইল উপস্থাপনা এবং ভিম বাফার উভয়ই যুক্ত করুন :bdelete
:
:call delete(expand('%')) | bdelete!
আপনি সম্ভবত আপনার পছন্দ অনুযায়ী এটি মানচিত্র করতে চাইবেন।
r
কমান্ড ভাঙতে চাই না ! আপনার ম্যাপিং এর সাথে আরও ভাল উপসর্গ <Leader>...
।
nnoremap <C-Del> :call delete(expand('%'))<CR>
তবে দুর্ঘটনাক্রমে ঘটলে বাফারটি আমি বন্ধ করি না; তাহলে আপনার এখনও এটি সংরক্ষণ করার সুযোগ রয়েছে।
:call delete(@%)|q!
← সংক্ষিপ্ত রূপটি (আপনি যদি এটি মানচিত্র করতে না চান)। (বাফারটি রয়ে গেছে :ls
এবং এইভাবে পুনরুদ্ধার করা যেতে পারে :b
; এটি ফাইলের নাম এবং বাফার অপশন বজায় রাখে, তবে ফাইল সামগ্রী নয়))
:call delete(@%)|bd!
এবং ব্যবহার :ls!
সঙ্গে :b
পুনরুজ্জীবিত করার।
কটাক্ষপাত একটি তেজ আদেশের সঙ্গে মুছে ফেলুন ফাইল । মন্তব্য বিভাগে আপনার জন্য খুঁজছেন তা থাকতে হবে:
মূলত, আরএম বর্তমান ফাইলটি মুছবে; আরএম বর্তমান ফাইলটি মুছে ফেলবে এবং একসাথে বাফারটি (সংরক্ষণ না করে) ছাড়বে।
বিকল্পভাবে, আপনি বর্তমান ফাইলটি সরাতে কেবল শেল কমান্ড জারি করতে পারেন:
:!rm %
!rm %
, যখন ভিফ আবার বাফারে ফিরে আসে তখন কি সতর্কতা এড়ানোর কোনও উপায় আছে?
%
উদ্ধৃতি সহ): !rm "%"
।
%
(ফাইলপ্যাথ ( ভিআইএম টার্মিনোলজিতে " ফাইলের নাম ") হিসাবে, প্রকৃত %:p
ফাইলপ্যাথের পরিবর্তে আপনি অন্য নামের ডিরেক্টরিতে একই নামের একটি ফাইল মুছে ফেলার সামান্য ঝুঁকি নিয়ে চালান, আপনি যদি ভুলে গিয়ে থাকেন তবে :cd
সেখানে। অতএব আমি দৃ strongly়রূপে এটির %:p
পরিবর্তে %
আপনি যদি এটিকে মানচিত্র করেন তবে তা ব্যবহার করার পরামর্শ দিচ্ছি ।
কখনও কখনও একটি সাধারণ সমস্যা এমনকি একটি প্লাগইন একটি আকর্ষণীয় সমাধান হতে পারে। এক্ষেত্রে আমরা ভাগ্যবান যেহেতু এখানে সর্বশক্তিমান টিম পোপের দ্বারা নপুংসক.ভিম রয়েছে ।
নিজস্ব ভাষায় নপুংস.ভিম সরবরাহ করে
ইউনিক্স শেল কমান্ডগুলির জন্য সর্বাধিক প্রয়োজন শিম কমান্ড sugar একই সাথে একটি বাফার এবং অন্তর্নিহিত ফাইলটি মুছুন বা নামকরণ করুন। কুইকফিক্স তালিকায় একটি
find
বা একটি লোড করুনlocate
। ইত্যাদি।
পারফেক্ট এটি আমাদের যা প্রয়োজন তা রয়েছে, এবং আমরা যদি ইউনিক্স সিস্টেমে থাকি তবে কিছু অতিরিক্ত সরঞ্জাম থাকে।
আপনি যে আদেশটি সন্ধান করছেন তা হ'ল
:Remove!
আবার, এটি remap যদি আপনি এটি অনেক প্রয়োজন, যেমন :nnoremap <Leader>rm :Remove!<CR>
।
mv
, mkdir
, find
, ইত্যাদি অত্যন্ত সুপারিশ।
আমি ভিআইএম এর মধ্যে থেকে ফাইলগুলি মুছতে সক্ষম হতে চাই, তবে এককথায় বা অন্য কোনও কারণে, এখনও সংস্করণ নিয়ন্ত্রণে নেই এমন দুর্ঘটনাক্রমে গুরুত্বপূর্ণ কাজ মুছে ফেলার বিষয়ে আমি ভৌতিক। @Glts এবং @accolade থেকে পূর্ববর্তী তথ্যগুলি কীভাবে ব্যবহার করতে হবে তার এই উত্তরটির সাথে একত্রিত করার জন্য আমি দরকারী বলে মনে করিconfirm
ছাড়ার আগে কমান্ডটি প্রম্পট ।
এগুলি একসাথে রেখে আমি আমার সাথে একটি ফাংশন যুক্ত করেছি ~/.vimrc
, যা ফাইলটি মুছতে এবং বাফারটি বন্ধ করার আগে অনুরোধ করে এবং এটি একটি মূল সংমিশ্রণে ম্যাপ করে:
nnoremap <Leader>d. :call DeleteFileAndCloseBuffer()
fun! DeleteFileAndCloseBuffer()
let choice = confirm("Delete file and close buffer?", "&Do it!\n&Nonono", 1)
if choice == 1 | call delete(expand('%:p')) | q! | endif
endfun
আপনি যদি আমার চেয়ে কম প্যারানয়েডের একটি কীস্ট্রোক <CR>
হন তবে আপনি প্রথম লাইনে যুক্ত করতে পারেন
nnoremap <Leader>d. :call DeleteFileAndCloseBuffer()<CR>
এবং কেবল একবার রিটার্ন চাপতে হবে।
expand('%:p')
পরিবর্তে আমি @%
দৃ strongly়তার সাথে ব্যবহার করার পরামর্শ দিচ্ছি । (আমি যখন চাটুড হয়েছি যে আপনি আমার ইঙ্গিতটি অন্তর্ভুক্ত করেছেন :) ব্রেভিটি সুবিধা কোনও স্ক্রিপ্টে প্রান্তিক। আরও গুরুত্বপূর্ণ:) %:p
ফাইলের নামটি সম্পূর্ণ পরম পথে প্রসারিত করবে (যা এটি ইতিমধ্যে হতে পারে বা নাও হতে পারে)। কেবলমাত্র %
আপনি পরিবর্তে অন্য ডিরেক্টরিতে একই নামের একটি ফাইল মুছে ফেলার সামান্য ঝুঁকি নিয়ে চালান, যদি আপনি :cd
সেখানে এডটি ভুলে গিয়ে থাকেন তবে।
আপনি দুটি পদক্ষেপের সাহায্যে এটি করতে পারেন:
একটি নতুন ফাইল হিসাবে সংরক্ষণ করুন
: w newfilename
পুরানো ফাইল মুছুন
! আরএম ওল্ডফিলাম
এটি একটি অজনপ্রিয় মতামত হতে পারে তবে আপনার ফাইল ট্রি এক্সপ্লোরার (নেট্র / নের্ডট্রি) কোনও ফাইল মুছে ফেলার সহজ এবং নিরাপদ উপায় হতে চলেছে। এমনকি যদি ওপি NerdTree ব্যবহার না করে তবে অন্তর্নির্মিত প্লাগইন নেট্রও ঠিক তেমন কাজ করবে।
nnoremap rm :call delete(expand('%')) \| bdelete!<CR>
। আপনি আপনার উত্তরে যুক্ত করতে চাইতে পারেন।