আমি যতদূর জানি এখানে এটি করার মতো কোনও সেটিংস বা কিছু নেই। তবে সব হারিয়ে যায় না, আমরা অবশ্যই BufWritePre
অটোমন্ডমটি ব্যবহার করতে
পারি।
এটি ডিস্কে বাফার লেখার আগেই কার্যকর করা হয়। সুতরাং আমরা যদি ডিরেক্টরিটি উপস্থিত না থাকি তবে এটি তৈরি করতে পারি।
উদাহরণ স্বরূপ:
augroup Mkdir
autocmd!
autocmd BufWritePre *
\ if !isdirectory(expand("<afile>:p:h")) |
\ call mkdir(expand("<afile>:p:h"), "p") |
\ endif
augroup END
- ডিরেক্টরিটি উপস্থিত রয়েছে কিনা তা আমরা প্রথমে যাচাই করি
isdirectory
, অন্যথায় mkdir
ত্রুটি দেয়।
<afile>
আমরা সংরক্ষণ করতে চাইছি ফাইল বোঝায়; :p
এটি পুরো :h
পথের নাম (আপেক্ষিকের পরিবর্তে) এ প্রসারিত করার জন্য একটি পরিবর্তনকারী এবং শেষ পাথের উপাদানটি (ফাইল) সরিয়ে দেয়।
- আমরা
mkdir()
প্রয়োজন হলে কল । সমস্ত অভিভাবককে ডিরেক্টরি তৈরি করার p
জন্য আমাদের পতাকাটি প্রয়োজন mkdir()
(যেমন: এর ক্ষেত্রে nonexistent/more_nonexisting/file
।
আপনি অবশ্যই, mkdir()
ভিম কমান্ডলাইন থেকে কমান্ডটি চালাতে পারেন , বা এটি একটি কী-বাইন্ডে আবদ্ধ করতে পারেন, যেমন:
nnoremap <Leader>m :call mkdir(expand("%:p:h"), "p")<CR>
আমি %
পরিবর্তে এখানে ব্যবহার করেছি <afile>
, যেহেতু এটি কেবলমাত্র স্বতঃআপনার মধ্যেই বৈধ ( %
বর্তমানে সক্রিয় বাফারকে বোঝায়, :wa
উদাহরণস্বরূপ এটি কাজ করবে না ; <afile>
অটোকএমডি ট্রিগারকারী বাফারের ফাইলনামকে বোঝায়)।
আপনি চাইলে ডিরেক্টরি লেখার আগে একটি নিশ্চয়তাও চাইতে পারেন। আরও বিশদের জন্য এই প্রশ্নটি দেখুন: আমি কীভাবে ভিফকে বুফরাইটপ্রে অটোকমন্ডে কোনও ফাইল লেখা থেকে আটকাতে পারি?
উপরের স্নিপেট প্রথম লেখায় ডিরেক্টরি তৈরি করবে ( :w
)। আপনি চাইলে ডিরেক্টরিটি তৈরি করতে পারবেন যখন আপনি প্রথমে এটি খোলার সময় (অর্থাত্ টাইপ করার ঠিক পরে vim ...
) এর BufNewFile
পরিবর্তে অটোসএমডি ব্যবহার করে BufWritePre
।
Auto_mkdir নামে একটি প্লাগইন রয়েছে যা কার্যকরভাবে উপরেরটির মতো ।
এই পৃষ্ঠায়
কিছুটা প্রসারিত স্নিপেট রয়েছে যা আপনাকে জিজ্ঞাসা করে যে আপনি ডিরেক্টরিটি প্রথমে তৈরি করতে চান, যা কিছুকে দরকারী হিসাবে বিবেচনা করতে পারে। এটি এনকোডিংয়ের ফাইল নাম লেখার আগে এটি রূপান্তরিত করেছে:
call mkdir(iconv(expand("%:p:h"), &encoding, &termencoding), 'p')
এটি নিশ্চিত হওয়া দরকার কিনা তবে আমি নিশ্চিত নই তবে আপনি যদি অনেকগুলি এনকোডিংগুলি মিশ্রিত করেন এবং অদ্ভুত ফাইলের নাম পান তবে আপনি এটি চেষ্টা করতে পারেন।
উপরের auto_mkdir2.vim
সমস্তগুলি সহজ ইনস্টলেশনের জন্য একটি প্লাগইনে রেখেছি ।