ভিমে, সমস্ত লাইনের ইন্ডেন্টেশন সংশোধন করার আদেশ কী?
প্রায়শই আমি একটি অনুলিপি টার্মিনালে কোড অনুলিপি করে আটকান এবং পুরো জিনিসটি গোলযোগে ফেলে দেব। আমি এটিকে একবারে ঠিক করতে চাই fell
ভিমে, সমস্ত লাইনের ইন্ডেন্টেশন সংশোধন করার আদেশ কী?
প্রায়শই আমি একটি অনুলিপি টার্মিনালে কোড অনুলিপি করে আটকান এবং পুরো জিনিসটি গোলযোগে ফেলে দেব। আমি এটিকে একবারে ঠিক করতে চাই fell
উত্তর:
=
, ইনডেন্ট কমান্ড গতি নিতে পারে। সুতরাং, gg
ফাইলটি শুরু =
করতে, ইনডেন্ট করতে, G
ফাইলের শেষে gg=G
,।
''
(দু'টি একক উদ্ধৃতি) আপনাকে যেখানে ফিরে এসেছিল সেখানে gg=G''
ইন্ডেন্টের পরে ফিরে যেতে হবে।
টার্মিনালে আটকানোর আগে চেষ্টা করুন :set paste
এবং তারপরে :set nopaste
আপনার কাজ শেষ হয়ে যাবে। এটি অটো-ইনডেন্ট, লাইন-মোড়ানো এবং অন্যান্য বৈশিষ্ট্যগুলি বন্ধ করবে যা আপনার পেস্টকে গোলমাল করছে।
সম্পাদনা: এছাড়াও, আমার এও উল্লেখ করা উচিত যে =
সাধারণত বাইরের প্রোগ্রাম ব্যবহার করে ইনডেন্টিংয়ের চেয়ে অনেক ভাল ফলাফল পাওয়া যায়। উদাহরণস্বরূপ, আমি :%!perltidy
সব সময় চালানো । astyle
, cindent
ইত্যাদি ব্যবহার করা যেতে পারে। এবং, অবশ্যই, আপনি এগুলি কী স্ট্রোকের জন্য মানচিত্র করতে পারেন এবং ফাইলের ধরণের উপর নির্ভর করে বিভিন্নটিকে একই কীস্ট্রোকে মানচিত্র করতে পারেন।
equalprg
জন্য একটি বাহ্যিক ফিল্টার ব্যবহার করতে একটি ftplugin এ বিকল্পটি সেট করতে পারেন =
।
formatpgm
পরিপাটি এবং এস্টাইল দিয়ে ব্যবহার করি এবং তারপরে gq
। এখানে আমার থেকে কয়েকটি উদাহরণ দেওয়া হয়েছে .vimrc
: au FileType xml set fp=tidy\ -q\ -i\ -xml
এবংau FileType java set fp=/usr/local/bin/astyle\ --mode=java\ --indent=tab
আপনি যদি কোনও চির্ড টাইপ না করেই যে ব্লকটিতে রয়েছেন তা পুনরায় পাঠাতে চান, আপনি এটি করতে পারেন:
[[=]]
=aB
যা কার্সারকে মোটেও সরবে না।
[[=]]
5 টি
সব কমান্ডের কর্তা
gg=G
এটি পুরো ফাইল ইনডেন্ট করে!
এবং নীচে ভিম বা জিভিমে লাইনগুলি দ্রুত ইনডেন্ট করার জন্য ব্যবহৃত কয়েকটি সাধারণ এবং মার্জিত কমান্ড রয়েছে।
বর্তমান লাইনের নীচে সমস্ত লাইন যুক্ত করতে
=G
বর্তমান লাইনটি ইনডেন্ট করতে
==
ইন্ডেন্ট করতে n
বর্তমান লাইনের নিচে লাইন
n==
উদাহরণস্বরূপ, বর্তমান লাইনের নীচে 4 লাইন যুক্ত করতে
4==
কোডের একটি ব্লক ইনডেন্ট করতে, একটি ধনুর্বন্ধনীতে গিয়ে কমান্ড ব্যবহার করুন
=%
এস্কেপ টিপুন এবং তারপরে নীচে কম্বিনেশনগুলি দ্রুত টাইপ করুন:
gg=G
ভিআইএম-অটোফর্ম্যাট আপনার সোর্স ফাইলগুলিকে আপনার ভাষার জন্য নির্দিষ্ট বাহ্যিক প্রোগ্রামগুলি ব্যবহার করে ফর্ম্যাট করে, যেমন জাবি স্ক্রিপ্টের জন্য রুবি ফাইলগুলির জন্য "উত্সাহিত" রত্ন, "জেএস-বিউটিফাই" এনপিএম প্যাকেজ।
জটিল সি ++ ফাইলগুলির জন্য ভিআইএম সর্বদা বিন্যাসের =
ফিল্টার কমান্ড ব্যবহার করার সময় ফরম্যাটটি সঠিকভাবে পায় না । সুতরাং এই জাতীয় পরিস্থিতির জন্য অ্যাস্টাইলের (বা অস্বীকার না করা ) মতো বাহ্যিক সি ++ ফর্ম্যাটর ব্যবহার করা ভাল better
:%!astyle
ভিমের '=' ফাংশনটি ডিফল্টরূপে তার অভ্যন্তরীণ ফরম্যাটর ব্যবহার করে (যা সর্বদা জিনিস ঠিক হয়ে যায় না) তবে এ প্রশ্নের ক্ষেত্রে আলোচিত হিসাবে এটি যথাযথভাবে সেট করে এটি এস্টাইলের মতো একটি বাহ্যিক বিন্যাসক ব্যবহার করতে পারে ।
এক্সএমএল ফাইলগুলির জন্য, আমি এই আদেশটি ব্যবহার করি
:1,$!xmllint --format --recover - 2>/dev/null
আপনার xmllint ইনস্টল করা প্রয়োজন (প্যাকেজ libxML2-utils)
(সূত্র : http://ku1ik.com/2011/09/08/formatting-xML-in-vim-wind-indent-command.html )
এটি করার জন্য আপনি একটি ম্যাপিং তৈরি করতে পারেন।
এইটি পুরো ফাইলটিকে স্বয়ংক্রিয়ভাবে প্রবেশ করবে এবং আপনার কার্সারটিকে আপনি যে অবস্থানে রাখবেন তারপরে:
nmap <leader>ai mzgg=G`z
Vi সম্পাদকের জন্য, ব্যবহার করুন: সন্নিবেশ করান। এটি আপনার সমস্ত ফর্ম্যাটিং রাখবে এবং স্ব-ইনডেন্টিং notোকাবে না O একবার প্রকৃত বিন্যাসকৃত ফাইলটি দেখার জন্য একবার পালাতে চাপুন অন্যথায় আপনি কিছু আবর্জনার অক্ষর দেখতে পাবেন। যেমন ^ আমি যেমন:
public static void main(String[] args) {
^I
^I System.out.println("Some Garbage printed upon using :insert");
}
কেবল ভিএম-তে ভিজ্যুয়াল মোডে যান এবং কেবল চাপুন = চাপানোর পরে উপরের নিচের লাইনগুলি থেকে নির্বাচন করুন, সমস্ত নির্বাচিত লাইন ইনডেন্ট হবে।
ggvG=
আপনি যখন পারেন gg=G
। গতিটি দৃশ্যমান করার কী লাভ ছিল? এটি সমস্ত ক্রিয়াকলাপগুলির জন্য যা গতিপ্রবণ হয়।