ভাঁজ ব্যর্থ হয়: ভিম কোনও ভাঁজ খুঁজে পায় না


9

আমি কিছু পিএইচপি কোড ভাঁজ করার চেষ্টা করছি, এবং আমি পোস্টের শেষে ভাঁজ করার চেষ্টা করছি এমন কয়েকটি কোডের একটি কাট-ডাউন সংস্করণ অন্তর্ভুক্ত করেছি।

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

:help folding
:help fold-commands
:help foldmethod

:set foldmethod=syntax

zi - toggle folding

zj - move to top of next fold
zk - move to bottom of previous fold

za - toggle current fold open and closed
zo - open current fold
zc - close current fold

zA - toggle all current folds at the current cursor position
zO - open all current folds at the current cursor position
zC - close all current folds at the current cursor position

আমি কিভাবে ভাঁজ এটি তেজ পেতে (যেমন আমি মধ্যে কোড ভাঁজ করতে চান করতে পারেন {এবং }, বা মধ্যে (এবং )।

এখানে কিছু নমুনা কোড দেওয়া হয়েছে (কেবল এটি সিনট্যাক্টিকালি সঠিক এবং এটি ভিম কমান্ডগুলি কাজ করা উচিত তা দেখানোর জন্য):

function getTree() {

  return array(
    "node1" => array(
      "node11" => array(
        "node111" => "leaf111",
        "node112" => "leaf112",
        "node113" => "leaf113",
      ),
          "node12" => array(
        "node121" => "leaf121",
        "node122" => "leaf122",
        "node123" => "leaf123",
      ),
      "node13" => array(
        "node131" => "leaf131",
        "node132" => "leaf132",
        "node133" => "leaf133",
      ),
    ),
    "node2" => array(
      "node21" => array(
        "node211" => "leaf211",
        "node212" => "leaf212",
        "node213" => "leaf213",
      ),
          "node22" => array(
        "node221" => "leaf221",
        "node222" => "leaf222",
        "node223" => "leaf223",
      ),
      "node23" => array(
        "node231" => "leaf231",
        "node232" => "leaf232",
        "node233" => "leaf233",
      ),
    ),
    "node3" => array(
      "node31" => array(
        "node311" => "leaf311",
        "node312" => "leaf312",
        "node313" => "leaf313",
      ),
          "node32" => array(
        "node321" => "leaf321",
        "node322" => "leaf322",
        "node323" => "leaf323",
      ),
      "node33" => array(
        "node331" => "leaf331",
        "node332" => "leaf332",
        "node333" => "leaf333",
      ),
    ),
  );

}

উত্তর:


9

ভিম বিল্ট-ইন পিএইচপি সিনট্যাক্স ফোল্ডিংয়ের সাথে আসে না। তবে, যদি আপনার সমস্ত কোড যথাযথভাবে ইন্টেন্ট করা থাকে (যেমন আপনার উদাহরণ হিসাবে), আপনি একটি আলাদা ভাঁজ পদ্ধতি ব্যবহার করতে পারেন:

:set foldmethod=indent

5

phpfolding.vim এটি সরবরাহ করে। এই ওভারের সুবিধাটি :set foldmethod=indentহ'ল এটি "স্মার্ট" কারণ এটি প্রকৃত পিএইচপি সিন্ট্যাক্সকে দেখায়, এবং কেবল ইন্ডেন্টেশন নয়। পুনরায় পড়া থেকে:

  • এটি ভাঁজ সেটিংস মনে রাখে। আপনি যদি ফাংশন যোগ করেন এবং আবার স্ক্রিপ্টটি কার্যকর করেন তবে আপনার খোলা ভাঁজগুলি বন্ধ হবে না।
  • এটি মন্তব্য ব্লক বা স্ট্রিং লিটারালগুলিতে বন্ধনী দ্বারা বিভ্রান্ত হবে না।
  • তাদের পিএইচপিডোক মন্তব্য সহ শ্রেণীর বৈশিষ্ট্যগুলি ভাঁজ করা।
  • সমস্ত শ্রেণীর বৈশিষ্ট্যগুলি এক ভাগে ভাঁজ করা।
  • মূল চিহ্নিতকারী শৈলী ভাঁজ খুব ভাঁজ করে।
  • ভাঁজের একটি "**" পোস্টফিক্সিং নির্দেশ করে যে পিএইচপিডোকটি ভিতরে রয়েছে (কনফিগারযোগ্য)।
  • ভাঁজের পোস্টফিক্সিং করা একটি "** # @ +" নির্দেশ করে যে পিএইচপিডোকলক ভিতরে রয়েছে (কনফিগারযোগ্য)।
  • ভাঁজগুলিকে পোস্টফিক্সিং করা খালি লাইনগুলি ভাঁজটিতে অন্তর্ভুক্ত করার জন্য কনফিগার করা যেতে পারে।
  • নেস্টেড ভাঁজগুলি সমর্থিত (ফাংশনের অভ্যন্তরীণ ফাংশন ইত্যাদি)
  • ব্যক্তিগত, পাবলিক, সুরক্ষিত শ্রেণি ভেরিয়েবলগুলি + মাল্টি-লাইন প্যারাম ভাঁজ করা।
  • ক্লাসে ভাঁজ করা এখন ডিফল্টরূপে অক্ষম একটি বিকল্প।

.vimস্ক্রিপ্টটি ডাউনলোড করে এটি এনে ইনস্টল করুন ~/.vim/ftplugin/php/(বা যদি আপনি এটি ব্যবহার করেন তবে আপনার প্লাগইন পরিচালক ব্যবহার করুন)। এটি স্বয়ংক্রিয়ভাবে ভাঁজ হবে, যা দিয়ে আপনি অক্ষম করতে পারেন let g:DisableAutoPHPFolding = 1।


আমি এই প্লাগইন চেষ্টা করব। আমি নিশ্চিত যে এটি সরবরাহ করে এমন অতিরিক্ত বৈশিষ্ট্যগুলি কার্যকর হবে যখন কখনও কখনও কোড লেখার সময় বাক্য গঠন ত্রুটি থাকে। ধন্যবাদ।
— জন সন্ডারসন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.