ارسال هرزنامه کلید Backspace تنها راه برای حذف خطوط کامل در Vi و Vim نیست.
ویرایش فایل های متنی مستقیماً از ترمینال لینوکس می تواند دشوار باشد، به خصوص اگر از یک ویرایشگر متن پیچیده مانند Vi یا Vim استفاده می کنید. كاربران مبتدي براي پيچيدن سر خود در اطراف ويرايشگرهاي متن خط فرمان مشكل دارند و اغلب به خاطر سپردن صحافي هاي كليدي مورد استفاده براي انجام عمليات اساسي برايشان مشكل است.
حتی حذف خطوط در Vi و Vim می تواند برای تازه واردان اعصاب خردکن باشد. استفاده از یک ابزار ابتدایی مانند ویرایشگر متن نیازی به کار سختی نیست.
در اینجا نحوه حذف یک یا چند خط از یک فایل متنی با استفاده از Vi و Vim آورده شده است.
چگونه یک خط را در Vi/Vim حذف کنیم
راه بهتری برای حذف خطوط کامل در Vi و Vim نسبت به اسپم کردن Backspace روی صفحه کلید وجود دارد.
برای حذف یک خط در Vi یا Vim، ابتدا به حالت عادی بروید. اگر در حالت فرمان یا درج هستید، می توانید با فشار دادن Escape به حالت عادی برگردید. اگر نمی دانید حالت ها چیست، فرصت خوبی برای یادگیری اصول اولیه Vim است.
خطی را که می خواهید حذف کنید برجسته کنید، سپس dd یا D را از صفحه کلید بزنید. ویرایشگر به طور خودکار کل خط را از فایل حذف می کند.
دستورات Vi و Vim به حروف بزرگ و کوچک حساس هستند، به این معنی
د
و
D
به عنوان دو دستور جداگانه شناسایی می شوند.
چند بار زدن dd یا D چندین خط را یکی یکی حذف می کند. پس از حذف خط قبلی، خط بعدی به طور خودکار برجسته می شود.
برای حذف یک خط خاص در Vi/Vim، Escape را فشار دهید تا وارد حالت فرمان شوید، سپس nd را تایپ کنید تا یک خط خاص حذف شود، جایی که n تعداد خطی است که می خواهید حذف کنید.
به عنوان مثال، اگر می خواهید خط 150 را در فایل /var/log/messages حذف کنید، آن را با Vi/Vim باز کرده و سپس 150d را تایپ کنید تا خط حذف شود.
حذف چندین خط در Vi و Vim
اگر ضربه زدن مکرر کلیدهای صفحه کلید را ناخوشایند میدانید، میتوانید چندین خط را به طور همزمان با تغییر دستور فوق حذف کنید. به جای فشار دادن dd، می توانید تعداد خطوطی را که می خواهید حذف کنید مشخص کنید.
به عنوان مثال، با تایپ 3dd، سه خط بعدی از فایل حذف می شود.
اگر میخواهید چندین خط را در یک محدوده خاص حذف کنید، ابتدا باید به حالت فرمان بروید (در حالت عادی Escape را فشار دهید). سپس، از دستور زیر برای ایجاد دستور حذف خود استفاده کنید:
:[start],[end]d
به عنوان مثال، برای حذف خطوط بین محدوده یک و پنج:
:1,5d
همچنین می توانید از کاراکترهای wildcard در دستور بالا استفاده کنید.
- . (نقطه): به خط جاری اشاره دارد
- $ (دلار): نشان دهنده پایان فایل است
- % (درصد): با تمام خطوط موجود در فایل مطابقت دارد
مثلا:
:.,5d # deletes lines between the current line and the fifth line
:.,$d # removes all lines starting from the current line till the end
:%d # clears the entire file
حذف خطوط بر اساس عبارات منظم
عبارات منظم زمانی مفید هستند که می خواهید خطوط حاوی یک الگو را جستجو و حذف کنید. می توانید خطوط حاوی یک کلمه خاص، خطوطی که با یک حرف خاص شروع می شوند و موارد دیگر را حذف کنید. در داخل Vi/Vim می توانید این کار را با استفاده از دستور g که مخفف global است انجام دهید.
سینتکس اصلی دستور به صورت زیر است:
:g/pattern/command
از آنجایی که می خواهید موارد را حذف کنید، دستور را در رشته بالا با d جایگزین می کنید. در مورد الگو، می توانید از هر عبارت منظم معتبری برای مطابقت با خطوطی که باید در یک فایل حذف کنید استفاده کنید.
به عنوان مثال، برای حذف خطوط حاوی کلمه “حذف”، موارد زیر را وارد کنید:
:g/delete/d
میتوانید این عمل را با پیشگفتار اولین اسلش (/) با علامت تعجب (!) یا با جایگزین کردن g با v، که به عنوان معکوس g عمل میکند، معکوس کنید.
:g!/word/d
:v/word/d
برای مطابقت و حذف خطوطی که با حرف “T” شروع می شوند، از:
:g/^T/d
برای تسلط بر ابزارهای خط فرمان مانند Vi و Vim نیاز به تمرین و تکرار زیاد است. برای اینکه کار را برای خود آسانتر کنید، برگه تقلب دستورات Vim ما را برای مرجع بعدی نشانکگذاری کنید.
اسپم کردن Backspace؟ نه ممنون! من از Vi/Vim استفاده می کنم
اگر میخواهید به یک کاربر قدرتمند لینوکس تبدیل شوید، یادگیری زیر و بم ابزارهای خط فرمان مسیری است که باید به سمت آن حرکت کنید. در لینوکس، می توانید از میانبرها و اتصالات کلیدی مختلف برای انجام کارهایی استفاده کنید که در غیر این صورت زمان و تلاش زیادی را می طلبند.
برای کسانی که مشتاقانه منتظر تسلط بر Vim هستند، خبرهای خوبی وجود دارد. بسته vim با Vimtutor ارائه می شود، یک معلم خط فرمان رایگان که به شما کمک می کند از Vim تا پتانسیل واقعی خود استفاده کنید.