ভিমের ফাঁকা লাইন সরানোর জন্য আমি কোন আদেশটি চালাতে পারি?
ভিমের ফাঁকা লাইন সরানোর জন্য আমি কোন আদেশটি চালাতে পারি?
উত্তর:
:g/^$/d
:g
রেজেক্সের সাথে মিল পাওয়া লাইনে একটি কমান্ড কার্যকর করবে। রেজেক্সটি 'ফাঁকা রেখা' এবং কমান্ডটি হ'ল :d
(মুছুন)
:%!cat -s
পছন্দ হতে পারে ..
এটি পেয়েছি, এটি:
g/^\s*$/d
উত্স: জি উইম উইকিয়া পাওয়ার
সংক্ষিপ্ত ব্যাখ্যা
:g
:[range]g/pattern/cmd
এটি প্রতিটি রেখার মিলের প্যাটার্নের জন্য এক্স কমান্ড সিএমডি এক্সিকিউট করে নির্দিষ্ট [রেঞ্জ] (ডিফল্ট পুরো ফাইল) এ কাজ করে (একটি প্রাক্তন কমান্ড হ'ল মুছে ফেলার মতো কোলন দিয়ে শুরু করা হয় )। চালানোর আগে cmd কমান্ড , " " বর্তমান লাইন সেট করা হয়।
:d
.
:v/./d
অথবা
:g/^$/d
অথবা
:%!cat -s
নিম্নলিখিতগুলি কেবলমাত্র বহুগুলি ফাঁকা রেখা সরানোর জন্য (এগুলিকে একটি ফাঁকা রেখায় হ্রাস করতে) এবং একক ফাঁকা রেখা অক্ষত রেখে দিতে ব্যবহার করা যেতে পারে:
:g/^\_$\n\_^$/d
\_$
এর অর্থ লাইনটির শেষ প্রান্ত যা কোনও প্যাটার্নের অভ্যন্তরে ব্যবহার করা যেতে পারে ( $
কেবল প্যাটার্নের শেষে ব্যবহার করা যেতে পারে)) একই \_^
অর্থ একটি রেখার সূচনা এবং প্যাটার্নের অভ্যন্তরে যে কোনও জায়গায় ব্যবহার করা যেতে পারে। সুতরাং, প্যাটার্নটি খালি লাইন, একটি নতুন লাইন এবং আবার একটি খালি লাইনের সাথে মেলে। দেখুন তেজ সহায়তা পৃষ্ঠা Regex ।
:g/^$/,/./-j
কিভাবে সমস্ত ফাঁকা লাইন সরিয়ে ফেলুন
:%s,\n\n,^M,g
(এই একাধিক বার ব্যবহার করে সমস্ত খালি লাইন চলে গেল)
কীভাবে সমস্ত ফাঁকা রেখাগুলি সিংকে ফাঁকা রেখা ছেড়ে যাবে
:%s,\n\n\n,^M^M,g
(এটি একাধিক বার করুন)
ম্যাক্সিমামে TWO খালি লাইন রেখে সমস্ত ফাঁকা লাইন কীভাবে সরিয়ে ফেলতে হবে,
:%s,\n\n\n\n,^M^M^M,g
(এটি একাধিক বার করুন)
^ এম ইনপুট করতে, আমাকে উইন্ডোতে কন্ট্রোল-কি এবং কন্ট্রোল-এম করতে হবে
\r
এর জায়গায় ব্যবহার করতে পারেন Ctrl-M
।
কেমন:
:g/^[ \t]*$/d
ভিম মধ্যে পার্ল সঙ্গে কাজ:
:%!perl -pi -e s/^\s*$//g
chomp
?
এই ফাংশনটি কেবল দুটি বা ততোধিক ফাঁকা লাইন সরিয়ে দেয়, নীচে আপনার ভিআমআরসি-র রেখা রাখবে, তারপরে ফাংশন কল করতে \ d ব্যবহার করুন
fun! DelBlank()
let _s=@/
let l = line(".")
let c = col(".")
:g/^\n\{2,}/d
let @/=_s
call cursor(l, c)
endfun
map <special> <leader>d :keepjumps call DelBlank()<cr>
আমি এই পৃষ্ঠায় কয়েকটি উত্তর চেষ্টা করেছি, কিন্তু তাদের মধ্যে অনেকগুলি আমার পক্ষে কার্যকর হয়নি। সম্ভবত কারণ আমি উইন্ডোজ on এ ভিম ব্যবহার করছি (উপহাস করবেন না, কেবল আমার প্রতি করুণা করুন: পি)?
উইন্ডোজ in-এর ভিমে কাজ করে এমনটি আমি সবচেয়ে সহজ খুঁজে পেয়েছি:
:v/\S/d
এখানে ভিম উইকিয়ায় একটি দীর্ঘ উত্তর দেওয়া হয়েছে: http://vim.wikia.com/wiki/Remove_unwanted_empty_lines
:g/^\s*$/d
^ begin of a line
\s* at least 0 spaces and as many as possible (greedy)
$ end of a line
পেস্ট করুন
:command -range=% DBL :<line1>,<line2>g/^\s*$/d
আপনার .vimrc এ, তারপরে আপনার ভিম পুনরায় চালু করুন। আপনি যদি কমান্ডটি ব্যবহার করেন: 5,12DBL এটি 5 তম সারি এবং 12 তম সারির মধ্যে সমস্ত ফাঁকা রেখা মুছে ফেলবে। আমার উত্তর আমার সেরা উত্তর!
যদি কোনও কিছু আপনার পাঠ্যকে দ্বিগুণ করে তোলে তবে এই কমান্ডটি দ্বৈত ব্যবধান সরিয়ে ফেলবে এবং প্রাক-বিদ্যমান পুনরাবৃত্তি ফাঁকা রেখাগুলিকে একক ফাঁকা লাইনে মার্জ করবে। এটি একটি লাইনের শুরুতে ^^^ এর একটি অস্থায়ী সীমানা ব্যবহার করে তাই যদি আপনার সামগ্রীর সাথে এই সংঘাত হয় অন্য কিছু চয়ন করে। কেবল শ্বেতস্থানযুক্ত রেখাগুলি ফাঁকা হিসাবে গণ্য করা হয়।
%s/^\s*\n\n\+/^^^\r/g | g/^\s*$/d | %s/^^^^.*
এটি আমার পক্ষে কাজ করেছে:
:%s/^[^a-zA-Z0-9]$\n//ig
এটি মূলত সমস্ত লাইন মুছে ফেলা হয় যার একটি নম্বর বা অক্ষর নেই। যেহেতু আমার তালিকার সমস্ত আইটেমের চিঠি ছিল তাই এটি সমস্ত ফাঁকা রেখা মুছে ফেলে।