ভিমে একাধিক ভাঁজ


9

আমি ভিমের ভাঁজ অপশনটি বেশ ব্যবহার করি এবং সাধারণত সিনট্যাক্সে ফোল্ডমেড সেট করেছি । সম্প্রতি আমি আবিষ্কার করেছি যে কাস্টম ভাঁজ যুক্ত করা সম্ভব, যেমন আমি পুরো ব্লকগুলিতে রাখতে পারি /*{{{*/এবং /*}}}*/এটি উত্স ফাইলের বৃহত অংশগুলিকে একসাথে গ্রুপিংয়ের জন্য খুব দরকারী। তবে সেই বৈশিষ্ট্যটি ব্যবহার করার জন্য আমাকে চিহ্নিত করতে ফোল্ডমেডথ সেট করতে হবে এবং আমি সিনট্যাক্স ভাঁজটি আলগা করব loose

ভিমে একই সাথে দুটি সক্রিয় ফোল্ডমেডথগুলি রাখা কি সম্ভব? set foldmethod=syntax,markerকাজ করে না.

উত্তর:


4

না, কঠোরভাবে বলতে গেলে ভিমে একই সাথে একাধিক ফোল্ডমথড সক্রিয় করা সম্ভব নয়।

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

  1. ফোল্ডমেডথ "সিনট্যাক্স" এ সেট করা থাকলে চিহ্নিতকারী এবং ম্যানুয়াল ফোল্ডিং পদ্ধতিগুলির সাথে কাজ করে এমন একটি ভাঁজ ("zf", "zd" এবং এই জাতীয়) তৈরি / সরানোর কমান্ডগুলি কাজ করবে না।

  2. ভাঁজ স্তরকে (যেমন " {{{1" / " }}}1") "বল প্রয়োগ" দ্বারা ভাঁজ স্তরকে এক দ্বারা বাড়ানোর / হ্রাস করার বিপরীতে (যেমন " {{{" / " }}}") সমস্যাযুক্ত; হয় আপনাকে ভাঁজ স্তরের সংখ্যাগুলি পুরোপুরি উপেক্ষা করতে হবে, বা বাক্য বাক্য সিন্ট্যাক্স ভিত্তিক ভাঁজ বিধিগুলির মধ্যে আপনাকে হস্তক্ষেপ করবে এবং সম্ভবত ভাঙ্গবে chance

আমি আপনাকে পরামর্শ দিচ্ছি যে আপনি যখন চিহ্নিতকারী ভিত্তিক ভাঁজ প্রয়োজন হবে, আপনি সেই পদ্ধতিটি পুরোপুরি ব্যবহার করুন। এটি কিছু অতিরিক্ত সময় এবং প্রচেষ্টা নিতে পারে, তবে আপনার যদি সত্যিকারের নমনীয়তা প্রয়োজন হয় তবে এটির পক্ষে এটি উপযুক্ত হতে পারে, বিশেষত দু'জনের একত্রিত করার চেষ্টা করার অসুবিধা বিবেচনা করে।


2

আমি একই জিনিস খুঁজছিলাম। যেহেতু আমি সিনট্যাক্স ফাইলটি হ্যাক করতে চাই না, তার পরিবর্তে আমার কাছে ফোল্ডমথিউডগুলির মধ্যে টগল করার জন্য একটি ম্যাপিং রয়েছে। এই মুহূর্তে আমি কেবল সিনট্যাক্স এবং মার্কারের মধ্যে স্যুইচ করছি:

nmap <Leader>ff :call <SID>ToggleFold()<CR>
function! s:ToggleFold()
    if &foldmethod == 'marker'
        let &l:foldmethod = 'syntax'
    else
        let &l:foldmethod = 'marker'
    endif
    echo 'foldmethod is now ' . &l:foldmethod
endfunction
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.