ভিমে কার্সারের নিচে একটি ফাইল তৈরি করুন


10

আমার কাছে ফাইলগুলির একটি তালিকা রয়েছে

file1.ext
file2.ext
...

আমার কার্সার যদি ফাইল 2.ext এর ভিতরে থাকে তবে আমি ফাইল 2.ext নামের সাথে একটি ফাইল কীভাবে তৈরি করব। gfশুধুমাত্র নতুন ফাইল তৈরির জন্য পছন্দ করুন (এটি একটি অনুমানিক পরিস্থিতি, কেবল ভাবা হয়েছে যে কোনও দিন সহায়ক হতে পারে)।

উত্তর:


17

আমার মনে যে প্রথম জিনিসটি আসে তা হ'ল touchকার্সারের নীচে ফাইল নামটি এতে প্রবেশ করা কমান্ডটি ব্যবহার করা ।

:map <silent> <leader>cf :!touch <c-r><c-p><cr><cr>

তবে প্ল্যাটফর্মগুলি জুড়ে একটি খাঁটি ভিম সলিউশন পোর্টেবল is অন্তর্নির্মিত ফাংশন writefileএকটি ফাইলের জন্য একটি লিখিত লিখে রেখেছে line স্বাভাবিকভাবেই, যখন ইনপুট তালিকাটি খালি থাকে, এটি একটি খালি ফাইল তৈরি করে। ( :help writefileবিশদ জন্য দেখুন।) আমরা এই পার্শ্ব প্রতিক্রিয়া সুবিধা নিতে পারেন:

:map <silent> <leader>cf :call writefile([], expand("<cfile>"), "t")<cr>

নোট করুন যে ফাইলের নাম নিষ্কাশনটি আলাদা expandপ্যাটার্ন ব্যবহার করে সামঞ্জস্য করা যেতে পারে (দেখুন :help expand())।

যাইহোক, যদি কেউ কোনও ফাইল তৈরি না করতে চান তবে কেবল সম্পাদনার জন্য এটি খোলার জন্য, কেউ একটি- gfমত ম্যাপিং সংজ্ঞায়িত করতে পারেন :

:map <leader>gf :e <cfile><cr>

যেখানে :eকমান্ডটি :tabeঅনুরূপ কমান্ডের সাথে প্রতিস্থাপন করা যেতে পারে ।


1
অধ্যাপনা জন্য +1 <cfile>পরিবর্তে<C-r><C-f>
sehe

2

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

আমি প্রথম চেষ্টা করেছি:

map <silent> <leader>cf :call writefile([], expand("<cfile>"), "t")<cr>` 

উপরের উত্তর হিসাবে বর্ণিত হিসাবে কাজ করে। তবে প্রথমে আমি ভেবেছিলাম এটি কাজ করছে না কারণ আমি ভিমে ফাইলটি খোলার আসলে দেখিনি। নীচের দ্বিতীয় বিট কোডটি ব্যবহার করা একটি নতুন ফাইল খুলবে - এটি আমি যা খুঁজছিলাম তা আরও বেশি। তাই আমি তাদের একত্রিত করে চেষ্টা করেছি:

map <leader>cf :e <cfile><cr>

তবে এটি কোনও উইকের জন্য কাজ করে না কারণ আপনি যখন উইকির সিন্ট্যাক্সের মতো সিন্ট্যাক্স ব্যবহার করে উইকে নতুন ফাইল তৈরি করার চেষ্টা [[the-new-file]]করেন তখন বন্ধনীগুলিতে ফাইলটির প্রসারণের অনুমতি দেয় না। তবে এই কাজ করার জন্য একটি নতুন ফাইল তৈরি করার সময় ভিমকে এক্সটেনশনটি জানতে হবে know এই ক্ষেত্রে আমি ব্যবহার করেছি:

    map <leader>cf :e <cfile>.md<cr>

যাতে আমি নতুন মার্কডাউন ফাইল তৈরি করতে পারি। এটি আরও কাস্টমাইজ করার উপায় রয়েছে (উদাহরণস্বরূপ, এক্সটেনশনের হার্ডকোডিং না করে) তবে উপরেরগুলি আমার প্রয়োজনের জন্য ঠিক কাজ করে। আমার যদি কখনও অন্য এক্সটেনশনের প্রয়োজন হয় (উদাহরণস্বরূপ। উইকি ফাইলটি সংরক্ষণ করার জন্য) আমি সম্ভবত সহজ রুটটি নিয়ে অন্য একটি মানচিত্র তৈরি করব:

    map <leader>cwf :e <cfile>.wiki<cr>

পার্শ্ব সুবিধা হিসাবে আপনি ইতিমধ্যে বিদ্যমান মার্কডাউন ফাইলটি খুলতে একই কমান্ডটি ব্যবহার করতে পারেন ( gfফাইলের এক্সটেনশনটি অনুপস্থিত থাকায় স্ট্যান্ডার্ড কমান্ডটি এখানে কাজ করবে না)।


gfযদি কাজ করে set suffixesadd=.wiki। আপনার একটি উন্নত সংস্করণ cfএটি সম্মান করবে suffixesadd, কমপক্ষে যেখানে কেবলমাত্র একটি আইটেম রয়েছে।
hjdivad
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.