>> এর সাথে পরবর্তী ইনডেন্টেশন স্তরে প্রবেশ করুন


9

সময়ে সময়ে আমাকে এমন কোড সহ কাজ করতে হবে যা ইনডেন্টেশনের স্তরের সাথে ইন্ডেন্ট হয় না আমার ভিম সেট আপ হয় (প্রতি স্তরের প্রতি 4 স্পেস), সাধারণত ফাইলটিতে কিছু অনুলিপি / পেস্ট করার পরে। আমি সাধারণত না করতে <<এবং >>। সমস্যাটি হল তারা পরবর্তী ইনডেন্টেশন স্তরে ঝাঁপ দেয় না, তারা কেবল 4 টি স্পেস যুক্ত করে বা বিয়োগ করে।

আমার যদি এই মত কোড থাকে

if condition:
    do this
   do that

করছেন >>উপর do thatপরিণাম ডেকে আনবে

if condition:
    do this
       do that

আমি এটি এখানে যেতে চান

if condition:
    do this
    do that

উপরের লাইনের ইন্ডেন্টেশনের সাথে সহজেই মিলে যাওয়ার পাশাপাশি, আমি এটি চাই যে 4 টি ফাঁকা স্থান যুক্ত না করে পরবর্তী প্রান্তের ইন্ডেন্টেশনে ঝাঁপ দাও।

ইন্ডেন্টেশন সম্পর্কিত আমার .vimrc এ এটিই রয়েছে

:set tabstop=4 shiftwidth=4 expandtab

আপনার কাছে যদি filetype plugin indent onআপনার .vimrc, filetype: (এবং প্লাগইন) খাঁজ-সম্পর্কিত বিধি প্রয়োগ করা হবে। IE চেক আপনার tabstopমান আসলে আছে ( set tabstop?কি করতে হবে; অন্যান্য সেটিংস জন্য একই), সম্পাদনার সময়, এবং যারা মান একটি আপনার লাইন জুড়ে ফাইলটি পর 'পরিবর্তন করেন, ভালো কিছু: stackoverflow.com/a/159066/5000478
VanLaser

3
>>এবং <<যথাক্রমে ইনডেন্ট যুক্ত করুন এবং মুছুন যা আপনি চান তা নয়। আপনি যা চান তা হ'ল "ফরম্যাটিং" যা দিয়ে সম্পন্ন হয়েছে ==
রোমেনেল

:nnoremap >> ^i<tab><esc>আপনি যদি সত্যই ট্যাব আচরণ চান তাও মানচিত্র করতে পারে>>
ওল্ফি

@romainl ==উপরের লাইনের স্তরে চলে যাবে। একটি ভাল জিনিস জানতে, তাহলেও এটি would সব ক্ষেত্রে, আমি কি চাই আমি আগ্রহী। প্রশ্নের অতিরিক্ত হিসাবে কাজ নাও জন্য >>এবং <<করতে ইন্ডেন্ট / পরবর্তী যে দিক সীমান্ত থেকে shiftwidth একাধিক পর্যন্ত dedent ।
দুমিত্রু

2
না, প্রদত্ত রেখাগুলি পুনরায় ফর্ম্যাট করতে বা ==ব্যবহার করে । equalexprequalprg
রোমেনেল

উত্তর:


12

যখন আপনি কমান্ড একটি ব্যবহার {count}>>, {count}<<, >{motion}বা <{motion}কিছু লাইন যা ইতিমধ্যে ইন্ডেন্টযুক্ত হয়েছে উপর, এবং আপনি তাদের নতুন খাঁজ স্তর আপনার এর গুণিতক হতে চান 'shiftwidth'বিকল্প মান, আপনি সক্ষম করতে পারেন 'shiftround'বিকল্প, এবং আপনার মধ্যে এই লাইন যোগ vimrc:

set shiftround

2

আপনি যদি সর্বদা >>পরবর্তী ট্যাবস্টপে ইন্ডেন্ট করতে চান এবং <<সর্বশেষ ট্যাবস্টপটিতে মুছতে চান তবে আপনি সেগুলি পুনরায় পুনর্নির্মাণ করতে পারেন:

:nnoremap << ^i<BS><esc>
:nnoremap >> ^i<tab><esc>

এটি কার্সারটি সরিয়ে ফেলবে, তবে আপনি সম্ভবত এটি পিছনে সরানোর জন্য কিছু চিহ্নের কৌশল করতে পারেন। ^একটি m'চিহ্ন রাখে না , তবে আপনি নিজেই একটিটিকে বাইন্ডিংয়ের মধ্যে রেখে যেতে পারেন।

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