একটি কমান্ড ব্যবহার করে আপনার উত্স ফাইলে সমস্ত কিছু স্বয়ংক্রিয়ভাবে ট্যাববিহীন করার উপায় আছে? [বন্ধ]


11

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

আমি এই কার্যকারিতাটি কী বলব জানতাম না, তাই গুগলে এটি খুঁজে পাওয়া আমার পক্ষে কঠিন ছিল (যা সাধারণত ট্যাব আকার নির্ধারণের সাথে সম্পর্কিত জিনিসগুলি ফিরিয়ে দেয়, যা আমি দুর্ভাগ্যবশত খুঁজছিলাম না))



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

1
আমি এই প্রশ্নটিকে অফ-টপিক হিসাবে বন্ধ করতে ভোট দিচ্ছি কারণ এটি একটি নির্দিষ্ট সরঞ্জামের ব্যবহার সম্পর্কে এবং স্ট্যাক ওভারফ্লো বা (এখন যদি জিজ্ঞাসা করা হয়) vi.se এ জিজ্ঞাসা করা উচিত ছিল

উত্তর:


9

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

:%retab

retabসম্পূর্ণ বিবরণের জন্য ডকুমেন্টেশন দেখুন ।

ক্যাভেট এমপোটার : এটি এমন ট্যাবগুলিও প্রতিস্থাপন করে যা কোনও লাইনের শুরুতে নয় । সুতরাং আপনি যদি স্ট্রিংয়ের মাঝখানে হার্ড ট্যাব ব্যবহার করেন তবে সেগুলিও প্রতিস্থাপন করা হবে।


3
সাধারণভাবে, যাইহোক স্ট্রিংয়ের মধ্যে সত্য ট্যাব অন্তর্ভুক্ত করা এটি একটি খারাপ ধারণা হিসাবে বিবেচিত। এটি এখনও ঘটতে পারে তবে \tকেবল এই ধরণের সমস্যা এড়াতে পছন্দ করা হয়।
স্পেন্সার রথবুন

6

@ কালেবের উত্তরটি প্রসারিত করতে (আমার কাছে এখনও কোনও মন্তব্য করার মতো প্রতিনিধি নেই), রেটাব কমান্ডটি কার্যকর করার আগে, আপনার প্রয়োজন হবে :set expandtab (set et)। অন্যথায় retab স্পেস দিয়ে ট্যাব প্রতিস্থাপন করবে না।

অ্যাডিটনে, আপনি ট্যাবস্টপগুলি নির্দিষ্ট করতে চাইতে পারেন। প্রায়শই অন্যের তৈরি সোর্স কোডে কোডটি ট্যাবস্টপগুলিতে 4 বা 2 তে সেট করে লেখা হয় the :%retabকমান্ডটি করার আগে বিভিন্ন ট্যাবস্টপ নিয়ে পরীক্ষা করুন। চেষ্টা

:set ts=8 (the default)
:set ts=4 
:set ts=2  

কোন সেটিংসটি সবচেয়ে অর্থবোধ করে তা দেখতে।

পিছনে যেতে (উপযুক্ত টিএবি অক্ষরের সাথে স্পেসগুলি প্রতিস্থাপন করে) ব্যবহার করুন

:set noet
:%retab!

1

আন-ট্যাব দ্বারা, আপনি কি ফাঁকা জায়গায় ট্যাবগুলি পরিবর্তন করতে চান? যদি তা হয় তবে পুরো বাফারটিতে ট্যাবগুলির জন্য স্পেসের বিকল্প দিন:

:%s/^I/    /g

এটি প্রতিস্থাপনের ডান পাশের চারটি স্পেস, তবে আপনি যা চান নম্বরটি এটি তৈরি করতে পারেন। আক্ষরিক ^Iট্যাব চরিত্রটি পেতে , আপনি ^Vট্যাব কী অনুসরণ করে আঘাত করতে পারেন ।

আপনি =কমান্ডটি দিয়ে পুনরায় প্রবেশ করতে পারেন । বাফারের সম্পূর্ণ সামগ্রী পুনরায় প্রবেশ করতে, এই আদেশগুলি ব্যবহার করুন:

gg
=G

এটি আপনাকে শীর্ষে নিয়ে যায়, তারপরে নীচে সমস্ত কিছু পুনরায় অন্তর্ভুক্ত করে।


-১: একটি নির্দিষ্ট সংখ্যক স্পেস দিয়ে ট্যাব প্রতিস্থাপন প্রায় কার্যকর নয়। এটি কোনও ট্যাববিহীন পূর্ববর্তী ট্যাবযুক্ত যে কোনও লাইনের উপস্থিতি পরিবর্তন করবে।
কেভিন Cline
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.