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


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.