আমি যখন অন্য কোনও ফাইল থেকে কোড অনুলিপি করি, ফর্ম্যাটটি এইভাবে মিশে যায়:
fun()
{
for(...)
{
for(...)
{
if(...)
{
}
}
}
}
আমি কীভাবে এই কোডটি ভিএম-এ স্বয়ংক্রিয়ভাবে করতে পারি?
আমি যখন অন্য কোনও ফাইল থেকে কোড অনুলিপি করি, ফর্ম্যাটটি এইভাবে মিশে যায়:
fun()
{
for(...)
{
for(...)
{
if(...)
{
}
}
}
}
আমি কীভাবে এই কোডটি ভিএম-এ স্বয়ংক্রিয়ভাবে করতে পারি?
উত্তর:
নিম্নলিখিত কীস্ট্রোক চেষ্টা করুন:
gg=G
ব্যাখ্যা: gg
ফাইলের শীর্ষে যায়, =
ইনডেন্টেশনটি ঠিক করার জন্য একটি আদেশ এবং G
এটি ফাইলের শেষে অপারেশন করতে বলে।
আমি আর্টিস্টিক স্টাইল প্রোগ্রামটি ব্যবহার করতে চাই। তাদের ওয়েবসাইট অনুযায়ী :
শৈল্পিক স্টাইল হল সি, সি ++, সি # এবং জাভা প্রোগ্রামিং ভাষার জন্য একটি উত্স কোড সূচক, বিন্যাসক এবং বিউটিফায়ার।
এটি উইন্ডো, লিনাক্স এবং ম্যাকে চলে। এটি ইনডেন্টিং, ফাঁকা জায়গাগুলির সাথে ট্যাবগুলি প্রতিস্থাপন করা, অপারেশনগুলির চারপাশে স্পেস স্থাপন করা (আপনার পছন্দ অনুসারে যদি এটি রূপান্তরিত if(x<2)
হয় ) রূপান্তরকরণ ( x<2 )
, ফাংশন সংজ্ঞা হিসাবে একই লাইনে ধনুর্বন্ধনী স্থাপন করা বা এগুলিকে সরিয়ে দেওয়ার মতো কাজ করবে নীচে লাইন, ইত্যাদি। সমস্ত বিকল্প কমান্ড লাইন পরামিতি দ্বারা নিয়ন্ত্রিত হয়।
এটি ভিমে ব্যবহার করতে, কেবল বিন্যাসের বিকল্প বিন্যাসটি সেট করুন এবং তারপরে gq কমান্ডটি ব্যবহার করুন। সুতরাং, উদাহরণস্বরূপ, আমার আমার .vimrc এ আছে:
autocmd BufNewFile,BufRead *.cpp set formatprg=astyle\ -T4pb
যাতে আমি যখনই একটি .cpp ফাইল খুলি, তখন আমার পছন্দ মতো বিকল্পগুলির সাথে ফর্ম্যাটপ্রিজ সেট করা থাকে। তারপরে, আমি ফাইলের শীর্ষে যেতে এবং gqGআমার মান অনুসারে পুরো ফাইলটি ফর্ম্যাট করতে জিজি টাইপ করতে পারি। আমার যদি কেবল একটি একক ফাংশনটি পুনরায় ফর্ম্যাট করার প্রয়োজন হয় তবে আমি ফাংশনের শীর্ষে যেতে পারি, তারপরে টাইপ করুন gq][এবং এটি ঠিক সেই ফাংশনটির পুনরায় ফর্ম্যাট করবে।
অ্যাস্টাইলের জন্য আমার যে বিকল্পগুলি রয়েছে -T4pb
, সেগুলি কেবল আমার পছন্দ। আপনি তাদের ডক্সটি সন্ধান করতে পারেন এবং আপনার পছন্দ মতো কোডটি ফর্ম্যাট করার জন্য বিকল্পগুলি পরিবর্তন করতে পারেন।
এখানে একটি ডেমো রয়েছে। অ্যাস্টাইলের আগে:
int main(){if(x<2){x=3;}}
float test()
{
if(x<2)
x=3;
}
অ্যাস্টাইল (gggqG) এর পরে:
int main()
{
if (x < 2)
{
x = 3;
}
}
float test()
{
if (x < 2)
x = 3;
}
আশা করি এইটি কাজ করবে.
ভিএম-অটোফর্ম্যাট প্লাগইন আপনাকে আপনার বাফার (বা বাফার নির্বাচন) একটি একক কমান্ড দিয়ে ফর্ম্যাট করতে দেয়: https://github.com/Chiel92/vim-autoformat । এটি এর জন্য বাহ্যিক ফর্ম্যাট প্রোগ্রামগুলি ব্যবহার করে, ভিমের ইনডেন্টেশন কার্যকারিতাটির ফ্যালব্যাক সহ।
আমি যে clang-format
ভাল কাজ করে।
ঝনঝন ডকুমেন্টেশনে কিছু কী-বাইন্ডিং রয়েছে
আমি equalprg
ভিআইএম এ বাঁধাই ব্যবহার করতে পছন্দ করি । এটি আপনাকে অন্যান্য ইনডেন্ট বিকল্পগুলির clang-format
সাথে অনুরোধ করতে অনুমতি দেয় ।G=gg
=
আপনার .vimrc ফাইলটিতে কেবল নিম্নলিখিতটি লিখুন:
autocmd FileType c,cpp setlocal equalprg=clang-format
sudo apt install clang-format
আমি indent
উপরে বর্ণিত হিসাবে পছন্দ করি তবে বেশিরভাগ ক্ষেত্রে আমি যে ফাইলটিতে কাজ করছি তার কেবলমাত্র একটি ছোট অংশটি ফর্ম্যাট করতে চাই। যেহেতু indent
স্টিডিনের কাছ থেকে কোড নিতে পারে, এটি সত্যই সহজ:
:!indent
।astyle
স্টিডিনও লাগে, তাই আপনি সেখানে একই কৌশল ব্যবহার করতে পারেন।
আমি যুক্ত করতে চেয়েছিলাম, যাতে প্রথম স্থানটিতে গোলমাল হওয়া থেকে রোধ করার জন্য আপনি :set paste
আটকে দেওয়ার আগে টাইপ করতে পারেন । পেস্ট করার পরে, আপনি :set nopaste
আবার কাজ করতে জেএস-বিউটিফায়ার এবং ইনডেন্ট করার মতো জিনিসগুলির জন্য টাইপ করতে পারেন ।
:set paste!
এটির জন্য ব্যবহার করি যা এটি সেট করার পরিবর্তে পেস্ট মান টগল করে। এটি আপনাকে বন্ধ করতে আরও সহজ করে তোলে কারণ আপনি কেবল কয়েকটি কমান্ড পিছনে স্ক্রোল করে এন্টার টিপতে পারেন।