ফাইল টাইপ দ্বারা ভিম সাদা স্থান পছন্দগুলি সেট করা


155

আমার কাজকালে, আমাকে ইনডেন্টেশনের জন্য বাড়ির স্টাইলটি অনুসরণ করা দরকার, যা নীচে চলেছে:

  • এইচটিএমএল এবং রুবি কোডিং করার সময় 2 টি স্পেস
  • ট্যাবগুলি জাভাস্ক্রিপ্ট কোডিং করার সময়, ট্যাবউইথ = 4 দিয়ে প্রস্তাবিত

ফাইল টাইপের জন্য পৃথক পৃথক স্থানের পছন্দটি নির্দিষ্ট করার সর্বোত্তম উপায় কী?



এই সমস্ত উত্তর আমাকে আরও বিভ্রান্ত করেছে। সমস্যাটি হ'ল বিকল্পগুলি অগ্রাধিকার পর্যন্ত। গৃহীত উত্তরের একটি দুর্দান্ত বাক্য গঠন রয়েছে। এটি একটি চমৎকার গাইড ছিল: vimcast.org/transcriptts/2/en
মিকেল লিন্ডলফ

উত্তর:


245

অনেকগুলি উপায় রয়েছে তবে এখানে একটি সহজ, সহজে বোঝার উপায়। আপনার এই লাইনগুলি যুক্ত করুন ~/.vimrc:

autocmd FileType html setlocal ts=2 sts=2 sw=2
autocmd FileType ruby setlocal ts=2 sts=2 sw=2
autocmd FileType javascript setlocal ts=4 sts=4 sw=4

27
ts = 'ফাইলের মধ্যে <ট্যাব>' sts = 'ব্যবহার করে এমন জায়গাগুলির সংখ্যা যা <ট্যাব> (অটো) ইনডেন্ট ধাপে ব্যবহার করার জন্য' sw = 'স্পেসের সংখ্যা সম্পাদনা করার সময় বিশদের জন্য দেখুন: vimdoc.sourceforge .net / htmldoc / quickref.html # অপশন-তালিকা
zdsbs

আমার কমপক্ষে রুবির জন্য প্রসারিত ট্যাব যুক্ত করতে হবে, এখানে 'খুব বেশি পিএইচপি' দ্বারা উত্তর দেখুন
মাইকেল ডুরান্ট

87

পিটারের উত্তর যথেষ্ট সোজা, কিন্তু দুর্ভাগ্যক্রমে বিকল্পগুলি সঠিক নয়। পরিবর্তে আপনাকে নিম্নলিখিত বিকল্পগুলি ব্যবহার করতে হবে:

autocmd Filetype html setlocal ts=2 sw=2 expandtab
autocmd Filetype ruby setlocal ts=2 sw=2 expandtab
autocmd Filetype javascript setlocal ts=4 sw=4 sts=0 noexpandtab

আরও মনে রাখবেন:

  • আপনি ব্যবহার করে ভিম শো ট্যাব অক্ষর তৈরি করতে পারেন :set list
  • ট্যাব / স্পেস বিকল্পগুলি সঠিকভাবে সেট হয়ে গেলে আপনি :retab!কমান্ডটি ব্যবহার করে ভিএম ফাইলটি মেরামত করতে পারেন (ট্যাবগুলির সাথে ফাঁকা স্থানগুলি প্রতিস্থাপন করতে পারেন) ।

2
expandtabওভারের সুবিধা কীsts=2
জেমস ম্যাকমাহন

12
@ জেমসম্যাকমাহন প্রসারিত ট্যাব সমস্ত ট্যাবকে ফাঁকা জায়গায় প্রসারিত করে। এসটিএস (সফ্টট্যাবস্টপ) ইনডেন্টগুলির জন্য স্পেস এবং ট্যাব সন্নিবেশ করায়: ট্যাবস্টপের আকারের উপর ভিত্তি করে ইনডেন্টে যতগুলি ট্যাব ফিট হবে এবং তার পরে ফাঁকা স্থান s অবশ্যই, যদি প্রসারিত ট্যাব চালু থাকে, theোকানো সমস্ত ট্যাবগুলি স্পেসে রূপান্তরিত হয়। stackoverflow.com/questions/1562336/… আরও সাহায্য করতে পারে। প্রসারিত ট্যাব ছাড়াই, পিটারের উত্তর ফাঁকা নয়, 2 টি চওড়া প্রশস্ত ট্যাব sertোকাবে would
ajmccluskey

35

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

আপনার থাকা দরকার filetype plugin onবা filetype plugin indent onআপনার থাকতে হবে .vimrcএবং তারপরে যেমন রুবি তৈরি করতে পারেন তার জন্য একটি প্লাগইন তৈরি করতে হবে ~/.vim/ftplugin/ruby.vim। টেকনিক্যালি আপনি এখানে মত কোন আপনি কমান্ড ব্যবহার করতে পারেন, যখন একটি রুবি ফাইল লোড হয় চালানো যাবে, কিন্তু বাঞ্ছনীয় বেশী অন্তর্ভুক্ত setlocal, map <buffer>, command -buffer, এবং সংজ্ঞা ফাংশন। প্রচুর আরও তথ্য ব্যবহারকারী গাইডে রয়েছে; আপনি যদি স্ক্রিপ্টিং ভিমের সাথে বেশ পরিচিত হন তবে লাফিয়ে যান :help 41.11, অন্যথায় পড়ুন :help usr_40এবং :help usr_41


10

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

আমি আমার একটি autocommand ব্যবহার .vimrc :

:autocmd BufReadPost * :DetectIndent 

0

যখনই ট্যাব কী টিপবে তখন স্থান অক্ষর সন্নিবেশ করতে, 'এক্সপ্রেডট্যাব' বিকল্পটি সেট করুন:

:set expandtab

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

:set tabstop=2

রেফ: http://vim.wikia.com/wiki/Converting_tabs_to_spaces

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