ভিম সম্পাদকের লাইনের সেটের জন্য সাদা স্থান মুছুন


12

আমার কাছে একটি ফাইলে নীচের মতো কিছু পাঠ্য রয়েছে:

  sample text
    some random text
            even more random text
text with no indent
 worst indention

আমাকে প্রতিটি লাইনের আগে খালি জায়গাটি মুছতে হবে। এক লাইনের জন্য আমি যা করি তা হ'ল 0dw

আমি একই কমান্ড ব্যবহার করে পুনরাবৃত্তি করতে পারেন। কিন্তু ম্যানুয়ালি পরবর্তী লাইনে নেভিগেট করে।

তবে লাইনের সেই ব্লকগুলিতে '0 ডিডব্লু' প্রয়োগ করার কোনও উপায় আছে কি?

আমি মনে করি ম্যাক্রো ব্যবহারের কোনও উপায় আছে তবে আমি সেগুলি আগে ব্যবহার করি নি। তবে আমি তাদের শিখতে ইচ্ছুক যদি অন্য কোনও পছন্দ না হয়।


+1 সুন্দর প্রশ্ন, আমি একই জিনিসটি অনেকটা শেষ করি। এবং সাইটে স্বাগতম।
সারদাথ্রিয়ন - এসই এর বিরুদ্ধে

উত্তর:


10
:%s/^\s\+
" Same thing (:le = :left = left-align given range):
:%le

Http://vim.wikia.com/wiki/Remove_unwanted_spaces এ এখানে আরও জানুন

আপনি যদি নির্দিষ্ট রেখার জন্য এটি করতে চান:

:19,25s/^\s\+//

বিটিডাব্লু, vimtutorভিম শিখতে শুরু করার সর্বোত্তম উপায় হ'ল কমান্ড কার্যকর করা , এটি আপনাকে শিখিয়ে দেবে যে কীভাবে Vim সম্পাদকটিতে Vim ব্যবহার করতে হয়।


1
: লে অসাধারণ ছিল এবং বিকল্পগুলি এবং লিঙ্কটির জন্য অনেক ধন্যবাদ :)
saiy2k

3
ভিটমিটারের জন্য +1 উল্লেখের পাশাপাশি একটি ভাল উত্তর।
সারদাথ্রিয়ন - এসই এর বিরুদ্ধে

1
Vলাইন নির্বাচন প্রসারিত করতে কার্সারটি ব্যবহার করে এবং এটিকে সরিয়ে প্রাসঙ্গিক লাইনগুলি নির্বাচন করুন। তারপরে :স্বয়ংক্রিয়ভাবে প্রবেশ করতে টিপুন '<,'>এবং সেখান থেকে আপনি নিখিলের রেজিপ্সপ ব্যবহার করতে পারেন।
চাচা জিভ

1
বিভিন্ন রেখার কাজ করার আরেকটি উপায় (যেহেতু আমি সর্বদা লাইন নম্বরগুলি ভুলে যাই) হ'ল 2 লাইন চিহ্নিত করে চিহ্নগুলিতে কাজ করা। উদাহরণস্বরূপ, 19 লাইনে যান এবং 'মা' টিপুন, 25 লাইনে যান এবং 'এমবি' টিপুন, তারপরে করুন :'a,'bs/^\s\+//
প্যাট্রিক

7

এটি করার একটি বিকল্প উপায় হ'ল ভিআইএমের ইনডেন্টেশন সরঞ্জামগুলি (সাধারণত আবদ্ধ </ >)। প্রথমে কোন লাইনগুলি প্রভাবিত হবে তা নির্দেশ করার জন্য আপনাকে কিছু উপায় প্রয়োজন। আপনি ভিজ্যুয়াল সিলেকশন মোড বা প্রভাবিত হতে পারে এমন বিভিন্ন রেখার নির্দিষ্টকরণের অন্য কোনও উপায় ব্যবহার করতে পারেন, তারপরে অপসারণের জন্য একটি নির্বিচারে উচ্চ সংখ্যা বা ইন্ডেন্টেশন স্তর ব্যবহার করুন। 9<সাধারণত বর্তমান লাইন (গুলি) থেকে কমপক্ষে 9 স্তরের সম্ভাব্য ইনডেন্টেশন (ট্যাব / স্পেস) অপসারণ করতে কৌশলটি খুব সুন্দর করে তোলে does


3

আমি নিম্নলিখিত নিম্নলিখিত পদক্ষেপে এটি করার জন্য পন্থা পেয়েছি:

1. press `v` to go to visual selection mode
2. select the lines you want to affect
3. :'<,'>normal 0dw

তৃতীয় পদক্ষেপের ব্যাখ্যা:

0 লাইনের শুরুতে নেভিগেট করে।

dw শব্দটি মুছে ফেলে (খালি স্থান)।

normalআদেশ প্রয়োগ করে 0dw

'<,'> ভিজ্যুয়াল মোডে সমস্ত নির্বাচিত লাইনের জন্য পুনরাবৃত্তি করে।


1

ctrl+vআপনি যা চান ঠিক তেমন কিছু করার অনুমতি দেয়। আপনি একটি ভিজ্যুয়াল ব্লক নির্বাচন করতে পারেন এবং লটে একটি কমান্ড প্রয়োগ করতে পারেন।


2
আমি ব্লক মোডে এই লাইনগুলি নির্বাচন করেছি এবং এই আদেশটি কাজ করেছে:: '<,'> স্বাভাবিক 0 ডিডব্লিউ
সাই 2২

1
@ সাইআই 2 :normalকে এখানে গুরুত্বপূর্ণ জিনিস এবং আমি মনে করি এটি এখানে সেরা উত্তর। আপনি কি উত্তর হিসাবে পোস্ট করতে পারেন?
গিলস 23'23 এ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.