`সফটটাবস্টোপ কীসের জন্য ব্যবহৃত হয়?


21

আমি ভিমে এই ট্যাব সম্পর্কিত সেটিংস সম্পর্কে অবগত ছিলাম:

  • ts
  • sw
  • expandtab
  • smarttab
  • sts

আমার স্বাভাবিক সেটিং set ts=4 sw=4 expandtab smarttab

তবে stsডকুমেন্টেশন অনুসারে , যদি expandtabসেট না করা থাকে তবে এটি ট্যাব আকারের জন্য পছন্দসই ফাঁকা স্থান তৈরি করতে ফাঁকা স্থান এবং ট্যাবগুলির সংমিশ্রণ ব্যবহার করার চেষ্টা করবে।

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

উত্তর:


20

softtabstopডকুমেন্টেশন যেমন উল্লেখ করেছে, এটি কার্যকর যদি আপনি 8 এর ডিফল্ট ট্যাব স্টপ আকার রাখতে চান তবে কোনও ফাইল সম্পাদনা করুন যেন ট্যাব স্টপের আকারটি অন্য কোনও মান was উদাহরণস্বরূপ, কোড সম্পাদনার সময় আপনি যদি 4 টি ইন্ডেন্টেশন স্তর চান তবে কিছু মন্তব্যগুলিতে 8-এর ট্যাব স্টপের উপর নির্ভরশীল একটি টেবিলের মতো ট্যাব-ইন্ডেন্টেড পাঠ্য থাকে, আপনি সেট stsকরতে পারেন 4

আপনার ট্যাব সেটিংস ( set ts=4 sw=4 expandtab smarttab) এবং sts(উদাহরণস্বরূপ set ts=8 sts=4) এর ব্যবহারের মধ্যে আমি একটি পার্থক্য লক্ষ্য করি যখন পাঠ্যের লাইনের মাঝখানে ফাঁকা স্থান ব্যাকস্পেস করা হয়। উদাহরণস্বরূপ, নীচের পাঠ্যের লাইনটি বিবেচনা করুন, যেখানে ·কোনও স্থান নির্দেশ করে:

some·text·······more·text

সন্নিবেশ মোডে, ঠিক আগে কার্সার সরানোর mএর more text। আপনার সেটিংসের সাহায্যে ব্যাকস্পেস টিপে একক স্থান মুছে ফেলা হয়। তবে ব্যবহারের সময় sts=4, ব্যাকস্পেস পূর্ববর্তী ট্যাব স্টপের সমস্ত পথ মুছে ফেলে, কারণ স্পেসগুলি পরিবর্তে কোনও ট্যাব অক্ষর থাকলে এটি আচরণ করবে।

আপনি sts=4আপনার সেটিংসের পাশাপাশি সেট করতে পারেন এবং ট্যাব এবং স্পেসগুলি মিশ্রিত না করার সময় মাঝ-লাইনের ব্যাকস্পেস আচরণ পাবেন। ট্যাবগুলি চারটি স্পেসে প্রসারিত হবে তবে আপনি একটি লাইনের মাঝখানে অনেকগুলি ফাঁকা জায়গা পেরিয়ে যেতে পারবেন।


3

নীচের উদাহরণটি দেখুন,

// Start vim without loading your vimrc. set only tabstop=8 softtabstop=4.
// This makes <Tab> in insert mode equals to 4 <Space> length at max.

// In insert mode, type 12, one <Tab>, 5. We get insertion below,
12··5
// Quit insert mode. Move cursor back, we find 2 <Space> inserted.

// In insert mode, type 12, two <Tab>, 9. We get insertion below,
12······9
// Quit insert mode. Move cursor back, you find a <Tab> inserted.

// In insert mode, type 12, three <Tab>, 3. We get insertion below,
12··········3
// Move the cursor back, you find a <Tab> and 4 <Space> inserted.

// We can even set sotftabstop=12, but this time we only need type one <Tab>, then 3.
12··········3
// Move the cursor back, you find a <Tab> and 4 <Sapce> inserted.

সুতরাং tabstopকিভাবে ব্যাপক একটি সম্পর্কে Tab, সংজ্ঞায়িত করা হয় যখন softtabstopকতদূর প্যাচসমূহ যখন কার্সার সম্পর্কে টাইপিং Tab । যখন সেগুলি একই মান হিসাবে সেট করা থাকে না, এর অর্থ হ'ল আপনি Tabকী - স্ট্রোকটি আঘাত করলে এটি তুচ্ছভাবে একটি Tabচরিত্রকে বোঝায় না । যা-ই হোক না কেন, একবার আপনি সন্নিবেশ মোডটি ছেড়ে দিলে সিদ্ধান্ত নেওয়া উচিত im ভিম প্রথমে যথাসম্ভব যথাক্রমে সন্নিবেশটি মিলানোর চেষ্টা করবে tabstop; যদি শেষ পর্যন্ত এটি একটি পূর্ণরূপ তৈরি করতে না পারে তবে tabstopVim কেবলমাত্র এর মাধ্যমে ক্ষতিপূরণ দেয় Space

আরও কিছুটা কথা বলার জন্য, যদি আপনি সেট করেন তবে expandtabএটি ভিমকে বলা সমান:

কয়টি Tabএবং Sapceপ্রয়োজনীয় তা গণনা করার জন্য বিরক্ত করবেন না । কেবল .োকান Space


আপনার উত্তরটি বরং হাঁসের মতো মনে হচ্ছে এবং প্রশ্নের উত্তর দেওয়ার জন্য উপস্থিত হয় না।
হার্ব ওল্ফ

@ হারব ওল্ফী আমি আশা করি আমার উত্তরটি পিওকে বুঝতে সাহায্য করতে পারে যখন অস্বাভাবিক সেটিংটি তৈরি করা হয় তখন কী হয় :set st=7 sts=13। যেমন ভিম কেবল কোডিংয়ের জন্যই তৈরি করা হয়নি, তবে মূলত পাঠ্য সম্পাদনার জন্য।
চেন একাদশ

1

সহজ উত্তর:

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

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