আমি কীভাবে স্বয়ংক্রিয়ভাবে নতুন লাইনে যুক্ত করতে পারি?


15

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

এর অর্থ হ'ল কোনও লাইনে যখন একটি নতুন লাইন তৈরি করা হয়

public void something () {

আমার কার্সারটি পরবর্তী লাইনে নিয়ে আসবে, স্বয়ংক্রিয়ভাবে ইনডেন্ট করা হবে, পছন্দ করবে

public void something () {
    [cursor]

আমি যখন নতুন লাইনে কয়েকবার ট্যাব কীটি হিট করতে পারি তবে এটি করার আরও ভাল উপায় (স্বয়ংক্রিয়ভাবে সম্ভব) আছে কি?

উত্তর:


12

এটি autoindentবিকল্প এবং filetypeপ্লাগইন এর সংমিশ্রণ ব্যবহার করে করা যেতে পারে ।

autoindentযখন একটি নতুন লাইন তৈরি বিকল্প আপনার বর্তমান খাঁজ কপি হবে। সুতরাং আপনি নতুন লাইনটি শুরু করার সময় যদি আপনার বর্তমান ইন্ডেন্টেশন স্তরটি 4 হয় তবে কার্সারটি পরবর্তী লাইনের একই ইনডেন্টেশন স্তরে সরানো হবে।

আপনার ~/.vimrcফাইল, আপনি লাগাতে হবে

set autoindent

filetypeফাইল টাইপের ভিত্তিতে পরবর্তী ইনডেন্টেশন স্তরটি স্বয়ংক্রিয়ভাবে নির্ধারণ করতে আপনি প্লাগইনটি পাশাপাশি ব্যবহার করতে পারেন ।

আপনি ফ্লাইতে এটিকে সক্ষম করতে পারবেন

:filetype indent on

বা, আপনার ~/.vimrcফাইল আপনি লাগাতে হবে

filetype plugin indent on

যা স্বয়ংক্রিয়ভাবে ফাইলের ধরণের ভিত্তিতে ইন্ডেন্টেশন নির্ধারণ করবে।


6

ব্যবহারের :set cindent( :set cinসংক্ষেপে) অথবা :set smartindent( :set siসংক্ষেপে)। যদি আপনার লাইনটি একটি প্রারম্ভিক বন্ধনীতে শেষ হয় এবং আপনি আঘাত করেন Enterতবে নীচের লাইনটি স্বয়ংক্রিয়ভাবে একটি অতিরিক্ত স্তরের ইন্ডেন্টেড হবে। (এটি এর চেয়ে আরও ভাল :set autoindent, যা কেবলমাত্র একই স্তরের পরবর্তী লাইনে অন্তর্ভুক্ত করে )) cindentসি-এর মতো ভাষাগুলির সাথে ভালভাবে তৈরি করা হয়েছে, smartindentঅন্য প্রোগ্রামিং ভাষার সাথে ব্যবহারের জন্য এটি বহুমুখী।

পরিমাণ এবং খাঁজ ধরণ দ্বারা নিয়ন্ত্রিত হয় :set shiftwidth=…, :set tabstop=…এবং :set expandtab


'smartindent'অবচয় করা হয়েছে, তাই এটি সেরা পছন্দ নয়। এটা তোলে দ্বারা প্রতিস্থাপিত হয়েছে 'cindent'এবং 'cinoptions'সি-মত ভাষার জন্য। সাধারণভাবে, যদিও ফ্যালব্যাক হিসাবে ফাইল টাইপ ইন্ডেন্টিংয়ের উপায় 'autoindent'
জামেসান

@ জামেসান smartindentঅবচিত নয়, তবে cindentএটি লক্ষণীয়। আমি উত্তর আপডেট করেছি। (ধন্যবাদ!)
200_ সফল

আমি আপনাকে editconfig.org এ একবার দেখার পরামর্শ দিই । অবশ্যই ভিএম (এবং আরও অনেক সম্পাদক) এর জন্য একটি প্লাগইন রয়েছে এবং এটি আপনার ভিসিএসে আপনার সম্পাদককে ডিফল্ট রাখার দুর্দান্ত উপায়
সাইবার অলিভিয়রা

0

ফাইলের নীচে, আমি ব্যবহার করছি:

# vim: ts=2 sw=2 sts=2 sr noet st ai si

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

FROM centos-7
RUN ...
CMD ...

# vim: ts=2 sw=2 sts=2 sr noet st ai si

আপনি যদি কেবল ইন্ডেন্টেশন রাখতে চান তবে ব্যবহার করুন # vim: st ai si

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