উত্তর:
এটি সম্ভবত একটি স্ক্র্যাচ বাফার, যার নাম দেওয়া যেতে পারে। সহায়তা থেকে:
আঁচড়ের দাগ
এমন পাঠ্য রয়েছে যা যে কোনও সময় বাতিল হতে পারে। উইন্ডোটি বন্ধ করার সময় এটি রাখা হয়, এটি অবশ্যই স্পষ্টভাবে মুছে ফেলা উচিত। সেটিংস:>
:setlocal buftype=nofile :setlocal bufhidden=hide :setlocal noswapfile The buffer name can be used to identify the buffer, if you give it a meaningful name.
এটি পাওয়া যাবে :help special-buffers
।
:edit
ফাইলটি সম্পাদনা করতে ফাইল ব্যবহার করেন তবে একটি নতুন বাফার স্বয়ংক্রিয়ভাবে তৈরি হবে। একটি খালি বাফার লিখে তৈরি করা যেতে পারে :enew
বা :new
বা :vnew
। ভিম বাফার এফএকিউ থেকে: vim.fandom.com/wiki/Vim_buffer_FAQ
:helpgrep scratch
এটিকে 10 এর মধ্যে একটি হিসাবে পরিণত করেছে (আমার ইনস্টলেশনতে) ফলাফল।
আমার মনে আছে এই বিষয়ে একটি ভিম টিপ (যা vim.wikia তে স্থানান্তরিত হয়েছে)।
স্ক্র্যাচ বাফার তৈরি করতে আমি ব্যবহৃত ফাংশনের সর্বশেষতম সংস্করণটি সেট করে:
'buflisted'
মিথ্যা'readonly'
(আমার ভিআইএমএল লাইব্রেরি প্লাগইন থেকে: lh-vim-lib)
function! lh#buffer#scratch(bname, where) abort
try
set modifiable
" The next function takes care of working around this damn E36
call lh#window#create_window_with(a:where.' sp '.escape(substitute(a:bname, '\*', '...', 'g'), '#%'))
catch /.*/
throw "Can't open a buffer named '".a:bname."'!"
endtry
setlocal bt=nofile bh=wipe nobl noswf ro
return bufnr('%')
endfunction
একটি 'স্ক্র্যাচ' বাফার এক জায়গায় অনিয়মিত সাময়িক সামগ্রী টাইপ করার জন্য একটি অনানুষ্ঠানিক শব্দ।
স্বীকৃত উত্তর এবং অন্য একটি প্রশ্নের অনুসরণ করে আমি আমার ভিএমআরসি-তে নিম্নলিখিত ফাংশনটি তৈরি করেছি।
ফাংশনটি বর্তমান উইন্ডোতে একটি ফাঁকা বাফার তৈরি করে এবং এর নাম দেয় 'স্ক্র্যাচ'। আপনি যদি প্রস্থান করার চেষ্টা করেন তবে স্ক্র্যাচ বাফার সুরক্ষিত নয়। আপনি ভিম ছেড়ে দিলে বা এটি মুছে ফেললেও এটি সংরক্ষণ না করা পরিবর্তন সহ প্রম্পট না করেই তা বাতিল করা হবে :bw
।
এই ফাংশনটি আপনার ভিএমআরসি-তে রাখুন। একটি স্ক্র্যাচ বাফার ব্যবহার তৈরি করতে :call Scratch()
।
function! Scratch()
split
noswapfile hide enew
setlocal buftype=nofile
setlocal bufhidden=hide
"setlocal nobuflisted
"lcd ~
file scratch
endfunction
আপনি লাইনগুলি ইয়াঙ্ক করে তাড়াতাড়ি পরীক্ষা করতে পারেন এবং তারপরেও :@"
। তারপরে আপনি চেষ্টা করতে পারেন :call Scratch()
।
একটি বিভক্ত ব্যবহার করা হয় যাতে আপনি স্ক্র্যাচ বাফার তৈরি করার সময় আপনার বর্তমান বাফার প্রভাবিত হয় না।
(আপনি যদি split
ফাংশনটি বাদ দিতে চান তবে আপনার স্ক্র্যাচ বাফারটি তৈরি করার সময় আপনার বর্তমান বাফারটি "লুকানো" (উইন্ডোতে আর থাকবে না) V বাফার)।
আপনি স্ক্র্যাচ ফাংশনটি কল করার সময় স্ক্র্যাচ বাফারটিতে সাধারণত আপনি যে বাফারে থাকতেন তার একই কাজ ডিরেক্টরি থাকে। স্ক্র্যাচ বাফার ওয়ার্কিং ডিরেক্টরিটি ঘরে পরিবর্তন করতে আমি একটি মন্তব্য আউট লাইনে অন্তর্ভুক্ত করেছি। এটি মজার স্ট্যাটাস লাইনের সাথে তাদের জন্য যা বর্তমান ডিরেক্টরিটির পথটি বাফার পথ হিসাবে প্রদর্শন করতে পারে। বা যারা কেবল এটি পছন্দ করেন তাদের জন্য।
আপনি স্ক্র্যাচ বাফারকে "তালিকাভুক্ত" বা "তালিকাভুক্ত" (ডিফল্ট অনুসারে তালিকাবদ্ধ) করতে সেট করতে পারেন। আপনি যদি এটি তালিকাভুক্ত না করে থাকেন :buffers
তবে আপনি এটি আপনার তালিকায় দেখতে পাবেন না তবে এটি এতে থাকবে :buffers!
। nobuflisted
আপনি যদি তালিকাভুক্ত থাকতে পছন্দ করেন তবে লাইনটি কমেন্ট করুন । তালিকাবদ্ধ বা তালিকাভুক্ত, আপনি যে :b scratch
কোনও উপায়ে সর্বদা আপনার স্ক্র্যাচ বাফারে পরিবর্তন করতে পারেন । স্ক্র্যাচ বাফার তালিকাভুক্ত করা এটিকে আরও কিছুটা অ্যাক্সেসযোগ্য করে তোলে। উদাহরণস্বরূপ :sball
এটি একটি বিভক্ত মধ্যে অন্তর্ভুক্ত করা হবে।
আপনি যদি :bw
স্ক্র্যাচ বাফারে (বাফার ওয়াইপ) ব্যবহার করেন তবে ভিম সামগ্রীটি মুছে ফেলবে এবং কোনও সতর্কতা ছাড়াই বাফারটিকে সরিয়ে ফেলবে। আপনি যদি :bd
স্ক্র্যাচ বাফারে (বাফার মুছুন) ব্যবহার করেন তবে ভিম সতর্কতা ছাড়াই সামগ্রীটি ফেলে দেবে এবং বাফারটিকে তালিকাভুক্ত করা হবে।
আপনি একাধিক স্ক্র্যাচ বাফার তৈরি করতে পারেন। ভিম অভিযোগ করতে শুরু করে তবে আপনার অতিরিক্ত অতিরিক্তগুলি রয়েছে।
buftype=hide
আগে সেট করেন তবে ডিরেক্টরিটি পরিবর্তন করা প্রয়োজনীয় নয়, কারণ বাফার নামটি "ফাইলের নামের মতো হ্যান্ডেল করা হবে না"। এছাড়াও, উল্লেখযোগ্য হতে পারে 'nobuflisted'
, যা বাফারকে আউটপুটে প্রদর্শিত হতে বাধা দেয় :ls
। আপনি এটিকে বাছাই করেছেন তবে স্পষ্ট করে এটি উল্লেখ করেননি।
buftype=hide
আসলেই বাজে, এবং হ্যাঁ, আমি আসলে কথা বলছিলাম buftype=nofile
:)। তবে আপনি যে আচরণটি বর্ণনা করেছেন তা আমি পুনরুত্পাদন করতে পারি না এবং তবুও বিশ্বাস করি যে বিবৃতিটি Vim buffer names are always filenames
ভুল। যদি আমি cd
আপনার ফাংশন থেকে লাইনটি সরিয়ে ফেলি এবং তারপরে এটি চালাই তবে আমার স্ট্যাটাসলাইনে বা আউটপুটটিতে কোনও পথ নেই, echo bufname('%')
আমি সম্ভবত ভাবছি বাফারের নামের পরিবর্তে আপনার স্ট্যাটাসলাইনে এটি কোনও সমস্যা। আপনার 'statusline'
বিকল্পটি কি সেট করা আছে?
statusline
মতো কিছু ব্যবহার করতে expand(&buftype == 'nofile' ? '%' : '%:p:~:h')
পারতাম তবে আমি মনে করি এখন আমরা ব্যক্তিগত পছন্দের ক্ষেত্রগুলিতে আছি। যদি আপনি পরিবর্তন ডিরেক্টরি সমাধানের সাথে স্থির থাকার সিদ্ধান্ত নেন, তবে :lcd
উইন্ডোটিতে পরিবর্তনগুলি সীমাবদ্ধ রাখার জন্য ব্যবহার করা ভাল but তবে আবার এটি আপনার ধরণের। যাইহোক, আমি মনে করি এটি একটি দুর্দান্ত উত্তর। +1 টি!
:h
আদেশটি এই সহায়তাটি অ্যাক্সেস করতে ব্যবহার করেছে?