چگونگی کار با ویرایشگر vi
در این آموزش به شرح چگونگی کار با ویرایشگر متنی vi خواهیم پرداخت.
جابهجا کردن مکاننما در vi
وقتی که در حالت فرمان (Command Mode) در برنامه vi هستیم، vi فرمانهای زیادی به منظور جابهجا کردن مکاننما در اختیار ما قرار میدهد که برخی از آنها به همراه less به کار میروند. در جدول زیر لیستی از این فرمانها را مشاهده میکنید:
| کلید | جابجا کردن مکاننما |
|---|---|
| L or right arrow | یک کاراکتر به راست |
| H or left arrow | یک کاراکتر به چپ |
| J or down arrow | یک خط به پایین |
| K or up arrow | یک خط به بالا |
| 0 (zero) | به ابتدای خط فعلی |
| SHIFT-6 (^) | به اولین کاراکتر غیر ز فضای خالی در خط فعلی |
| SHIFT-4 ($) | به آخر خط فعلی |
| W | به ابتدای کلمه بعدی یا کاراکتر نقطهگذاری |
| SHIFT-W (W) | به ابتدای کلمه بعدی و نادیده گرفتن کاراکترهای نقطهگذاری |
| B | به ابتدای کلمه قبلی یا کاراکتر نقطهگذاری |
| SHIFT-B (B) | به ابتدای کلمه قبلی و نادیده گرفتن کاراکترهای نقطهگذاری |
| CTRL-F or PAGE DOWN | یک صفحه به پایین |
| CTRL-B or PAGE UP | یک صفحه به بالا |
| number-SHIFT-G | به شماره خط |
| SHIFT-G (G) | به آخرین خط فایل |
به چه دلیل کلیدهای K، J، H و L به منظور جابهجایی مکاننما به کار میروند؟ به این دلیل که وقتی vi برای اولین بار نوشته شد، همه ترمینالهای تصویری دارای کلیدهای جهتنما نبودند و تایپیستهای حرفهای میتوانستند از کلیدهای عادی برای جابهجایی مکاننما استفاده کنند بدون نیاز به اینکه دست خود را از روی صفحهکلید بردارند.
بسیاری از فرمانهای موجود در vi را میتوان با یک شماره پیشوند کرد. مثل فرمان G که در جدول بالا نمایش داده شده است. با پیشوند کردن فرمانها با یک شماره، ممکن است تعداد دفعاتی که یک فرمان اجرا میشود را تعیین کنیم. برای مثال، فرمان j عمل جابهجایی به خط پایینی را انجام میدهد. حال، فرمان ۵j وظیفه جابهجایی به ۵ خط پایینی را انجام میدهد.
ویرایش ابتدایی در vi
بیشتر ویرایشها شامل عملیات ساده همچون درج متن، حذف متن و جابهجایی متن با فرمانهای کپی و چسباندن است. در این آموزش با انواع مختلف عملیات ویرایش متن در داخل vi آشنا میشویم:
افزودن متن
vi چندین روش برای ورود به حالت درج (Insert Mode) دارد. همانطور که اشاره با فرمان I به منظور ورود، آشنا شدید. به فایل ویرایشی خود در داخل vi بازگردید.
The quick brown fox jumped over the lazy dog.
اگر بخواهید کمی متن یه آخر این جمله اضافه کنید، متوجه خواهید شد که فرمان i این کار را انجام نمیدهد. چون که در حالت درج نمیتوانیم مکاننما را به آخر خط انتقال دهیم. vi فرمانی را به منظور درج متن فراهم کرده که فرمان a نامیده میشود. اگر که مکاننما را به آخر خط ببریم (دقت کنید که در داخل حالت درج نباشید) و a را تایپ کنیم، مکاننما به پایان خط رفته و vi وارد حالت درج میشود. این کار، شما را قادر میسازد تا متن بیشتری به پایان اضافه کنید:
The quick brown fox jumped over the lazy dog. It was cool.
به یاد داشته باشید که برای خارج شدن از حالت درج، کلید Esc را فشار دهید.
به دلیل اینکه ما همیشه میخواهیم به پایان یک خط متن اضافه کنیم، vi یک کلید میانبر را به این منظور در نظر گرفته است تا به آخر خط انتقال داده شویم و درج را آغاز کنیم. این فرمان A میباشد. امتحان میکنیم و خطوط جدیدی را به فایل خود اضافه مینماییم.
ابتدا مکاننما را با استفاده از فرمان ۰ به اول خط میآوریم. سپس فرمان A را امتحان میکنیم و متن مورد نظر را وارد مینماییم.
The quick brown fox jumped over the lazy dog. It was cool. Line 2 Line 3 Line 4 Line 5
مجدد برای خروج از حالت درج، کلید Esc را فشار دهید. همانطور که میبینید فرمان A بسیار مفیدتر از a است. چرا که هم ما را به انتهای خط میبرد و هم ما را وارد حالت درج میکند.
باز کردن یک خط
روشی دیگر که از آن به منظور درج متن استفاده میکنیم باز کردن یک خط است. این کار یک خط خالی بین خطوط موجود درج کرده و ما را وارد حالت درج مینماید. دارای دو نوع مختلف است که در جدول زیر میبینید:
| فرمان | باز میکند |
|---|---|
| o | یک خط در پایین خط فعلی |
| O | یک خط در بالای خط فعلی |
ما میتوانیم این را به صورت زیر توضیح دهیم. مکاننما را به خط ۳ برده و سپس o را تایپ کنید:
The quick brown fox jumped over the lazy dog. It was cool. Line 2 Line 3 Line 4 Line 5
همانطور که میبینید یک خط جدید در زیر خط شماره ۳ ایجاد شده و ما وارد حالت درج شدیم. با فشار دادن کلید Esc از حالت درج خارج شوید. به منظور خنثی کردن تغییر u را تایپ کنید و این بار O را تایپ نمایید:
The quick brown fox jumped over the lazy dog. It was cool. Line 2 Line 3 Line 4 Line 5
همانطور که میبینید این بار یک خط جدید در بالای خط ۳ ایجاد میکنیم. برای خارج شدن از حالت درج، کلید Esc و برای درج کلید u را فشار دهید.
حذف متن
همانطور که باید انتظار داشته باشید vi روشهای مختلفی را به منظور حذف متن برای ما فراهم میآورد که دارای یک از دو کلید هستند. اول کلید X که یک کاراکتر را در موقعیت مکاننما حذف میکند. X ممکن است با یک شمارنده پیشوند شود که نشانگر این است که چه تعداد کاراکتر در موقعیت مکاننما حذف خواهند شد. کلید D هدف کلیتری دارد. مانند X، کلید D نیز ممکن است با شماره، پیشوند شود که تعداد دفعاتی که حذف انجام خواهد شد را مشخص میکند. بهعلاوه D همیشه با یک فرمان جابهجایی همراه شود که اندازه حذف را کنترل میکند. در جدول زیر، برخی از این مثالها آورده شده است:
| فرمان | پاک میکند |
|---|---|
| x | کاراکتر فعلی |
| 3x | کاراکتر فعلی و دو کاراکتر بعدی |
| dd | خط فعلی |
| 5dd | خط فعلی و چهار خط بعدی |
| dW | از موقعیت فعلی مکاننما تا شروع کلمه بعدی |
| d$ | از موقعیت فعلی مکاننما تا آخر خط فعلی |
| d0 | از موقعیت فعلی مکاننما تا ابتدای خط |
| d^ | از موقعیت فعلی مکاننما تا اولین کاراکتر غیرفضای خالی در خط |
| dG | از خط فعلی تا انتهای فایل |
| d20G | از خط فعلی تا خط بیستم فایل |
در ادامه، حالت حذف را با فرمان d امتحان میکنیم. مکاننما را بر روی کلید more انتقال داده و dW را تایپ نمایید. همانطور که میبینید، کلمه more حذف شد:
The quick brown fox jumped over the lazy dog. was cool. Line 2 Line 3 Line 4 Line 5
به منظور حذف از موقعیت مکاننما تا پایان خط فرمان d$ را وارد کنید:
The quick brown fox jumped over the lazy dog. Line 2 Line 3 Line 4 Line 5
به منظور حذف از خط فعلی تا پایان فایل dG را وارد کنید:
~ ~ ~ ~ ~
برش، کپی و چسباندن متن
فرمان d فقط متن را حذف نمیکند، بلکه در واقع آن را برش داده و متن ما به حافظه بافر (در داخل کلیپبورد) منتقل میشود. حال ما میتوانیم با استفاده از فرمان p متن موجود در حافظه را پس از محل مکاننما و یا با استفاده از فرمان p به قبل از محل مکاننما منتقل کنیم. فرمان y به منظور کپی کردن (Yank به معنای تکان دادن) متن به همان شیوهای است که فرمان d را به کار میبریم. جدول زیر برخی از مثالهای ترکیبی فرمان y با فرمانهای مختلف جابهجایی را نشان میدهد:
| فرمان | کپی |
|---|---|
| yy | خط فعلی |
| 5yy | خط فعلی و چهار خط پس از آن |
| yW | از موقعیت فعلی مکاننما تا ابتدای کلمه بعدی |
| y$ | از مکان فعلی مکاننما تا پایان خط فعلی |
| y0 | از موقعیت فعلی مکاننما تا ابتدای خط |
| y^ | از موقعیت فعلی مکاننما تا اولین کاراکتر غیرفضای خالی موجود در خط |
| yG | از خط فعلی تا پایان خط |
| y20G | از خط فعلی تا خط بیستم فایل |
اکنون کپی و چسباندن را امتحان میکنیم. مکاننما را در خط اول قرار داده و yy را فشار دهید تا خط اول را کپی کنید. سپس مکاننما را به خط آخر برده (با استفاده از میانبر G) و سپس برای چسباندن متن در این محل p را فشار دهید:
The quick brown fox jumped over the lazy dog. It was cool. Line 2 Line 3 Line 4 Line 5 The quick brown fox jumped over the lazy dog. It was cool.
درست مثل قبل از فرمان u برای باطل کردن تغییر ایجاد شده استفاده میکنیم. ملاحظه میشود مکاننما هنوز در خط آخر قرار دارد P را فشار داده تا متن در بالای خط فعلی کپی شود:
The quick brown fox jumped over the lazy dog. It was cool. Line 2 Line 3 Line 4 The quick brown fox jumped over the lazy dog. It was cool. Line 5
میتوانید برخی از دیگر فرمانهای y که در جدول بالا آورده شدهاند را امتحان کنید و رفتار فرمانهای p و P را بررسی کنید.
اتصال خطوط
معمولاً ممکن نیست که مکاننما را به پایان یک خط برده و کاراکتر پایان یک خط را حذف کرده و یک خط را به خط پایین آن متصل کنید. به همین دلیل برای این کار فرمان خاصی در vi وجود دارد. به این منظور از فرمان J (این فرمان را با فرمان j که به منظور جابهجایی خط اشتفاده میشود قاطی کنید) برای اتصال خطوط به یکدیگر استفاده میکنیم.
اگر که مکاننما را به خط ۳ برده و سپس J را تایپ کنیم، این اتفاق میافتد:
The quick brown fox jumped over the lazy dog. It was cool. Line 2 Line 3 Line 4 Line 5
همانطور که مشاهده میکنید خطوط ۳ و ۴ به یکدیگر متصل میشوند.
درباره فرشید نوتاش حقیقت
همیشه نیازمند یک منبع آموزشی فارسی در حوزه نرمافزارهای آزاد/ متنباز و سیستمعامل گنو/لینوکس بودم. از این رو این رسالت رو برای خودم تعریف کردم تا رسانه «محتوای باز» رو بوجود بیارم.
نوشتههای بیشتر از فرشید نوتاش حقیقتاین سایت از اکیسمت برای کاهش جفنگ استفاده میکند. درباره چگونگی پردازش دادههای دیدگاه خود بیشتر بدانید.
دیدگاهتان را بنویسید