আমি কীভাবে ভিমে ট্যাব আকার পরিবর্তন করব?


172

যতবার আমি সিএসএসে কোনও নির্বাচক যুক্ত করি এবং আমি Enterবৈশিষ্ট্যগুলি এটির মতো শেষ করতে সংজ্ঞায়িত করতে টিপতাম:

#selector {
        property: value;
}

(8-স্পেস ট্যাব)

আমি কীভাবে ভিমকে এটির মতো কনফিগার করতে পারি:

#selector {
    property: value;
}

(4-স্পেস ট্যাব)


4
আপনি কি 4 টি স্পেস প্রস্থের একটি ট্যাব চান? চারটি স্পেস? বা 1 স্পেস প্রস্থের চারটি ট্যাব? এগুলি বিভিন্ন জিনিস, এবং আপনি পরিষ্কার নয়। যাই হোক না কেন, পড়া শুরু করুন: তিনি ts,: তিনি sw, এবং: তিনি প্রসারিত
অ্যাবিয়ার

উত্তর:


102

জুলের উত্তরটি প্রসারিত:

যদি আপনি কোনও নির্দিষ্ট ফাইল টাইপ সম্পাদনা করার সময় সুনির্দিষ্ট সেটিংস ব্যবহার করার জন্য ভিম সেটআপ করতে চান তবে আপনি স্বতঃআপনার ব্যবহার করতে চাইবেন:

autocmd Filetype css setlocal tabstop=4

এটি এটি তৈরি করবে যাতে ট্যাবগুলি 4 টি স্পেস হিসাবে প্রদর্শিত হয়। আপনি ট্যাব expandtabটিপলে সেটিংয়ের ফলে ভিমটি প্রকৃতপক্ষে ফাঁকা স্থান সন্নিবেশ করবে (তাদের দ্বারা নিয়ন্ত্রিত হওয়া সংখ্যা tabstop); আপনি softtabstopব্যাকস্পেসকে সঠিকভাবে কাজ করতে ব্যবহার করতে চাইতে পারেন (এটি হ'ল ইনডেন্টেশন হ্রাস করার সময় যখন ট্যাবগুলি ব্যবহার করা উচিত তখন একবারে একবারে চারটি মুছে ফেলার পরিবর্তে)।

কিভাবে যে সেট আপ করতে হিসাবে একটি সম্পূর্ণরূপে শিক্ষিত সিদ্ধান্ত তৈরি করতে হলে, আপনার উপর তেজ ডক্স পড়া করতে হবে tabstop, shiftwidth, softtabstopএবং expandtab। সবচেয়ে আকর্ষণীয় বিটটি expandtab( :help 'expandtab) এর অধীনে পাওয়া যায় :

ভিমে ট্যাব ব্যবহারের চারটি প্রধান উপায় রয়েছে:

  1. সর্বদা 8-এ 'ট্যাবস্টপ' রাখুন, 'সফটটাবস্টপ' এবং 'শিফটউইথ' 4 এ সেট করুন (বা 3 বা আপনি যা পছন্দ করেন) এবং 'নেক্সপ্যান্ডট্যাব' ব্যবহার করুন। তারপরে ভিম ট্যাব এবং স্পেসগুলির মিশ্রণ ব্যবহার করবে, তবে টাইপিং করবে এবং প্রতি 4 (বা 3) অক্ষর প্রদর্শিত একটি ট্যাবের মতো আচরণ করবে।

  2. আপনি যা পছন্দ করেন তার জন্য 'ট্যাবস্টপ' এবং 'শিফটউইথ' সেট করুন এবং 'এক্সপ্রেডট্যাব' ব্যবহার করুন। এইভাবে আপনি সর্বদা স্থান সন্নিবেশ করান। 'ট্যাবস্টপ' পরিবর্তন করা গেলে ফর্ম্যাটটি কখনই গোলযোগ হবে না।

  3. আপনি যা পছন্দ করেন তার জন্য 'ট্যাবস্টপ' এবং 'শিফটউইথ' সেট করুন এবং একটি মডেলিন | ব্যবহার করুন ফাইলটি আবার সম্পাদনা করার সময় এই মানগুলি সেট করতে। শুধুমাত্র ফাইল সম্পাদনা করতে ভিম ব্যবহার করার সময় কাজ করে।

  4. সর্বদা 'ট্যাবস্টপ' এবং 'শিফটউইথ' একই মান এবং 'নেক্সপ্যান্ডট্যাব' তে সেট করুন। এর পরে লোকেরা যে কোনও ট্যাবস্টপ সেটিংয়ের জন্য (কেবলমাত্র প্রাথমিক সূচকগুলির জন্য) কাজ করা উচিত। আপনি যদি এটি করেন তবে প্রথম শূন্যস্থান শূন্যস্থান হিসাবে সন্নিবেশ করার পরে ট্যাবগুলি রাখা ভাল লাগবে। অন্যথায় 'ট্যাবস্টপ' পরিবর্তন করা হলে প্রান্তিক করা মন্তব্যগুলি ভুল হবে।


এছাড়াও, সম্ভবত পরে আপনার মন পরিবর্তন করার বিষয়ে খুব বেশি চিন্তা করবেন না ... দেখুন :help retab( দেখুন ! বৈকল্পিকটি দেখুন)।
মিচা মার্সেকেক

.Vimrc ব্যবহারের সাথে অটোকিমডি পরিপূরক বা বিকল্প?
জোশ ডেসমন্ড

224
:set tabstop=4
:set shiftwidth=4
:set expandtab

এটি একটি ট্যাব অক্ষরের পরিবর্তে চারটি স্থান সন্নিবেশ করবে। স্পেসগুলি আরও কিছুটা "স্থিতিশীল", যার অর্থ স্পেসের সাথে যুক্ত পাঠ্য ব্রাউজার এবং অন্য কোনও অ্যাপ্লিকেশনটিতে একই প্রদর্শিত হবে।


83
হ্যাঁ, তবে ট্যাবগুলি অর্থপূর্ণ (প্রতিটি ট্যাবটির অর্থ ইনডেন্টেশনের 1 স্তর), অন্যদিকে স্পেসগুলি নিখুঁতভাবে উপস্থাপনযোগ্য। বা অন্য কথায়, ট্যাবগুলি ব্যবহার করে অন্য লোকেরা আপনার কোডটি দেখছে যাতে তারা প্রশস্ত থাকলেও প্রশস্ত হয়, যদিও স্পেসগুলি এর অনুমতি দেয় না।
কে প্রাইম

11
মনে রাখবেন যে আপনি যদি '>' এবং '<' কে আপনার পাঠ্যটিকে ট্যাব-কি- এর সমান দূরত্বে সরিয়ে নিতে পছন্দ করেন তবে আপনি কেবল :set shiftwidth=0আপনার ভিআরসিআর-এ থাকতে পারেন এবং এটি চিরকালের জন্য ভুলে যেতে পারেন , কারণ এটি ভিমকে বলে যে আপনি সর্বদা এটির সাথে মিল রাখতে চান tabstop
সেলডমনিডি

132

একটি সেশনের জন্য পরিবর্তন করতে, এই আদেশটি ব্যবহার করুন:

:set tabstop=4

পরিবর্তনটি স্থায়ী করতে, এটিকে যুক্ত করুন ~/.vimrcবা ~/.vim/vimrc:

set tabstop=4

এটি কেবল সিএসএস নয়, সমস্ত ফাইলকে প্রভাবিত করবে। কেবল সিএসএস ফাইলগুলিকে প্রভাবিত করতে:

autocmd Filetype css setlocal tabstop=4

যেমনটি মাইখার উত্তরে বলা হয়েছে ।


2
আপনি যদি ট্যাবটিকে চারটি স্পেস হিসাবে কাজ করতে চান তবে @ জুম উত্তরটিতে .vimrc এর অন্যান্য লাইনগুলি যুক্ত করা প্রয়োজন; অর্থাৎ .vimrc তেও 'সেট শিফটউইথ = 4' এবং 'সেট এক্সপেনডট্যাব' যুক্ত করুন।
কুর্তাল

7
প্রশ্নটি হল "আমি কীভাবে ট্যাব আকারটি ভিমে পরিবর্তন করব?"
কীথ

এইভাবে আমি এটি করব। এবং ~/.vimrcসর্বদা ব্যাক আপ হয় তা নিশ্চিত করার জন্য , আমি সাধারণত ফাইলটি আমার ড্রপবক্স ফোল্ডারে সংরক্ষণ করি তারপরে ডেস্কটপে একটি সিম লিঙ্ক তৈরি করি:ln -s /home/myfolder/Dropbox/.vimrc ~
এনচেঞ্চ করুন

41

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

যদি কেউ স্থায়ীভাবে ট্যাব সেটিংস পরিবর্তন করতে আগ্রহী হন:


11
এটি স্পেসগুলি সন্নিবেশ করায়, ট্যাবগুলিতে নয়।
সুপারনোহো

5
@ সুপর্ণোহো আপনি ট্যাবগুলি পাওয়ার জন্য "এক্সপেনডট্যাব" মুছে ফেলতে পারবেন
কোমরাডহোমর

27

ভিএম-তে এক-লাইনার হিসাবে :

:set tabstop=4 shiftwidth=4 expandtab

জন্য স্থায়ী সেটআপ , এর এই লাইন যোগ ~ / .vimrc :

set tabstop=4
set shiftwidth=4
set expandtab

6

হালনাগাদ

আপনি যদি কোনও নির্দিষ্ট প্রকল্পে কাজ করে থাকেন তবে আমি এডিটর কনফিগ ব্যবহার করার জন্য সুপারিশ করছি

এটি আপনাকে .editorconfigআপনার সংগ্রহস্থলের মূল প্রান্তে একটি ফাইল সংজ্ঞায়িত করতে দেয় যা আপনি আপনার সংগ্রহস্থল জুড়ে প্রতিটি ফাইল টাইপের জন্য ব্যবহার করতে চান সেগুলি নির্ধারণ করে।

উদাহরণ স্বরূপ:

root = true

[*.css]
charset = utf-8
indent_style = space
indent_size = 4

[*.js]
charset = utf-8
indent_style = space
indent_size = 2

এখানে একটি ভিআইএম প্লাগইন রয়েছে যা আপনার খোলার ফাইলের কনফিগারেশন ফাইল অনুসারে স্বয়ংক্রিয়ভাবে ভিএমটি কনফিগার করে।

এর উপরে .editorconfigফাইলটি অন্য অনেক আইডিই এবং সম্পাদকদের কাছে স্বয়ংক্রিয়ভাবে সমর্থিত তাই এটি বিভিন্ন পরিবেশের ব্যবহারকারীদের মধ্যে সহযোগিতার জন্য সেরা বিকল্প।

মূল উত্তর

আপনার যদি প্রায়শই আকার পরিবর্তন করতে হয় এবং আপনি এটি কোনও নির্দিষ্ট ফাইল টাইপের সাথে আবদ্ধ করতে না চান তবে দ্রুত পছন্দগুলি স্যুইচ করতে আপনার .vimrc ফাইলটিতে পূর্বনির্ধারিত কমান্ড থাকতে পারে:

nmap <leader>t :set expandtab tabstop=4 shiftwidth=4 softtabstop=4<CR>
nmap <leader>m :set expandtab tabstop=2 shiftwidth=2 softtabstop=2<CR>

এটি কী \ t এবং \ m তে দুটি পৃথক আকারের সেট ম্যাপ করে। আপনি যা চাবি চান তা এটিকে পুনর্নির্দেশ করতে পারেন।

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