কীভাবে ইনডেন্টেশন গাইড / লাইন যুক্ত করবেন


42

সাব্লাইম টেক্সট 2 এ, আপনি যেখানে আপনার ইন্ডেন্টেশন সেখানে উল্লম্ব গাইড পাবেন:

সাব্লাইম টেক্সট স্ক্রিনশট

তবে ভিমে আমি স্পষ্টতই তা করি না:

ভিএম স্ক্রিনশট

ভিমের মতো লাইনগুলি দেখানোর কোনও উপায় আছে কি? যাইহোক, আমার ইন্ডেন্টেশনটি 2 স্পেস।

:set tabstop=2 softtabstop=2 shiftwidth=2 expandtab

উত্তর:


39

ইউনিফাইড উত্তর:

আপনি যদি ট্যাব ব্যবহার করেন

আমি তালিকাচারগুলি ব্যবহার করে চেষ্টা করব:

:set listchars=tab:\|\ 
:set list

দ্রষ্টব্য: \উপরের শেষের পরে একটি স্থান রয়েছে ।

এই পদ্ধতিটি ভাল কারণ এটি এই জাতীয় জিনিস দেখানোর জন্য ভিমের অন্তর্নির্মিত সমর্থনটি ব্যবহার করে।

উদাহরণ আউটপুট:

|       if (1) {
|       |       func();
|       }

উপরের পাঠ্যের নমুনার স্ক্রিনশট

তবে, এটি নেতৃস্থানীয় স্থানগুলির জন্য কাজ করে না। @ জোশ পেট্রি দ্বারা চিহ্নিত হিসাবে, স্পেসগুলির জন্য কাজ করার জন্য একটি প্যাচ রয়েছে , তবে তারপরে আপনাকে ভিমটি পুনরায় সংকলন করতে হবে, যা এই উত্তরের বাইরে নয়।

আপনি যদি স্পেস ব্যবহার করে থাকেন এবং প্লাগিন ব্যবহার করে কিছু মনে করবেন না

বৈভব সাগর প্লাগিন ইনডেন্টলাইন এই কার্যকারিতাটি দেখায় points

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

45   ¦ var move = function(direction) {
46   ¦ ¦ if(!initialized) { initialize(); }
47 
48   ¦ ¦ if(shiftBoard(direction)) {
49   ¦ ¦ ¦ setTimeout(addRandomPiece, 100);
50   ¦ ¦ }
51   ¦ };

স্পেস সহ উদাহরণের স্ক্রিনশট shot

প্লাগইনটির জন্য Vim 7.3 বা তার পরে প্রয়োজন হয় এবং এটি সংস্করণের গোপন বৈশিষ্ট্যটির ক্লিভার ব্যবহার করে। প্রকৃতপক্ষে পাঠ্যটি আড়াল করার পরিবর্তে এটি বারে পাঠ্যের সাথে দর্শনীয় স্থানে প্রতিস্থাপন করে তবে আসল বাফারটি নয়। ফলস্বরূপ আপনি বারগুলি দেখেন তবে সেগুলি ফাইলে সংরক্ষণ হয় না (যেহেতু তারা প্রকৃতপক্ষে স্পেস)

বিচারকার্য স্থগিত রাখার আদেশ

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


প্রকৃতপক্ষে, আমি ট্যাবগুলির পরিবর্তে ফাঁকা স্থানগুলি ব্যবহার করছি। আমি আমার প্রশ্ন আপডেট করেছি।
aharris88

উহু. ঠিক আছে, তাহলে আরও গবেষণা প্রয়োজন হবে।
জন ও'ম।

1
তালিকার স্থানগুলি অ-অনুসরণীয় জায়গাগুলির জন্য কাজ করার জন্য একটি প্যাচ রয়েছে, যা আপনি মেলিং তালিকায় খনন করতে পারেন। এটি অবশ্য সরকারী বিতরণে গৃহীত হয়নি :(

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

গাইডরা কীভাবে উজ্জ্বলতার মতো ফাঁকা লাইনে হাজির হওয়া সম্ভব?
জেমস

19

আমি অন্য একটি বিকল্প ব্যবহার করি, যা আপনি যা চেয়েছিলেন ঠিক তেমন নয়, তবে একই কলামে কী রয়েছে তা সহজেই দেখানোর জন্য একই উদ্দেশ্য সাধন করে তা হল আপনার মধ্যে নিম্নলিখিতটি সেট করা vimrc:

set cursorcolumn
set cursorline

কার্সরক্লম চিত্র

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


পাইথন vi ব্যবহারকারীরা এই বৈশিষ্ট্যের জন্য মারা যাবেন
শুভ

18

সম্পূর্ণতার স্বার্থে, ইনডেন্ট গাইড প্লাগইনও রয়েছে, যা সাদা জায়গাগুলির রঙ পরিবর্তন করে ইনডেন্টেশন স্তরগুলি দেখায়। এটির 7.2 বা তার পরে সংস্করণ প্রয়োজন। এটি ব্যবহার করে যেহেতু tabstopএবং shiftwidthভেরিয়েবল, তাহলে সম্ভবত সরাসরি আপনার খাঁজ সেটিংসের জন্য কাজ করবে।

Imgur

একবার প্লাগইন ইনস্টল হয়ে গেলে আপনি কেবল :IndentGuidesEnableবা ব্যবহার করতে পারেন :IndentGuidesDisable। আপনি যদি টার্মিনাল ভিএম ব্যবহার করে থাকেন তবে ম্যানুয়াল অনুসারে নোট করুন,

এই মুহুর্তে টার্মিনাল ভিমের কেবলমাত্র প্রাথমিক সমর্থন রয়েছে। এর অর্থ হ'ল রঙগুলি আপনার রঙের চেমের উপর ভিত্তি করে স্বয়ংক্রিয়ভাবে গণনা করা হবে না। পরিবর্তে, ব্যাকগ্রাউন্ড অন্ধকার বা হালকা সেট করা আছে তার উপর নির্ভর করে কিছু প্রিসেট রঙ ব্যবহার করা হয়।

স্ক্রিনশটের জন্য গাইডের রঙ পরিবর্তন করতে, আমি নিম্নলিখিতটি ব্যবহার করেছি

let g:indent_guides_auto_colors=0

সুতরাং বাফারগুলি অদলবদল করা হলে রংগুলি পুনরায় গণনা করা যায় না এবং তারপরে রঙগুলি ব্যবহার করে সেট করুন

hi IndentGuidesEven ctermbg=238
hi IndentGuidesOdd ctermbg=236

উপস্থাপিত অন্যান্য সমাধানগুলির মতো এটি কেবল ফাঁকা জায়গাগুলির লাইনগুলিতে ইনডেন্ট গাইড দেখায়।


যোগ let g:indent_guides_enable_on_vim_startup=1সূচনার সময় এটি সক্রিয় আমার .vimrc করতে।
inye

9

আমি এজেন্টলাইন প্লাগইনটিকে এর জন্য সেরা বলে খুঁজে পেয়েছি । আপনার উপযুক্ত চিহ্নগুলির সাথে একটি ফন্টের দরকার আছে যদিও আমি উইন্ডোজ এবং ম্যাক ওএস এক্সের মেনলোতে কনসোলস ভালভাবে কাজ করতে পারি। উপরের ইউনিফাইড উত্তরে যেমন উল্লেখ করা হয়েছে, এটি যথাযথভাবে concealউল্লম্ব বারগুলি (ব্যবহৃত ফন্ট থেকে) লাগানোর জন্য ভিএম এর বৈশিষ্ট্যটি ব্যবহার করে (আব) কাজ করে । আমি এই সমাধানটি নিয়ে বেশ খুশি তবে এর অসুবিধাটি হ'ল যে আমার উল্লম্ব বারগুলি বাক্স-অঙ্কন গ্লাইফগুলির অংশ এবং এগুলি অন্যান্য সম্পাদকের মতো বাম-প্রান্তিকের পরিবর্তে কেন্দ্র-প্রান্তিক হয়। আমি এটি ব্যবহার করতে পেরেছি তবে ম্যানুয়ালি আপনার ফন্টটি প্যাচ করে বা ফ্যান্টাস্কেক সানস মনোোর মতো একটি ফন্ট ব্যবহার করে এটি সংশোধন করা যেতে পারে (লিঙ্কযুক্ত গিথুব রেপোর স্ক্রিনশটগুলি কীভাবে ইনডেন্টলাইন ব্যবহার করে তা লক্ষ করুন)।


4
প্লাগইন-লিংক-উত্তরগুলির জন্য আমাদের আলোচনাটি একবার দেখুন এবং আরও তথ্যের সাথে আপনার উত্তর আপডেট করার বিষয়ে বিবেচনা করুন।

আমার ভুল, আমি আমার উত্তর আপডেট করেছি।
বৈভব সাগর

প্যাচযুক্ত উল্লম্ব রেখাটি কোন গ্লিফ? আপনি কি এখানে পেস্ট করতে পারেন? ধন্যবাদ।
টিম্ট্রো

2

ইনডেন্টলাইন প্লাগইনটি নন-ছোট ফাইলগুলিতে মোটামুটি ধীর হয়ে যায়, এন্টারটি ক্লিক করার সময় পর্যবেক্ষণযোগ্য এটি এক বা একাধিক সময় পিছিয়ে যায়।

আমি ভিআইএম-ইনডেন্টগাইডগুলি একটি দ্রুত এবং দৃশ্যমান অনুরূপ প্লাগইন হিসাবে খুঁজে পেয়েছি , যা স্পেস ইনডেন্টের তুলনায় ট্যাব ইন্ডেন্টকে দৃশ্যত পৃথক করে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.