خط فرمانگنو/لینوکس

چگونگی کار با ویرایشگر 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 بازگردید.

اگر بخواهید کمی متن یه آخر این جمله اضافه کنید، متوجه خواهید شد که فرمان i این کار را انجام نمی‌دهد. چون که در حالت درج نمی‌توانیم مکان‌نما را به آخر خط انتقال دهیم. vi  فرمانی را به منظور درج متن فراهم کرده که فرمان a نامیده می‌شود. اگر که مکان‌نما را به آخر خط ببریم (دقت کنید که در داخل حالت درج نباشید) و a را تایپ کنیم، مکان‌نما به پایان خط رفته و vi وارد حالت درج می‌شود. این کار، شما را قادر می‌سازد تا متن بیشتری به پایان اضافه کنید:

به یاد داشته باشید که برای خارج شدن از حالت درج، کلید Esc را فشار دهید.

به دلیل اینکه ما همیشه می‌خواهیم به پایان یک خط متن اضافه کنیم، vi یک کلید میانبر را به این منظور در نظر گرفته است تا به آخر خط انتقال داده شویم و درج را آغاز کنیم. این فرمان A می‌باشد. امتحان می‌کنیم و خطوط جدیدی را به فایل خود اضافه می‌نماییم.

ابتدا مکان‌نما را با استفاده از فرمان ۰ به اول خط می‌آوریم. سپس فرمان A را امتحان می‌کنیم و متن مورد نظر را وارد می‌نماییم.

مجدد برای خروج از حالت درج، کلید Esc را فشار دهید. همانطور که می‌بینید فرمان A بسیار مفیدتر از a است. چرا که هم ما را به انتهای خط می‌برد و هم ما را وارد حالت درج می‌کند.

باز کردن یک خط

روشی دیگر که از آن به منظور درج متن استفاده می‌کنیم باز کردن یک خط است. این کار یک خط خالی بین خطوط موجود درج کرده و ما را وارد حالت درج می‌نماید. دارای دو نوع مختلف است که در جدول زیر می‌بینید:

فرمانباز می‌کند
oیک خط در پایین خط فعلی
Oیک خط در بالای خط فعلی

ما می‌توانیم این را به صورت زیر توضیح دهیم. مکان‌نما را به خط ۳ برده و سپس o را تایپ کنید:

همانطور که می‌بینید یک خط جدید در زیر خط شماره ۳ ایجاد شده و ما وارد حالت درج شدیم. با فشار دادن کلید Esc از حالت درج خارج شوید. به منظور خنثی کردن تغییر u را تایپ کنید و این بار O را تایپ نمایید:

همانطور که می‌بینید این بار یک خط جدید در بالای خط ۳ ایجاد می‌کنیم. برای خارج شدن از حالت درج، کلید Esc و برای درج کلید u را فشار دهید.

حذف متن

همانطور که باید انتظار داشته باشید vi روش‌های مختلفی را به منظور حذف متن برای ما فراهم می‌آورد که دارای یک از دو کلید هستند. اول کلید X که یک کاراکتر را در موقعیت مکان‌نما حذف می‌کند. X ممکن است با یک شمارنده پیشوند شود که نشانگر این است که چه تعداد کاراکتر در موقعیت مکان‌نما حذف خواهند شد. کلید D هدف کلی‌تری دارد. مانند X، کلید D نیز ممکن است با شماره، پیشوند شود که تعداد دفعاتی که حذف انجام خواهد شد را مشخص می‌کند. به‌علاوه D همیشه با یک فرمان جابه‌جایی همراه شود که اندازه حذف را کنترل می‌کند. در جدول زیر، برخی از این مثال‌ها آورده شده است:

فرمانپاک می‌کند
xکاراکتر فعلی
3xکاراکتر فعلی و دو کاراکتر بعدی
ddخط فعلی
5ddخط فعلی و چهار خط بعدی
dWاز موقعیت فعلی مکان‌نما تا شروع کلمه بعدی
d$از موقعیت فعلی مکان‌نما تا آخر خط فعلی
d0از موقعیت فعلی مکان‌نما تا ابتدای خط
d^از موقعیت فعلی مکان‌نما تا اولین کاراکتر غیرفضای خالی در خط
dGاز خط فعلی تا انتهای فایل
d20Gاز خط فعلی تا خط بیستم فایل

در ادامه، حالت حذف را با فرمان d امتحان می‌کنیم. مکان‌نما را بر روی کلید more انتقال داده و dW را تایپ نمایید. همانطور که می‌بینید، کلمه more حذف شد:

به منظور حذف از موقعیت مکان‌نما تا پایان خط فرمان d$ را وارد کنید:

به منظور حذف از خط فعلی تا پایان فایل dG را وارد کنید:

برش، کپی و چسباندن متن

فرمان d فقط متن را حذف نمی‌کند، بلکه در واقع آن را برش داده و متن ما به حافظه بافر (در داخل کلیپ‌بورد) منتقل می‌شود. حال ما می‌توانیم با استفاده از فرمان p متن موجود در حافظه را پس از محل مکان‌نما و یا با استفاده از فرمان p به قبل از محل مکان‌نما منتقل کنیم. فرمان y به منظور کپی کردن (Yank به معنای تکان دادن) متن به همان شیوه‌ای است که فرمان d را به کار می‌بریم. جدول زیر برخی از مثال‌های ترکیبی فرمان y با فرمان‌های مختلف جابه‌جایی را نشان می‌دهد:

فرمانکپی
yyخط فعلی
5yyخط فعلی و چهار خط پس از آن
yWاز موقعیت فعلی مکان‌نما تا ابتدای کلمه بعدی
y$از مکان فعلی مکان‌نما تا پایان خط فعلی
y0از موقعیت فعلی مکان‌نما تا ابتدای خط
y^از موقعیت فعلی مکان‌نما تا اولین کاراکتر غیرفضای خالی موجود در خط
yGاز خط فعلی تا پایان خط
y20Gاز خط فعلی تا خط بیستم فایل

اکنون کپی و چسباندن را امتحان می‌کنیم. مکان‌نما را در خط اول قرار داده و yy را فشار دهید تا خط اول را کپی کنید. سپس مکان‌نما را به خط آخر برده (با استفاده از میانبر G) و سپس برای چسباندن متن در این محل p را فشار دهید:

درست مثل قبل از فرمان u برای باطل کردن تغییر ایجاد شده استفاده می‌کنیم. ملاحظه می‌شود مکان‌نما هنوز در خط آخر قرار دارد P را فشار داده تا متن در بالای خط فعلی کپی شود:

می‌توانید برخی از دیگر فرمان‌های y که در جدول بالا آورده شده‌اند را امتحان کنید و رفتار فرمان‌های p و P را بررسی کنید.

اتصال خطوط

معمولاً ممکن نیست که مکان‌نما را به پایان یک خط برده و کاراکتر پایان یک خط را حذف کرده و یک خط را به خط پایین آن متصل کنید. به همین دلیل برای این کار فرمان خاصی در vi وجود دارد. به این منظور از فرمان J (این فرمان را با فرمان j که به منظور جابه‌جایی خط اشتفاده می‌شود قاطی کنید) برای اتصال خطوط به یکدیگر استفاده می‌کنیم.

اگر که مکان‌نما را به خط ۳ برده و سپس J را تایپ کنیم، این اتفاق می‌افتد:

همانطور که مشاهده می‌کنید خطوط ۳ و ۴ به یکدیگر متصل می‌شوند.

فرشید نوتاش حقیقت

همیشه نیازمند یک منبع آموزشی فارسی در حوزه نرم‌افزارهای آزاد/ متن‌باز و سیستم‌عامل گنو/لینوکس بودم. از این رو این رسالت رو برای خودم تعریف کردم تا رسانه «محتوای باز» رو بوجود بیارم.

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد.

این سایت از اکیسمت برای کاهش هرزنامه استفاده می کند. بیاموزید که چگونه اطلاعات دیدگاه های شما پردازش می‌شوند.

دکمه بازگشت به بالا